From 1d75ef0303b6b552395aac397c9e92ab14552bc7 Mon Sep 17 00:00:00 2001 From: LZS911 <932177767@qq.com> Date: Wed, 6 Aug 2025 11:20:53 +0800 Subject: [PATCH 01/43] [feature]: init dms kit --- packages/kit/.gitignore | 10 + packages/kit/README.md | 292 +++++++++++++++ packages/kit/package.json | 42 +++ packages/kit/scripts/generate.js | 576 +++++++++++++++++++++++++++++ packages/kit/tsconfig.json | 24 ++ packages/kit/tsup.config.ts | 14 + pnpm-lock.yaml | 615 +++++++++++++++++++++++++++++-- 7 files changed, 1540 insertions(+), 33 deletions(-) create mode 100644 packages/kit/.gitignore create mode 100644 packages/kit/README.md create mode 100644 packages/kit/package.json create mode 100644 packages/kit/scripts/generate.js create mode 100644 packages/kit/tsconfig.json create mode 100644 packages/kit/tsup.config.ts diff --git a/packages/kit/.gitignore b/packages/kit/.gitignore new file mode 100644 index 000000000..fc5cc65cf --- /dev/null +++ b/packages/kit/.gitignore @@ -0,0 +1,10 @@ +node_modules/ +dist/ +src/ +*.log +.DS_Store +.env +.env.local +.env.development.local +.env.test.local +.env.production.local \ No newline at end of file diff --git a/packages/kit/README.md b/packages/kit/README.md new file mode 100644 index 000000000..0abebee9e --- /dev/null +++ b/packages/kit/README.md @@ -0,0 +1,292 @@ +# ActionTech DMS Kit + +ActionTech DMS Kit + +## 安装 + +```bash +pnpm add @actiontech/dms-kit +``` + +## 使用方法 + +### 基础配置 + +在使用 API 服务之前,您需要配置 HTTP 客户端: + +```typescript +import axios from 'axios'; +import { ApiClient } from '@actiontech/dms-kit'; + +// 创建并配置您的 axios 实例 +const apiClient = axios.create({ + baseURL: 'https://your-api-endpoint.com', + timeout: 10000, + headers: { + 'Content-Type': 'application/json', + } +}); + +// 基础配置 +ApiClient.configure(apiClient); +``` + +### 高级配置 + +SDK 提供了丰富的配置选项来满足您的自定义需求: + +```typescript +import axios from 'axios'; +import { + type ApiClientConfigOptions +} from '@actiontech/dms-kit'; + +const apiClient = axios.create({ + baseURL: 'https://your-api-endpoint.com', + timeout: 10000, +}); + +// 高级配置选项 +const configOptions: ApiClientConfigOptions = { + // 开启调试模式 + debug: true, + + // 自定义错误处理 + onError: (error) => { + console.error('API Error:', error); + // 可以在这里集成错误报告服务 + }, + + // 自定义请求拦截器 + requestInterceptor: (config) => { + const token = localStorage.getItem('token'); + if (token) { + config.headers = { + ...config.headers, + Authorization: `Bearer ${token}`, + }; + } + return config; + }, + + // 自定义响应拦截器 + responseInterceptor: (response) => { + // 可以在这里处理通用的响应逻辑 + if (response.data?.code !== 0) { + console.warn('API Warning:', response.data?.message); + } + return response; + }, +}; + +// 配置 API 客户端 +ApiClient.configure(apiClient, configOptions); +``` + +### API 客户端管理 + +SDK 提供了灵活的客户端管理功能: + +```typescript +import { ApiClient } from '@actiontech/dms-kit'; + +// 检查是否已配置 +if (!ApiClient.isConfigured()) { + console.log('API client not configured yet'); +} + +// 运行时更新配置选项 +ApiClient.updateOptions({ + debug: false, + onError: (error) => { + // 新的错误处理逻辑 + } +}); + +// 重置配置 +ApiClient.reset(); + +// 直接设置客户端实例(高级用法) +ApiClient.setClient(myCustomAxiosInstance); +``` + +### 使用 API 服务 + +```typescript +import { SQLEApi, DMSApi } from '@actiontech/dms-kit'; + +// 使用 SQLE API +try { + const users = await DMSApi.UserService.ListUsers(); + console.log('Users:', users.data); +} catch (error) { + console.error('Failed to fetch users:', error); +} + +// 使用 DMS API +try { + const dashboard = await SQLEApi.DashboardService.getDashboardV1(); + console.log('dashboard:', dashboard.data); +} catch (error) { + console.error('Failed to fetch dashboard:', error); +} +``` + +### 使用主题配置 + +```typescript +import { + darkThemeUI, + darkThemeBasic, + lightThemeUI, + lightThemeBasic +} from '@actiontech/dms-kit'; + +// 使用深色主题 +const darkTheme = { + ...darkThemeUI, + ...darkThemeBasic +}; + +// 使用浅色主题 +const lightTheme = { + ...lightThemeUI, + ...lightThemeBasic +}; + +// 在 Ant Design 中使用 +import { ConfigProvider } from 'antd'; + + + {/* 您的应用组件 */} + +``` + +### 使用数据常量 + +SDK 提供了常用的数据常量和配置: + +```typescript +import { + ModalFormLayout, + PageFormLayout, + PROJECT_ROUTER_PARAM, + ComponentControlHeight, + SQLE_BASE_URL, + DMS_DEFAULT_WEB_TITLE, + EmitterKey +} from '@actiontech/dms-kit'; + +// 使用表单布局常量 +
+ {/* 模态框表单 */} +
+ +
+ {/* 页面表单 */} +
+ +// 使用路由参数 +const projectUrl = `/project/${PROJECT_ROUTER_PARAM}/detail`; + +// 使用事件键常量 +eventEmitter.emit(EmitterKey.UPDATE_LOCAL_COLUMNS, data); + +// 使用控件高度常量 +const buttonHeight = ComponentControlHeight.default; // 36px +``` + +### 使用枚举定义 + +SDK 提供了完整的枚举定义: + +```typescript +import { + PackageNameEnum, + SupportLanguage, + ResponseCode, + SupportTheme, + SystemRole, + StorageKey, + OpPermissionTypeUid +} from '@actiontech/dms-kit'; + +// 使用语言枚举 +const currentLanguage = SupportLanguage.zhCN; // 'zh-CN' + +// 使用主题枚举 +const currentTheme = SupportTheme.DARK; // 'dark' + +// 处理响应码 +if (response.code === ResponseCode.SUCCESS) { + // 请求成功 +} + +// 使用系统角色 +const isAdmin = userRole === SystemRole.admin; + +// 使用存储键 +localStorage.setItem(StorageKey.Language, SupportLanguage.enUS); +const token = localStorage.getItem(StorageKey.Token); + +// 使用权限类型 UID +const hasProjectAdminPermission = permissions.includes(OpPermissionTypeUid.project_admin); +``` + +## 类型定义 + +SDK 提供了完整的 TypeScript 类型定义: + +```typescript +import type { + ApiClientConfigOptions +} from '@actiontech/dms-kit'; + +// 配置选项类型 +const options: ApiClientConfigOptions = { + debug: true, + onError: (error) => {}, + requestInterceptor: (config) => config, + responseInterceptor: (response) => response, +}; +``` + +## 错误处理 + +SDK 提供了多层次的错误处理: + +```typescript +import { ApiClient } from '@actiontech/dms-kit'; + +// 全局错误处理 +ApiClient.configure(apiClient, { + onError: (error) => { + if (error.response?.status === 401) { + // 处理认证错误 + window.location.href = '/login'; + } else if (error.response?.status >= 500) { + // 处理服务器错误 + console.error('Server error:', error); + } + } +}); + +// 服务级别错误处理 +try { + const response = await sqleService.getUsers(); +} catch (error) { + // 处理特定 API 的错误 + console.error('Failed to get users:', error); +} +``` + +## 注意事项 + +1. **必须配置**: 在使用任何 API 服务之前,必须先调用 `configure()` 方法配置 HTTP 客户端 +2. **推荐 axios**: 建议使用 axios 作为 HTTP 客户端,但也可以使用其他兼容的库(目前的类型定义只支持 axios 客户端) +3. **错误处理**: 确保正确处理认证、错误处理和请求拦截 +4. **调试模式**: 在开发环境中启用 `debug: true` 来获得详细的日志信息 +5. **类型安全**: 充分利用 TypeScript 类型定义来保证类型安全 diff --git a/packages/kit/package.json b/packages/kit/package.json new file mode 100644 index 000000000..b7485edad --- /dev/null +++ b/packages/kit/package.json @@ -0,0 +1,42 @@ +{ + "name": "@actiontech/dms-kit", + "version": "0.0.1", + "description": "dms kit", + "main": "./dist/index.js", + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "exports": { + ".": { + "import": { + "types": "./dist/index.d.mts", + "default": "./dist/index.mjs" + }, + "require": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], + "publishConfig": { + "registry": "http://10.186.18.19:4873/", + "access": "restricted" + }, + "scripts": { + "build": "tsup", + "clean": "rimraf src", + "generate": "pnpm clean && node scripts/generate.js", + "prebuild": "pnpm generate", + "prepublish": "pnpm build" + }, + "devDependencies": { + "rimraf": "^6.0.1", + "tsup": "^8.0.0" + }, + "license": "MIT", + "dependencies": { + "axios": "^0.27.2" + } +} \ No newline at end of file diff --git a/packages/kit/scripts/generate.js b/packages/kit/scripts/generate.js new file mode 100644 index 000000000..9c3826828 --- /dev/null +++ b/packages/kit/scripts/generate.js @@ -0,0 +1,576 @@ +const { execSync } = require('child_process'); +const fs = require('fs'); +const path = require('path'); + +console.log('开始生成 API 和 Theme 文件...'); + +// 创建必要的目录 +const apiDir = path.join(__dirname, '../src/api'); +const themeDir = path.join(__dirname, '../src/theme'); + +if (!fs.existsSync(path.join(__dirname, '../src'))) { + fs.mkdirSync(path.join(__dirname, '../src'), { recursive: true }); +} + +if (!fs.existsSync(apiDir)) { + fs.mkdirSync(apiDir, { recursive: true }); +} + +if (!fs.existsSync(themeDir)) { + fs.mkdirSync(themeDir, { recursive: true }); +} + +// 1. 生成 API 客户端 +console.log('生成 API 客户端...'); +try { + const sqleApiOutput = path.resolve(apiDir, 'sqle', 'service'); + const dmsApiOutput = path.resolve(apiDir, 'dms', 'service'); + execSync( + `pnpm api_client:g -p sqle-ui --output ${sqleApiOutput} && pnpm api_client:g -p dms-ui --output ${dmsApiOutput}`, + { + stdio: 'inherit', + cwd: path.join(__dirname, '../../..') + } + ); + console.log('API 客户端生成完成'); +} catch (error) { + console.warn('API 客户端生成失败,但继续进行下一步:', error.message); +} + +// 2. 复制 Theme 文件 +console.log('复制 Theme 文件...'); +try { + const sharedThemePath = path.join(__dirname, '../../shared/lib/theme'); + + // 复制并修复 dark/basic.ts + const darkBasicSrc = path.join(sharedThemePath, 'dark/basic.ts'); + const darkBasicDest = path.join(themeDir, 'dark-basic.ts'); + if (fs.existsSync(darkBasicSrc)) { + let darkBasicContent = fs.readFileSync(darkBasicSrc, 'utf8'); + // 修复导入路径 + darkBasicContent = darkBasicContent.replace( + "import { BasicTheme, UITokenTheme } from '../theme.type';", + "import { BasicTheme, UITokenTheme } from './theme.type';" + ); + fs.writeFileSync(darkBasicDest, darkBasicContent); + console.log('已复制并修复 dark/basic.ts'); + } else { + console.warn('未找到 dark/basic.ts 文件'); + } + + // 复制并修复 light/basic.ts + const lightBasicSrc = path.join(sharedThemePath, 'light/basic.ts'); + const lightBasicDest = path.join(themeDir, 'light-basic.ts'); + if (fs.existsSync(lightBasicSrc)) { + let lightBasicContent = fs.readFileSync(lightBasicSrc, 'utf8'); + // 修复导入路径 + lightBasicContent = lightBasicContent.replace( + "import { BasicTheme, UITokenTheme } from '../theme.type';", + "import { BasicTheme, UITokenTheme } from './theme.type';" + ); + fs.writeFileSync(lightBasicDest, lightBasicContent); + console.log('已复制并修复 light/basic.ts'); + } else { + console.warn('未找到 light/basic.ts 文件'); + } + + // 复制 theme.type.ts + const themeTypeSrc = path.join(sharedThemePath, 'theme.type.ts'); + const themeTypeDest = path.join(themeDir, 'theme.type.ts'); + if (fs.existsSync(themeTypeSrc)) { + fs.copyFileSync(themeTypeSrc, themeTypeDest); + console.log('已复制 theme.type.ts'); + } else { + console.warn('未找到 theme.type.ts 文件'); + } + + console.log('Theme 文件复制完成'); +} catch (error) { + console.error('复制 Theme 文件失败:', error.message); +} + +// 3. 复制 Data 和 Enum 文件 +console.log('复制 Data 和 Enum 文件...'); +try { + // 创建 data 和 enum 目录 + const dataDir = path.join(__dirname, '../src/data'); + const enumDir = path.join(__dirname, '../src/enum'); + + if (!fs.existsSync(dataDir)) { + fs.mkdirSync(dataDir, { recursive: true }); + } + + if (!fs.existsSync(enumDir)) { + fs.mkdirSync(enumDir, { recursive: true }); + } + + // 复制 data 目录下的文件 + const sharedDataPath = path.join(__dirname, '../../shared/lib/data'); + + // 复制 common.ts + const commonSrc = path.join(sharedDataPath, 'common.ts'); + const commonDest = path.join(dataDir, 'common.ts'); + if (fs.existsSync(commonSrc)) { + fs.copyFileSync(commonSrc, commonDest); + console.log('已复制 data/common.ts'); + } else { + console.warn('未找到 data/common.ts 文件'); + } + + // 复制 EmitterKey.ts + const emitterKeySrc = path.join(sharedDataPath, 'EmitterKey.ts'); + const emitterKeyDest = path.join(dataDir, 'EmitterKey.ts'); + if (fs.existsSync(emitterKeySrc)) { + fs.copyFileSync(emitterKeySrc, emitterKeyDest); + console.log('已复制 data/EmitterKey.ts'); + } else { + console.warn('未找到 data/EmitterKey.ts 文件'); + } + + // 复制 enum 目录下的文件 + const sharedEnumPath = path.join(__dirname, '../../shared/lib/enum'); + + // 复制 index.ts + const enumIndexSrc = path.join(sharedEnumPath, 'index.ts'); + const enumIndexDest = path.join(enumDir, 'index.ts'); + if (fs.existsSync(enumIndexSrc)) { + fs.copyFileSync(enumIndexSrc, enumIndexDest); + console.log('已复制 enum/index.ts'); + } else { + console.warn('未找到 enum/index.ts 文件'); + } + + // 创建 data 目录的 index.ts 文件 + const dataIndexContent = `// Data exports +export * from './common'; +export { default as EmitterKey } from './EmitterKey'; +`; + fs.writeFileSync(path.join(dataDir, 'index.ts'), dataIndexContent); + console.log('已创建 data/index.ts'); + + console.log('Data 和 Enum 文件复制完成'); +} catch (error) { + console.error('复制 Data 和 Enum 文件失败:', error.message); +} + +// 4. 创建通用 API 客户端文件 +console.log('创建通用 API 客户端...'); +try { + // 创建公共 utils 目录 + const commonUtilsDir = path.join(apiDir, 'utils'); + if (!fs.existsSync(commonUtilsDir)) { + fs.mkdirSync(commonUtilsDir, { recursive: true }); + } + + // 为 sqle 创建 utils 目录(用于引用) + const sqleUtilsDir = path.join(apiDir, 'sqle', 'utils'); + if (!fs.existsSync(sqleUtilsDir)) { + fs.mkdirSync(sqleUtilsDir, { recursive: true }); + } + + // 为 dms 创建 utils 目录(用于引用) + const dmsUtilsDir = path.join(apiDir, 'dms', 'utils'); + if (!fs.existsSync(dmsUtilsDir)) { + fs.mkdirSync(dmsUtilsDir, { recursive: true }); + } + + // 通用 API Client 内容 + const apiClientContent = `import { AxiosRequestConfig, AxiosResponse, AxiosInstance } from 'axios'; + +export type ApiClientConfigOptions = { + /** 自定义错误处理函数 */ + onError?: (error: any) => void; + /** 是否在控制台输出调试信息 */ + debug?: boolean; + /** 自定义请求拦截器 */ + requestInterceptor?: (config: AxiosRequestConfig) => AxiosRequestConfig; + /** 自定义响应拦截器 */ + responseInterceptor?: (response: AxiosResponse) => AxiosResponse; +}; + +class SDKApiClient { + private client: AxiosInstance | null = null; + private options: ApiClientConfigOptions = {}; + + /** + * 配置 API 客户端实例 + * @param apiClient - axios 实例或兼容的 HTTP 客户端 + * @param options - 配置选项 + */ + configure(apiClient: AxiosInstance, options: ApiClientConfigOptions = {}): void { + this.client = apiClient; + this.options = { ...this.options, ...options }; + + if (this.options.debug) { + console.log('[SDK API Client] Configured successfully'); + } + } + + /** + * 更新配置选项 + * @param options - 新的配置选项 + */ + updateOptions(options: Partial): void { + this.options = { ...this.options, ...options }; + } + + /** + * 获取当前配置的 API 客户端 + */ + getInstance(): AxiosInstance { + if (!this.client) { + const error = new Error( + 'API client not configured. Please call configure() with your axios instance first.\\n' + + 'Example: ApiClient.configure(axios.create({ baseURL: "your-api-url" }))' + ); + + if (this.options.onError) { + this.options.onError(error); + } + + throw error; + } + return this.client; + } + + /** + * 重置 API 客户端配置 + */ + reset(): void { + this.client = null; + this.options = {}; + + if (this.options.debug) { + console.log('[SDK API Client] Reset successfully'); + } + } + + /** + * 检查是否已配置 + */ + isConfigured(): boolean { + return this.client !== null; + } + + /** + * 直接设置 API 客户端实例(高级用法) + * @param client - API 客户端实例 + */ + setClient(client: AxiosInstance): void { + this.client = client; + } + + // 代理方法,直接调用配置的客户端 + async get(url: string, config?: AxiosRequestConfig): Promise> { + try { + const finalConfig = this.options.requestInterceptor + ? this.options.requestInterceptor(config || {}) + : config; + + if (this.options.debug) { + console.log('[SDK API Client] GET:', url, finalConfig); + } + + const response = await this.getInstance().get(url, finalConfig); + + return this.options.responseInterceptor + ? this.options.responseInterceptor(response) + : response; + } catch (error) { + if (this.options.onError) { + this.options.onError(error); + } + throw error; + } + } + + async post(url: string, data?: any, config?: AxiosRequestConfig): Promise> { + try { + const finalConfig = this.options.requestInterceptor + ? this.options.requestInterceptor(config || {}) + : config; + + if (this.options.debug) { + console.log('[SDK API Client] POST:', url, data, finalConfig); + } + + const response = await this.getInstance().post(url, data, finalConfig); + + return this.options.responseInterceptor + ? this.options.responseInterceptor(response) + : response; + } catch (error) { + if (this.options.onError) { + this.options.onError(error); + } + throw error; + } + } + + async put(url: string, data?: any, config?: AxiosRequestConfig): Promise> { + try { + const finalConfig = this.options.requestInterceptor + ? this.options.requestInterceptor(config || {}) + : config; + + if (this.options.debug) { + console.log('[SDK API Client] PUT:', url, data, finalConfig); + } + + const response = await this.getInstance().put(url, data, finalConfig); + + return this.options.responseInterceptor + ? this.options.responseInterceptor(response) + : response; + } catch (error) { + if (this.options.onError) { + this.options.onError(error); + } + throw error; + } + } + + async patch(url: string, data?: any, config?: AxiosRequestConfig): Promise> { + try { + const finalConfig = this.options.requestInterceptor + ? this.options.requestInterceptor(config || {}) + : config; + + if (this.options.debug) { + console.log('[SDK API Client] PATCH:', url, data, finalConfig); + } + + const response = await this.getInstance().patch(url, data, finalConfig); + + return this.options.responseInterceptor + ? this.options.responseInterceptor(response) + : response; + } catch (error) { + if (this.options.onError) { + this.options.onError(error); + } + throw error; + } + } + + async delete(url: string, config?: AxiosRequestConfig): Promise> { + try { + const finalConfig = this.options.requestInterceptor + ? this.options.requestInterceptor(config || {}) + : config; + + if (this.options.debug) { + console.log('[SDK API Client] DELETE:', url, finalConfig); + } + + const response = await this.getInstance().delete(url, finalConfig); + + return this.options.responseInterceptor + ? this.options.responseInterceptor(response) + : response; + } catch (error) { + if (this.options.onError) { + this.options.onError(error); + } + throw error; + } + } +} + +// 导出单例实例 +const apiClient = new SDKApiClient(); +export default apiClient; + +// 导出类型和类,允许用户创建自己的实例 +export { SDKApiClient }; +`; + + // 写入公共的 Api.ts 文件 + fs.writeFileSync(path.join(commonUtilsDir, 'ApiClient.ts'), apiClientContent); + + // 在 sqle/utils 下创建引用文件 + const sqleApiReference = `// Re-export from common utils +export * from '../../utils/ApiClient'; +export { default } from '../../utils/ApiClient'; +`; + fs.writeFileSync(path.join(sqleUtilsDir, 'Api.ts'), sqleApiReference); + + // 在 dms/utils 下创建引用文件 + const dmsApiReference = `// Re-export from common utils +export * from '../../utils/ApiClient'; +export { default } from '../../utils/ApiClient'; +`; + fs.writeFileSync(path.join(dmsUtilsDir, 'Api.ts'), dmsApiReference); + + console.log('通用 API 客户端创建完成'); +} catch (error) { + console.error('创建通用 API 客户端失败:', error.message); +} + +// 5. 修复 .d.ts 文件问题 +console.log('修复 .d.ts 文件...'); +try { + // 递归查找所有 .d.ts 文件的函数 + function findDtsFiles(dir, files = []) { + const entries = fs.readdirSync(dir, { withFileTypes: true }); + + for (const entry of entries) { + const fullPath = path.join(dir, entry.name); + + if (entry.isDirectory()) { + findDtsFiles(fullPath, files); + } else if (entry.isFile() && entry.name.endsWith('.d.ts')) { + files.push(path.relative(apiDir, fullPath)); + } + } + + return files; + } + + // 递归查找所有 .ts 文件的函数 + function findTsFiles(dir, files = []) { + const entries = fs.readdirSync(dir, { withFileTypes: true }); + + for (const entry of entries) { + const fullPath = path.join(dir, entry.name); + + if (entry.isDirectory()) { + findTsFiles(fullPath, files); + } else if (entry.isFile() && entry.name.endsWith('.ts')) { + files.push(path.relative(apiDir, fullPath)); + } + } + + return files; + } + + // 查找所有的 .d.ts 文件 + const dtsFiles = findDtsFiles(apiDir); + + console.log(`找到 ${dtsFiles.length} 个 .d.ts 文件`); + + dtsFiles.forEach((file) => { + const fullPath = path.join(apiDir, file); + const newPath = fullPath.replace(/\.d\.ts$/, '.type.ts'); + + console.log(`重命名: ${file} -> ${file.replace(/\.d\.ts$/, '.type.ts')}`); + fs.renameSync(fullPath, newPath); + }); + + // 查找所有的 .ts 文件并修复导入语句 + const tsFiles = findTsFiles(apiDir); + + tsFiles.forEach((file) => { + const fullPath = path.join(apiDir, file); + let content = fs.readFileSync(fullPath, 'utf8'); + + // 替换导入语句中的 .d 引用 + const originalContent = content; + content = content.replace( + /from\s+['"`]([^'"`]*?)\.d['"`]/g, + "from '$1.type'" + ); + + if (content !== originalContent) { + console.log(`修复导入语句: ${file}`); + fs.writeFileSync(fullPath, content); + } + }); + + console.log('.d.ts 文件修复完成'); +} catch (error) { + console.error('修复 .d.ts 文件失败:', error.message); +} + +// 6. 为生成的 API 类型文件添加 @ts-nocheck 忽略类型检查 +console.log('为 API 类型文件添加 @ts-nocheck...'); +try { + // 查找所有的 .type.ts 文件 + function findTypeFiles(dir, files = []) { + const entries = fs.readdirSync(dir, { withFileTypes: true }); + + for (const entry of entries) { + const fullPath = path.join(dir, entry.name); + + if (entry.isDirectory()) { + findTypeFiles(fullPath, files); + } else if (entry.isFile() && entry.name.endsWith('.type.ts')) { + files.push(path.relative(apiDir, fullPath)); + } + } + + return files; + } + + const typeFiles = findTypeFiles(apiDir); + + console.log(`找到 ${typeFiles.length} 个 .type.ts 文件`); + + typeFiles.forEach((file) => { + const fullPath = path.join(apiDir, file); + let content = fs.readFileSync(fullPath, 'utf8'); + + // 检查是否已经有 @ts-nocheck 注释 + if (!content.includes('// @ts-nocheck')) { + // 在文件顶部添加 @ts-nocheck 注释 + content = '/* eslint-disable */\n // @ts-nocheck\n' + content; + fs.writeFileSync(fullPath, content); + console.log(`添加 @ts-nocheck: ${file}`); + } + }); + + console.log('API 类型文件 @ts-nocheck 添加完成'); +} catch (error) { + console.error('添加 @ts-nocheck 失败:', error.message); +} + +// 7. 生成 API 入口文件 +console.log('生成 API 入口文件...'); +try { + const apiIndexContent = `// SQLE API exports +export * as SQLEService from './sqle'; + +// DMS API exports +export * as DMSService from './dms'; + +// API Client exports (common) +export { default as ApiClient } from './utils/ApiClient'; +export { SDKApiClient } from './utils/ApiClient'; + +// Types +export type { + ApiClientConfigOptions +} from './utils/ApiClient'; +`; + + fs.writeFileSync(path.join(apiDir, 'index.ts'), apiIndexContent); + console.log('API 入口文件生成完成'); +} catch (error) { + console.error('生成 API 入口文件失败:', error.message); +} + +// 8. 生成主入口文件 +console.log('生成主入口文件...'); +try { + const indexContent = `// API exports +export * from './api'; + +// Theme exports +export * from './theme/dark-basic'; +export * from './theme/light-basic'; +export * from './theme/theme.type'; + +// Data exports +export * from './data'; + +// Enum exports +export * from './enum'; +`; + + fs.writeFileSync(path.join(__dirname, '../src/index.ts'), indexContent); + console.log('主入口文件生成完成'); +} catch (error) { + console.error('生成主入口文件失败:', error.message); +} + +console.log('所有文件生成完成!'); diff --git a/packages/kit/tsconfig.json b/packages/kit/tsconfig.json new file mode 100644 index 000000000..56e8d5a66 --- /dev/null +++ b/packages/kit/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "ES2020", + "lib": ["DOM", "DOM.Iterable", "ES6"], + "allowJs": true, + "skipLibCheck": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noFallthroughCasesInSwitch": true, + "module": "ESNext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + "declaration": true, + "declarationMap": true, + "outDir": "dist" + }, + "include": ["src"], + "exclude": ["node_modules", "dist"] +} diff --git a/packages/kit/tsup.config.ts b/packages/kit/tsup.config.ts new file mode 100644 index 000000000..46a642e82 --- /dev/null +++ b/packages/kit/tsup.config.ts @@ -0,0 +1,14 @@ +import { defineConfig } from 'tsup'; + +export default defineConfig({ + entry: ['src/index.ts'], + format: ['cjs', 'esm'], + dts: true, + clean: true, + sourcemap: false, + minify: true, + treeshake: true, + target: 'es2020', + outDir: 'dist', + splitting: false +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bc70638c3..9437b18e9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -52,7 +52,7 @@ importers: version: 5.11.16(@types/react@18.3.20)(react@18.3.1) '@mui/system': specifier: ^5.9.1 - version: 5.9.1(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1) + version: 5.17.1(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1) '@reduxjs/toolkit': specifier: ^1.9.3 version: 1.9.3(react-redux@8.0.5(@types/react-dom@18.3.5(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(react@18.3.1) @@ -331,6 +331,19 @@ importers: specifier: ^4.1.0 version: 4.5.2(@babel/core@7.26.10)(@types/node@22.13.14)(styled-components@6.1.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(type-fest@1.4.0)(webpack@5.98.0) + packages/kit: + dependencies: + axios: + specifier: ^0.27.2 + version: 0.27.2 + devDependencies: + rimraf: + specifier: ^6.0.1 + version: 6.0.1 + tsup: + specifier: ^8.0.0 + version: 8.5.0(@microsoft/api-extractor@7.39.1(@types/node@22.13.14))(@swc/core@1.9.2(@swc/helpers@0.5.1))(postcss@8.5.3)(typescript@5.8.2) + packages/shared: dependencies: '@actiontech/icons': @@ -1508,6 +1521,12 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.25.8': + resolution: {integrity: sha512-urAvrUedIqEiFR3FYSLTWQgLu5tb+m0qZw0NBEasUeo6wuqatkMDaRT+1uABiGXEu5vqgPd7FGE1BhsAIy9QVA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + '@esbuild/android-arm64@0.17.19': resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} engines: {node: '>=12'} @@ -1532,6 +1551,12 @@ packages: cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.25.8': + resolution: {integrity: sha512-OD3p7LYzWpLhZEyATcTSJ67qB5D+20vbtr6vHlHWSQYhKtzUYrETuWThmzFpZtFsBIxRvhO07+UgVA9m0i/O1w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm@0.17.19': resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} engines: {node: '>=12'} @@ -1556,6 +1581,12 @@ packages: cpu: [arm] os: [android] + '@esbuild/android-arm@0.25.8': + resolution: {integrity: sha512-RONsAvGCz5oWyePVnLdZY/HHwA++nxYWIX1atInlaW6SEkwq6XkP3+cb825EUcRs5Vss/lGh/2YxAb5xqc07Uw==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + '@esbuild/android-x64@0.17.19': resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} engines: {node: '>=12'} @@ -1580,6 +1611,12 @@ packages: cpu: [x64] os: [android] + '@esbuild/android-x64@0.25.8': + resolution: {integrity: sha512-yJAVPklM5+4+9dTeKwHOaA+LQkmrKFX96BM0A/2zQrbS6ENCmxc4OVoBs5dPkCCak2roAD+jKCdnmOqKszPkjA==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.17.19': resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} engines: {node: '>=12'} @@ -1604,6 +1641,12 @@ packages: cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.25.8': + resolution: {integrity: sha512-Jw0mxgIaYX6R8ODrdkLLPwBqHTtYHJSmzzd+QeytSugzQ0Vg4c5rDky5VgkoowbZQahCbsv1rT1KW72MPIkevw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-x64@0.17.19': resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} engines: {node: '>=12'} @@ -1628,6 +1671,12 @@ packages: cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.25.8': + resolution: {integrity: sha512-Vh2gLxxHnuoQ+GjPNvDSDRpoBCUzY4Pu0kBqMBDlK4fuWbKgGtmDIeEC081xi26PPjn+1tct+Bh8FjyLlw1Zlg==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + '@esbuild/freebsd-arm64@0.17.19': resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} engines: {node: '>=12'} @@ -1652,6 +1701,12 @@ packages: cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.25.8': + resolution: {integrity: sha512-YPJ7hDQ9DnNe5vxOm6jaie9QsTwcKedPvizTVlqWG9GBSq+BuyWEDazlGaDTC5NGU4QJd666V0yqCBL2oWKPfA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-x64@0.17.19': resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} engines: {node: '>=12'} @@ -1676,6 +1731,12 @@ packages: cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.25.8': + resolution: {integrity: sha512-MmaEXxQRdXNFsRN/KcIimLnSJrk2r5H8v+WVafRWz5xdSVmWLoITZQXcgehI2ZE6gioE6HirAEToM/RvFBeuhw==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.17.19': resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} engines: {node: '>=12'} @@ -1700,6 +1761,12 @@ packages: cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.25.8': + resolution: {integrity: sha512-WIgg00ARWv/uYLU7lsuDK00d/hHSfES5BzdWAdAig1ioV5kaFNrtK8EqGcUBJhYqotlUByUKz5Qo6u8tt7iD/w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm@0.17.19': resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} engines: {node: '>=12'} @@ -1724,6 +1791,12 @@ packages: cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.25.8': + resolution: {integrity: sha512-FuzEP9BixzZohl1kLf76KEVOsxtIBFwCaLupVuk4eFVnOZfU+Wsn+x5Ryam7nILV2pkq2TqQM9EZPsOBuMC+kg==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + '@esbuild/linux-ia32@0.17.19': resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} engines: {node: '>=12'} @@ -1748,6 +1821,12 @@ packages: cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.25.8': + resolution: {integrity: sha512-A1D9YzRX1i+1AJZuFFUMP1E9fMaYY+GnSQil9Tlw05utlE86EKTUA7RjwHDkEitmLYiFsRd9HwKBPEftNdBfjg==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-loong64@0.17.19': resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} engines: {node: '>=12'} @@ -1772,6 +1851,12 @@ packages: cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.25.8': + resolution: {integrity: sha512-O7k1J/dwHkY1RMVvglFHl1HzutGEFFZ3kNiDMSOyUrB7WcoHGf96Sh+64nTRT26l3GMbCW01Ekh/ThKM5iI7hQ==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-mips64el@0.17.19': resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} engines: {node: '>=12'} @@ -1796,6 +1881,12 @@ packages: cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.25.8': + resolution: {integrity: sha512-uv+dqfRazte3BzfMp8PAQXmdGHQt2oC/y2ovwpTteqrMx2lwaksiFZ/bdkXJC19ttTvNXBuWH53zy/aTj1FgGw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-ppc64@0.17.19': resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} engines: {node: '>=12'} @@ -1820,6 +1911,12 @@ packages: cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.25.8': + resolution: {integrity: sha512-GyG0KcMi1GBavP5JgAkkstMGyMholMDybAf8wF5A70CALlDM2p/f7YFE7H92eDeH/VBtFJA5MT4nRPDGg4JuzQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-riscv64@0.17.19': resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} engines: {node: '>=12'} @@ -1844,6 +1941,12 @@ packages: cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.25.8': + resolution: {integrity: sha512-rAqDYFv3yzMrq7GIcen3XP7TUEG/4LK86LUPMIz6RT8A6pRIDn0sDcvjudVZBiiTcZCY9y2SgYX2lgK3AF+1eg==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-s390x@0.17.19': resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} engines: {node: '>=12'} @@ -1868,6 +1971,12 @@ packages: cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.25.8': + resolution: {integrity: sha512-Xutvh6VjlbcHpsIIbwY8GVRbwoviWT19tFhgdA7DlenLGC/mbc3lBoVb7jxj9Z+eyGqvcnSyIltYUrkKzWqSvg==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-x64@0.17.19': resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} engines: {node: '>=12'} @@ -1892,6 +2001,18 @@ packages: cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.25.8': + resolution: {integrity: sha512-ASFQhgY4ElXh3nDcOMTkQero4b1lgubskNlhIfJrsH5OKZXDpUAKBlNS0Kx81jwOBp+HCeZqmoJuihTv57/jvQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.25.8': + resolution: {integrity: sha512-d1KfruIeohqAi6SA+gENMuObDbEjn22olAR7egqnkCD9DGBG0wsEARotkLgXDu6c4ncgWTZJtN5vcgxzWRMzcw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + '@esbuild/netbsd-x64@0.17.19': resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} engines: {node: '>=12'} @@ -1916,6 +2037,18 @@ packages: cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.25.8': + resolution: {integrity: sha512-nVDCkrvx2ua+XQNyfrujIG38+YGyuy2Ru9kKVNyh5jAys6n+l44tTtToqHjino2My8VAY6Lw9H7RI73XFi66Cg==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.25.8': + resolution: {integrity: sha512-j8HgrDuSJFAujkivSMSfPQSAa5Fxbvk4rgNAS5i3K+r8s1X0p1uOO2Hl2xNsGFppOeHOLAVgYwDVlmxhq5h+SQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + '@esbuild/openbsd-x64@0.17.19': resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} engines: {node: '>=12'} @@ -1940,6 +2073,18 @@ packages: cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.25.8': + resolution: {integrity: sha512-1h8MUAwa0VhNCDp6Af0HToI2TJFAn1uqT9Al6DJVzdIBAd21m/G0Yfc77KDM3uF3T/YaOgQq3qTJHPbTOInaIQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openharmony-arm64@0.25.8': + resolution: {integrity: sha512-r2nVa5SIK9tSWd0kJd9HCffnDHKchTGikb//9c7HX+r+wHYCpQrSgxhlY6KWV1nFo1l4KFbsMlHk+L6fekLsUg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + '@esbuild/sunos-x64@0.17.19': resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} engines: {node: '>=12'} @@ -1964,6 +2109,12 @@ packages: cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.25.8': + resolution: {integrity: sha512-zUlaP2S12YhQ2UzUfcCuMDHQFJyKABkAjvO5YSndMiIkMimPmxA+BYSBikWgsRpvyxuRnow4nS5NPnf9fpv41w==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + '@esbuild/win32-arm64@0.17.19': resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} engines: {node: '>=12'} @@ -1988,6 +2139,12 @@ packages: cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.25.8': + resolution: {integrity: sha512-YEGFFWESlPva8hGL+zvj2z/SaK+pH0SwOM0Nc/d+rVnW7GSTFlLBGzZkuSU9kFIGIo8q9X3ucpZhu8PDN5A2sQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-ia32@0.17.19': resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} engines: {node: '>=12'} @@ -2012,6 +2169,12 @@ packages: cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.25.8': + resolution: {integrity: sha512-hiGgGC6KZ5LZz58OL/+qVVoZiuZlUYlYHNAmczOm7bs2oE1XriPFi5ZHHrS8ACpV5EjySrnoCKmcbQMN+ojnHg==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-x64@0.17.19': resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} engines: {node: '>=12'} @@ -2036,6 +2199,12 @@ packages: cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.25.8': + resolution: {integrity: sha512-cn3Yr7+OaaZq1c+2pe+8yxC8E144SReCQjN6/2ynubzYjvyqZjTXfQJpAcQpsdJq3My7XADANiYGHoFC69pLQw==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@eslint-community/eslint-utils@4.5.1': resolution: {integrity: sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2208,6 +2377,14 @@ packages: resolution: {integrity: sha512-XvJRx+2KR3YXyYtPUUy+qd9i7p+GO9Ko6VIIpWlBrpWwXDv8WLFeHTxz35CfQFUiBMLXlGHhGzys7lqit9gWag==} engines: {node: '>=18'} + '@isaacs/balanced-match@4.0.1': + resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} + engines: {node: 20 || >=22} + + '@isaacs/brace-expansion@5.0.0': + resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==} + engines: {node: 20 || >=22} + '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -2466,22 +2643,6 @@ packages: '@types/react': optional: true - '@mui/system@5.9.1': - resolution: {integrity: sha512-ZixTmc2+sYp++avoYJ38eM70nfwwudN06vYCU4kfwa4nQPiH+bhLYZnfYkcXRKiDR/hfT0dptbOOfQGZqBYczQ==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@emotion/react': ^11.5.0 - '@emotion/styled': ^11.3.0 - '@types/react': ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@emotion/react': - optional: true - '@emotion/styled': - optional: true - '@types/react': - optional: true - '@mui/types@7.2.24': resolution: {integrity: sha512-3c8tRt/CbWZ+pEg7QpSwbdxOk36EfmhbKf6AGZsD1EcLDLTSZoxxJ86FVtcjxvjuhdyBiWKSTGZFaXCnidO2kw==} peerDependencies: @@ -4372,10 +4533,20 @@ packages: resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} engines: {node: '>=12'} + bundle-require@5.1.0: + resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.18' + bytes@3.1.2: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} + cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} @@ -4664,6 +4835,9 @@ packages: engines: {node: '>=18'} hasBin: true + confbox@0.1.8: + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + connect-history-api-fallback@1.6.0: resolution: {integrity: sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==} engines: {node: '>=0.8'} @@ -4675,6 +4849,10 @@ packages: consola@2.15.3: resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} + consola@3.4.2: + resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} + engines: {node: ^14.18.0 || >=16.10.0} + console-browserify@1.2.0: resolution: {integrity: sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==} @@ -5415,6 +5593,11 @@ packages: engines: {node: '>=12'} hasBin: true + esbuild@0.25.8: + resolution: {integrity: sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q==} + engines: {node: '>=18'} + hasBin: true + escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -5704,6 +5887,14 @@ packages: fb-watchman@2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + fdir@6.4.6: + resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + fecha@4.2.3: resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} @@ -5767,6 +5958,9 @@ packages: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} + fix-dts-default-cjs-exports@1.0.1: + resolution: {integrity: sha512-pVIECanWFC61Hzl2+oOCtoJ3F17kglZC/6N94eRWycFgBH35hHx0Li604ZIzhseh97mf2p0cv7vVrOZGoqhlEg==} + flat-cache@3.2.0: resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} engines: {node: ^10.12.0 || >=12.0.0} @@ -5930,6 +6124,11 @@ packages: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true + glob@11.0.3: + resolution: {integrity: sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==} + engines: {node: 20 || >=22} + hasBin: true + glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported @@ -6658,6 +6857,10 @@ packages: jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + jackspeak@4.1.1: + resolution: {integrity: sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==} + engines: {node: 20 || >=22} + jake@10.9.2: resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==} engines: {node: '>=10'} @@ -6831,6 +7034,10 @@ packages: jju@1.4.0: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} + joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + js-cookie@3.0.5: resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==} engines: {node: '>=14'} @@ -7060,9 +7267,17 @@ packages: resolution: {integrity: sha512-Fy45PhibiNXkm0cK5FJCbfO8Y6jUpD/YcHf/BtuI+jvYYqSXKF4muk61jjE8YxCR9y+hDYIWSzHTc+bwhDE6rQ==} engines: {node: '>= 12.0.0'} + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} + engines: {node: '>=14'} + lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + load-tsconfig@0.2.5: + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + loader-runner@4.2.0: resolution: {integrity: sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==} engines: {node: '>=6.11.5'} @@ -7117,6 +7332,9 @@ packages: lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + lodash.throttle@4.1.1: resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} @@ -7147,6 +7365,10 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + lru-cache@11.1.0: + resolution: {integrity: sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==} + engines: {node: 20 || >=22} + lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -7166,6 +7388,9 @@ packages: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true + magic-string@0.30.17: + resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + make-dir@2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} engines: {node: '>=6'} @@ -7430,6 +7655,10 @@ packages: minimalistic-crypto-utils@1.0.1: resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} + minimatch@10.0.3: + resolution: {integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==} + engines: {node: 20 || >=22} + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -7459,6 +7688,9 @@ packages: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true + mlly@1.7.4: + resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} + mnemonist@0.39.8: resolution: {integrity: sha512-vyWo2K3fjrUw8YeeZ1zF0fy6Mu59RHokURlld8ymdUPjMlD9EC9ov1/YPqTgqRvUN9nTr3Gqfz29LYAmu0PHPQ==} @@ -7845,6 +8077,10 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} + path-scurry@2.0.0: + resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} + engines: {node: 20 || >=22} + path-to-regexp@0.1.12: resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} @@ -7861,6 +8097,9 @@ packages: pathe@0.2.0: resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==} + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + pbkdf2@3.1.2: resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==} engines: {node: '>=0.12'} @@ -7881,6 +8120,10 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} + pify@4.0.1: resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} engines: {node: '>=6'} @@ -7906,6 +8149,9 @@ packages: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} + pkg-types@1.3.1: + resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} + pkg-up@3.1.0: resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} engines: {node: '>=8'} @@ -8038,6 +8284,24 @@ packages: peerDependencies: postcss: ^8.3.5 + postcss-load-config@6.0.1: + resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} + engines: {node: '>= 18'} + peerDependencies: + jiti: '>=1.21.0' + postcss: '>=8.0.9' + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + jiti: + optional: true + postcss: + optional: true + tsx: + optional: true + yaml: + optional: true + postcss-logical@5.0.4: resolution: {integrity: sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==} engines: {node: ^12 || ^14 || >=16} @@ -8312,6 +8576,7 @@ packages: engines: {node: '>=0.6.0', teleport: '>=0.2.0'} deprecated: |- You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other. + (For a CapTP with native promises, see @endo/eventual-send and @endo/captp) qrcode.react@3.2.0: @@ -9096,6 +9361,11 @@ packages: engines: {node: '>=14'} hasBin: true + rimraf@6.0.1: + resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==} + engines: {node: 20 || >=22} + hasBin: true + ripemd160@2.0.2: resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==} @@ -9387,6 +9657,10 @@ packages: resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} engines: {node: '>= 8'} + source-map@0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} + space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} @@ -9787,6 +10061,13 @@ packages: tiny-warning@1.0.3: resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} + tinyexec@0.3.2: + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + + tinyglobby@0.2.14: + resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} + engines: {node: '>=12.0.0'} + titleize@3.0.0: resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} engines: {node: '>=12'} @@ -9819,6 +10100,9 @@ packages: tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + tr46@3.0.0: resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} engines: {node: '>=12'} @@ -9899,6 +10183,25 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + tsup@8.5.0: + resolution: {integrity: sha512-VmBp77lWNQq6PfuMqCHD3xWl22vEoWsKajkF8t+yMBawlUS8JzEI+vOVMeuNZIuMML8qXRizFKi9oD5glKQVcQ==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + '@microsoft/api-extractor': ^7.36.0 + '@swc/core': ^1 + postcss: ^8.4.12 + typescript: '>=4.5.0' + peerDependenciesMeta: + '@microsoft/api-extractor': + optional: true + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true + tsutils@3.21.0: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} @@ -9985,6 +10288,9 @@ packages: engines: {node: '>=14.17'} hasBin: true + ufo@1.6.1: + resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} + uglify-js@2.8.29: resolution: {integrity: sha512-qLq/4y2pjcU3vhlhseXGGJ7VbFO4pBANu0kwl8VCa9KEI0V8VfZIx2Fy3w01iSTA/pGwKZSmu/+I4etLNDdt5w==} engines: {node: '>=0.8.0'} @@ -10323,6 +10629,9 @@ packages: webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + webidl-conversions@7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} @@ -10360,6 +10669,9 @@ packages: whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + which-boxed-primitive@1.1.1: resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} engines: {node: '>= 0.4'} @@ -11922,6 +12234,9 @@ snapshots: '@esbuild/aix-ppc64@0.21.5': optional: true + '@esbuild/aix-ppc64@0.25.8': + optional: true + '@esbuild/android-arm64@0.17.19': optional: true @@ -11934,6 +12249,9 @@ snapshots: '@esbuild/android-arm64@0.21.5': optional: true + '@esbuild/android-arm64@0.25.8': + optional: true + '@esbuild/android-arm@0.17.19': optional: true @@ -11946,6 +12264,9 @@ snapshots: '@esbuild/android-arm@0.21.5': optional: true + '@esbuild/android-arm@0.25.8': + optional: true + '@esbuild/android-x64@0.17.19': optional: true @@ -11958,6 +12279,9 @@ snapshots: '@esbuild/android-x64@0.21.5': optional: true + '@esbuild/android-x64@0.25.8': + optional: true + '@esbuild/darwin-arm64@0.17.19': optional: true @@ -11970,6 +12294,9 @@ snapshots: '@esbuild/darwin-arm64@0.21.5': optional: true + '@esbuild/darwin-arm64@0.25.8': + optional: true + '@esbuild/darwin-x64@0.17.19': optional: true @@ -11982,6 +12309,9 @@ snapshots: '@esbuild/darwin-x64@0.21.5': optional: true + '@esbuild/darwin-x64@0.25.8': + optional: true + '@esbuild/freebsd-arm64@0.17.19': optional: true @@ -11994,6 +12324,9 @@ snapshots: '@esbuild/freebsd-arm64@0.21.5': optional: true + '@esbuild/freebsd-arm64@0.25.8': + optional: true + '@esbuild/freebsd-x64@0.17.19': optional: true @@ -12006,6 +12339,9 @@ snapshots: '@esbuild/freebsd-x64@0.21.5': optional: true + '@esbuild/freebsd-x64@0.25.8': + optional: true + '@esbuild/linux-arm64@0.17.19': optional: true @@ -12018,6 +12354,9 @@ snapshots: '@esbuild/linux-arm64@0.21.5': optional: true + '@esbuild/linux-arm64@0.25.8': + optional: true + '@esbuild/linux-arm@0.17.19': optional: true @@ -12030,6 +12369,9 @@ snapshots: '@esbuild/linux-arm@0.21.5': optional: true + '@esbuild/linux-arm@0.25.8': + optional: true + '@esbuild/linux-ia32@0.17.19': optional: true @@ -12042,6 +12384,9 @@ snapshots: '@esbuild/linux-ia32@0.21.5': optional: true + '@esbuild/linux-ia32@0.25.8': + optional: true + '@esbuild/linux-loong64@0.17.19': optional: true @@ -12054,6 +12399,9 @@ snapshots: '@esbuild/linux-loong64@0.21.5': optional: true + '@esbuild/linux-loong64@0.25.8': + optional: true + '@esbuild/linux-mips64el@0.17.19': optional: true @@ -12066,6 +12414,9 @@ snapshots: '@esbuild/linux-mips64el@0.21.5': optional: true + '@esbuild/linux-mips64el@0.25.8': + optional: true + '@esbuild/linux-ppc64@0.17.19': optional: true @@ -12078,6 +12429,9 @@ snapshots: '@esbuild/linux-ppc64@0.21.5': optional: true + '@esbuild/linux-ppc64@0.25.8': + optional: true + '@esbuild/linux-riscv64@0.17.19': optional: true @@ -12090,6 +12444,9 @@ snapshots: '@esbuild/linux-riscv64@0.21.5': optional: true + '@esbuild/linux-riscv64@0.25.8': + optional: true + '@esbuild/linux-s390x@0.17.19': optional: true @@ -12102,6 +12459,9 @@ snapshots: '@esbuild/linux-s390x@0.21.5': optional: true + '@esbuild/linux-s390x@0.25.8': + optional: true + '@esbuild/linux-x64@0.17.19': optional: true @@ -12114,6 +12474,12 @@ snapshots: '@esbuild/linux-x64@0.21.5': optional: true + '@esbuild/linux-x64@0.25.8': + optional: true + + '@esbuild/netbsd-arm64@0.25.8': + optional: true + '@esbuild/netbsd-x64@0.17.19': optional: true @@ -12126,6 +12492,12 @@ snapshots: '@esbuild/netbsd-x64@0.21.5': optional: true + '@esbuild/netbsd-x64@0.25.8': + optional: true + + '@esbuild/openbsd-arm64@0.25.8': + optional: true + '@esbuild/openbsd-x64@0.17.19': optional: true @@ -12138,6 +12510,12 @@ snapshots: '@esbuild/openbsd-x64@0.21.5': optional: true + '@esbuild/openbsd-x64@0.25.8': + optional: true + + '@esbuild/openharmony-arm64@0.25.8': + optional: true + '@esbuild/sunos-x64@0.17.19': optional: true @@ -12150,6 +12528,9 @@ snapshots: '@esbuild/sunos-x64@0.21.5': optional: true + '@esbuild/sunos-x64@0.25.8': + optional: true + '@esbuild/win32-arm64@0.17.19': optional: true @@ -12162,6 +12543,9 @@ snapshots: '@esbuild/win32-arm64@0.21.5': optional: true + '@esbuild/win32-arm64@0.25.8': + optional: true + '@esbuild/win32-ia32@0.17.19': optional: true @@ -12174,6 +12558,9 @@ snapshots: '@esbuild/win32-ia32@0.21.5': optional: true + '@esbuild/win32-ia32@0.25.8': + optional: true + '@esbuild/win32-x64@0.17.19': optional: true @@ -12186,6 +12573,9 @@ snapshots: '@esbuild/win32-x64@0.21.5': optional: true + '@esbuild/win32-x64@0.25.8': + optional: true + '@eslint-community/eslint-utils@4.5.1(eslint@9.23.0)': dependencies: eslint: 9.23.0 @@ -12429,6 +12819,12 @@ snapshots: dependencies: mute-stream: 1.0.0 + '@isaacs/balanced-match@4.0.1': {} + + '@isaacs/brace-expansion@5.0.0': + dependencies: + '@isaacs/balanced-match': 4.0.1 + '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -12849,22 +13245,6 @@ snapshots: '@emotion/styled': 11.14.0(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1) '@types/react': 18.3.20 - '@mui/system@5.9.1(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1)': - dependencies: - '@babel/runtime': 7.27.0 - '@mui/private-theming': 5.17.1(@types/react@18.3.20)(react@18.3.1) - '@mui/styled-engine': 5.16.14(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1))(react@18.3.1) - '@mui/types': 7.2.24(@types/react@18.3.20) - '@mui/utils': 5.17.1(@types/react@18.3.20)(react@18.3.1) - clsx: 1.2.1 - csstype: 3.1.3 - prop-types: 15.8.1 - react: 18.3.1 - optionalDependencies: - '@emotion/react': 11.14.0(@types/react@18.3.20)(react@18.3.1) - '@emotion/styled': 11.14.0(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1) - '@types/react': 18.3.20 - '@mui/types@7.2.24(@types/react@18.3.20)': optionalDependencies: '@types/react': 18.3.20 @@ -15227,8 +15607,15 @@ snapshots: dependencies: run-applescript: 5.0.0 + bundle-require@5.1.0(esbuild@0.25.8): + dependencies: + esbuild: 0.25.8 + load-tsconfig: 0.2.5 + bytes@3.1.2: {} + cac@6.7.14: {} + call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 @@ -15524,12 +15911,16 @@ snapshots: tree-kill: 1.2.2 yargs: 17.7.2 + confbox@0.1.8: {} + connect-history-api-fallback@1.6.0: {} connect-history-api-fallback@2.0.0: {} consola@2.15.3: {} + consola@3.4.2: {} + console-browserify@1.2.0: {} constants-browserify@1.0.0: {} @@ -16594,6 +16985,35 @@ snapshots: '@esbuild/win32-ia32': 0.21.5 '@esbuild/win32-x64': 0.21.5 + esbuild@0.25.8: + optionalDependencies: + '@esbuild/aix-ppc64': 0.25.8 + '@esbuild/android-arm': 0.25.8 + '@esbuild/android-arm64': 0.25.8 + '@esbuild/android-x64': 0.25.8 + '@esbuild/darwin-arm64': 0.25.8 + '@esbuild/darwin-x64': 0.25.8 + '@esbuild/freebsd-arm64': 0.25.8 + '@esbuild/freebsd-x64': 0.25.8 + '@esbuild/linux-arm': 0.25.8 + '@esbuild/linux-arm64': 0.25.8 + '@esbuild/linux-ia32': 0.25.8 + '@esbuild/linux-loong64': 0.25.8 + '@esbuild/linux-mips64el': 0.25.8 + '@esbuild/linux-ppc64': 0.25.8 + '@esbuild/linux-riscv64': 0.25.8 + '@esbuild/linux-s390x': 0.25.8 + '@esbuild/linux-x64': 0.25.8 + '@esbuild/netbsd-arm64': 0.25.8 + '@esbuild/netbsd-x64': 0.25.8 + '@esbuild/openbsd-arm64': 0.25.8 + '@esbuild/openbsd-x64': 0.25.8 + '@esbuild/openharmony-arm64': 0.25.8 + '@esbuild/sunos-x64': 0.25.8 + '@esbuild/win32-arm64': 0.25.8 + '@esbuild/win32-ia32': 0.25.8 + '@esbuild/win32-x64': 0.25.8 + escalade@3.2.0: {} escape-html@1.0.3: {} @@ -17022,6 +17442,10 @@ snapshots: dependencies: bser: 2.1.1 + fdir@6.4.6(picomatch@4.0.3): + optionalDependencies: + picomatch: 4.0.3 + fecha@4.2.3: {} fetch-blob@3.2.0: @@ -17100,6 +17524,12 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 + fix-dts-default-cjs-exports@1.0.1: + dependencies: + magic-string: 0.30.17 + mlly: 1.7.4 + rollup: 4.38.0 + flat-cache@3.2.0: dependencies: flatted: 3.3.3 @@ -17277,6 +17707,15 @@ snapshots: package-json-from-dist: 1.0.1 path-scurry: 1.11.1 + glob@11.0.3: + dependencies: + foreground-child: 3.3.1 + jackspeak: 4.1.1 + minimatch: 10.0.3 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 2.0.0 + glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -18166,6 +18605,10 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 + jackspeak@4.1.1: + dependencies: + '@isaacs/cliui': 8.0.2 + jake@10.9.2: dependencies: async: 3.2.6 @@ -18604,6 +19047,8 @@ snapshots: jju@1.4.0: {} + joycon@3.1.1: {} + js-cookie@3.0.5: {} js-levenshtein@1.1.6: {} @@ -18853,8 +19298,12 @@ snapshots: lightningcss-linux-x64-musl: 1.22.1 lightningcss-win32-x64-msvc: 1.22.1 + lilconfig@3.1.3: {} + lines-and-columns@1.2.4: {} + load-tsconfig@0.2.5: {} + loader-runner@4.2.0: {} loader-runner@4.3.0: {} @@ -18896,6 +19345,8 @@ snapshots: lodash.merge@4.6.2: {} + lodash.sortby@4.7.0: {} + lodash.throttle@4.1.1: {} lodash.truncate@4.4.2: {} @@ -18921,6 +19372,8 @@ snapshots: lru-cache@10.4.3: {} + lru-cache@11.1.0: {} + lru-cache@5.1.1: dependencies: yallist: 3.1.1 @@ -18935,6 +19388,10 @@ snapshots: lz-string@1.5.0: {} + magic-string@0.30.17: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + make-dir@2.1.0: dependencies: pify: 4.0.1 @@ -19402,6 +19859,10 @@ snapshots: minimalistic-crypto-utils@1.0.1: {} + minimatch@10.0.3: + dependencies: + '@isaacs/brace-expansion': 5.0.0 + minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 @@ -19430,6 +19891,13 @@ snapshots: dependencies: minimist: 1.2.8 + mlly@1.7.4: + dependencies: + acorn: 8.14.1 + pathe: 2.0.3 + pkg-types: 1.3.1 + ufo: 1.6.1 + mnemonist@0.39.8: dependencies: obliterator: 2.0.5 @@ -19908,6 +20376,11 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 + path-scurry@2.0.0: + dependencies: + lru-cache: 11.1.0 + minipass: 7.1.2 + path-to-regexp@0.1.12: {} path-to-regexp@1.7.0: @@ -19920,6 +20393,8 @@ snapshots: pathe@0.2.0: {} + pathe@2.0.3: {} + pbkdf2@3.1.2: dependencies: create-hash: 1.2.0 @@ -19938,6 +20413,8 @@ snapshots: picomatch@2.3.1: {} + picomatch@4.0.3: {} + pify@4.0.1: optional: true @@ -19972,6 +20449,12 @@ snapshots: dependencies: find-up: 4.1.0 + pkg-types@1.3.1: + dependencies: + confbox: 0.1.8 + mlly: 1.7.4 + pathe: 2.0.3 + pkg-up@3.1.0: dependencies: find-up: 3.0.0 @@ -20079,6 +20562,12 @@ snapshots: dependencies: postcss: 8.5.3 + postcss-load-config@6.0.1(postcss@8.5.3): + dependencies: + lilconfig: 3.1.3 + optionalDependencies: + postcss: 8.5.3 + postcss-logical@5.0.4(postcss@8.5.3): dependencies: postcss: 8.5.3 @@ -21348,6 +21837,11 @@ snapshots: dependencies: glob: 10.4.5 + rimraf@6.0.1: + dependencies: + glob: 11.0.3 + package-json-from-dist: 1.0.1 + ripemd160@2.0.2: dependencies: hash-base: 3.0.5 @@ -21700,6 +22194,10 @@ snapshots: source-map@0.7.4: {} + source-map@0.8.0-beta.0: + dependencies: + whatwg-url: 7.1.0 + space-separated-tokens@2.0.2: {} spdx-correct@3.2.0: @@ -22292,6 +22790,13 @@ snapshots: tiny-warning@1.0.3: {} + tinyexec@0.3.2: {} + + tinyglobby@0.2.14: + dependencies: + fdir: 6.4.6(picomatch@4.0.3) + picomatch: 4.0.3 + titleize@3.0.0: {} tmp@0.0.33: @@ -22319,6 +22824,10 @@ snapshots: tr46@0.0.3: {} + tr46@1.0.1: + dependencies: + punycode: 2.3.1 + tr46@3.0.0: dependencies: punycode: 2.3.1 @@ -22383,6 +22892,36 @@ snapshots: tslib@2.8.1: {} + tsup@8.5.0(@microsoft/api-extractor@7.39.1(@types/node@22.13.14))(@swc/core@1.9.2(@swc/helpers@0.5.1))(postcss@8.5.3)(typescript@5.8.2): + dependencies: + bundle-require: 5.1.0(esbuild@0.25.8) + cac: 6.7.14 + chokidar: 4.0.3 + consola: 3.4.2 + debug: 4.4.0 + esbuild: 0.25.8 + fix-dts-default-cjs-exports: 1.0.1 + joycon: 3.1.1 + picocolors: 1.1.1 + postcss-load-config: 6.0.1(postcss@8.5.3) + resolve-from: 5.0.0 + rollup: 4.38.0 + source-map: 0.8.0-beta.0 + sucrase: 3.35.0 + tinyexec: 0.3.2 + tinyglobby: 0.2.14 + tree-kill: 1.2.2 + optionalDependencies: + '@microsoft/api-extractor': 7.39.1(@types/node@22.13.14) + '@swc/core': 1.9.2(@swc/helpers@0.5.1) + postcss: 8.5.3 + typescript: 5.8.2 + transitivePeerDependencies: + - jiti + - supports-color + - tsx + - yaml + tsutils@3.21.0(typescript@5.3.3): dependencies: tslib: 1.14.1 @@ -22480,6 +23019,8 @@ snapshots: typescript@5.8.2: {} + ufo@1.6.1: {} + uglify-js@2.8.29: dependencies: source-map: 0.5.7 @@ -22881,6 +23422,8 @@ snapshots: webidl-conversions@3.0.1: {} + webidl-conversions@4.0.2: {} + webidl-conversions@7.0.0: {} webpack-5-chain@8.0.1: @@ -22936,6 +23479,12 @@ snapshots: tr46: 0.0.3 webidl-conversions: 3.0.1 + whatwg-url@7.1.0: + dependencies: + lodash.sortby: 4.7.0 + tr46: 1.0.1 + webidl-conversions: 4.0.2 + which-boxed-primitive@1.1.1: dependencies: is-bigint: 1.1.0 From 40176023e3d49ff5c34dc7cd43abd82e0443d48c Mon Sep 17 00:00:00 2001 From: LZS911 <932177767@qq.com> Date: Mon, 11 Aug 2025 17:30:46 +0800 Subject: [PATCH 02/43] [feature](kit): update generate script --- packages/kit/package.json | 27 +- packages/kit/scripts/generate.js | 675 ++++++++++++++++++++----------- packages/kit/tsconfig.json | 21 +- packages/kit/tsup.config.ts | 26 +- pnpm-lock.yaml | 132 +++++- 5 files changed, 609 insertions(+), 272 deletions(-) diff --git a/packages/kit/package.json b/packages/kit/package.json index b7485edad..c7050ddaf 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -1,6 +1,6 @@ { "name": "@actiontech/dms-kit", - "version": "0.0.1", + "version": "0.0.1-rc.2", "description": "dms kit", "main": "./dist/index.js", "module": "./dist/index.mjs", @@ -28,15 +28,32 @@ "build": "tsup", "clean": "rimraf src", "generate": "pnpm clean && node scripts/generate.js", - "prebuild": "pnpm generate", "prepublish": "pnpm build" }, "devDependencies": { "rimraf": "^6.0.1", "tsup": "^8.0.0" }, - "license": "MIT", "dependencies": { - "axios": "^0.27.2" - } + "@actiontech/icons": "workspace:*" + }, + "peerDependencies": { + "axios": "^1", + "antd": ">=5.7.3", + "react": ">=17", + "react-dom": ">=17", + "typescript": ">=5.0.2", + "@mui/material": "^5.11.16", + "@mui/styles": "^5.11.16", + "@mui/system": "^5.9.1", + "@ant-design/cssinjs": "^1.17.0", + "dayjs": "^1", + "react-i18next": "^15.0.0", + "i18next": "^23.0.0", + "@actiontech/icons": "^0", + "classnames": "^2.3.0", + "ahooks": "^3.7.0", + "@monaco-editor/react": "^4.6.0" + }, + "license": "MIT" } \ No newline at end of file diff --git a/packages/kit/scripts/generate.js b/packages/kit/scripts/generate.js index 9c3826828..3ddf42756 100644 --- a/packages/kit/scripts/generate.js +++ b/packages/kit/scripts/generate.js @@ -2,25 +2,30 @@ const { execSync } = require('child_process'); const fs = require('fs'); const path = require('path'); -console.log('开始生成 API 和 Theme 文件...'); +console.log('开始生成 API 和模板导入文件...'); // 创建必要的目录 const apiDir = path.join(__dirname, '../src/api'); -const themeDir = path.join(__dirname, '../src/theme'); +const dataDir = path.join(__dirname, '../src/data'); +const enumDir = path.join(__dirname, '../src/enum'); +const componentsDir = path.join(__dirname, '../src/components'); +const hooksDir = path.join(__dirname, '../src/hooks'); +const providersDir = path.join(__dirname, '../src/providers'); +// 确保目录存在 if (!fs.existsSync(path.join(__dirname, '../src'))) { fs.mkdirSync(path.join(__dirname, '../src'), { recursive: true }); } -if (!fs.existsSync(apiDir)) { - fs.mkdirSync(apiDir, { recursive: true }); -} +const dirs = [apiDir, dataDir, enumDir, componentsDir, hooksDir, providersDir]; -if (!fs.existsSync(themeDir)) { - fs.mkdirSync(themeDir, { recursive: true }); -} +dirs.forEach((dir) => { + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir, { recursive: true }); + } +}); -// 1. 生成 API 客户端 +// 1. 生成 API 客户端 (保持不变) console.log('生成 API 客户端...'); try { const sqleApiOutput = path.resolve(apiDir, 'sqle', 'service'); @@ -37,139 +42,455 @@ try { console.warn('API 客户端生成失败,但继续进行下一步:', error.message); } -// 2. 复制 Theme 文件 -console.log('复制 Theme 文件...'); +// 2. 从 shared/lib 复制代码到 kit/src +console.log('复制 shared/lib 代码到 kit/src...'); + +const sharedLibDir = path.join(__dirname, '../../shared/lib'); +const kitSrcDir = path.join(__dirname, '../src'); + +function copyDir(src, dest, options = {}) { + const { filter, overwrite = false } = options; + if (!fs.existsSync(src)) return; + if (!fs.existsSync(dest)) { + fs.mkdirSync(dest, { recursive: true }); + } + const entries = fs.readdirSync(src, { withFileTypes: true }); + for (const entry of entries) { + const srcPath = path.join(src, entry.name); + const destPath = path.join(dest, entry.name); + if (filter && !filter(srcPath, entry)) continue; + if (entry.isDirectory()) { + copyDir(srcPath, destPath, { filter, overwrite }); + } else if (entry.isFile()) { + if (!overwrite && fs.existsSync(destPath)) continue; + fs.copyFileSync(srcPath, destPath); + } + } +} + +// 需要复制的目录列表(排除 api、testUtil、features) +const dirsToCopy = [ + 'components', + 'hooks', + 'enum', + 'theme', + 'types', + 'styleWrapper', + 'locale', + 'data', + 'utils' +]; + +const shouldInclude = (srcPath, entry) => { + // 排除测试文件与快照 + if (entry.isDirectory() && entry.name === '__snapshots__') return false; + if (entry.isFile() && /\.test\.[tj]sx?$/.test(entry.name)) return false; + // 排除文档与映射文件 + if (entry.isFile() && /\.md$/.test(entry.name)) return false; + if (entry.isFile() && /\.map$/.test(entry.name)) return false; + return true; +}; + try { - const sharedThemePath = path.join(__dirname, '../../shared/lib/theme'); - - // 复制并修复 dark/basic.ts - const darkBasicSrc = path.join(sharedThemePath, 'dark/basic.ts'); - const darkBasicDest = path.join(themeDir, 'dark-basic.ts'); - if (fs.existsSync(darkBasicSrc)) { - let darkBasicContent = fs.readFileSync(darkBasicSrc, 'utf8'); - // 修复导入路径 - darkBasicContent = darkBasicContent.replace( - "import { BasicTheme, UITokenTheme } from '../theme.type';", - "import { BasicTheme, UITokenTheme } from './theme.type';" - ); - fs.writeFileSync(darkBasicDest, darkBasicContent); - console.log('已复制并修复 dark/basic.ts'); + // 主动移除已废弃目录(features) + const removeDirIfExists = (dirPath) => { + if (fs.existsSync(dirPath)) { + fs.rmSync(dirPath, { recursive: true, force: true }); + console.log(`已移除目录: ${path.relative(kitSrcDir, dirPath)}`); + } + }; + removeDirIfExists(path.join(kitSrcDir, 'features')); + + dirsToCopy.forEach((dirName) => { + const srcPath = path.join(sharedLibDir, dirName); + const destPath = path.join(kitSrcDir, dirName); + if (fs.existsSync(srcPath)) { + copyDir(srcPath, destPath, { filter: shouldInclude, overwrite: false }); + console.log(`已复制: ${dirName}`); + } else { + console.warn(`跳过不存在的目录: ${dirName}`); + } + }); + + // 单独为 data 目录写一个 index.ts 入口(shared/lib/data 没有 index.ts) + const dataIndexContent = `// Data exports (local copy) +export * from './EmitterKey'; +export * from './common'; +export * from './routePaths'; +`; + const dataIndexPath = path.join(dataDir, 'index.ts'); + if (!fs.existsSync(dataIndexPath)) { + fs.writeFileSync(dataIndexPath, dataIndexContent); + console.log('已创建 data/index.ts'); } else { - console.warn('未找到 dark/basic.ts 文件'); + console.log('跳过 data/index.ts(已存在)'); } - // 复制并修复 light/basic.ts - const lightBasicSrc = path.join(sharedThemePath, 'light/basic.ts'); - const lightBasicDest = path.join(themeDir, 'light-basic.ts'); - if (fs.existsSync(lightBasicSrc)) { - let lightBasicContent = fs.readFileSync(lightBasicSrc, 'utf8'); - // 修复导入路径 - lightBasicContent = lightBasicContent.replace( - "import { BasicTheme, UITokenTheme } from '../theme.type';", - "import { BasicTheme, UITokenTheme } from './theme.type';" + // 重写 types/common.type.ts,移除与 PermissionsConstantType 相关的类型 + const commonTypePath = path.join(kitSrcDir, 'types', 'common.type.ts'); + if (fs.existsSync(commonTypePath)) { + let content = fs.readFileSync(commonTypePath, 'utf8'); + const original = content; + + // 移除导入 PermissionsConstantType 的语句 + content = content.replace( + /^import\s*\{\s*PermissionsConstantType\s*\}\s*from\s*['"][^'"]+['"];?\s*\n/m, + '' ); - fs.writeFileSync(lightBasicDest, lightBasicContent); - console.log('已复制并修复 light/basic.ts'); - } else { - console.warn('未找到 light/basic.ts 文件'); - } - // 复制 theme.type.ts - const themeTypeSrc = path.join(sharedThemePath, 'theme.type.ts'); - const themeTypeDest = path.join(themeDir, 'theme.type.ts'); - if (fs.existsSync(themeTypeSrc)) { - fs.copyFileSync(themeTypeSrc, themeTypeDest); - console.log('已复制 theme.type.ts'); - } else { - console.warn('未找到 theme.type.ts 文件'); + // 移除对象类型中的 permission?: PermissionsConstantType; + content = content.replace(/^\s*permission\?\s*:\s*[^;]+;\s*\n/m, ''); + + if (content !== original) { + fs.writeFileSync(commonTypePath, content); + console.log( + '已重写 types/common.type.ts(移除 PermissionsConstantType 相关声明)' + ); + } else { + console.log( + 'types/common.type.ts 未检测到需要移除的 PermissionsConstantType 声明' + ); + } } - console.log('Theme 文件复制完成'); + console.log('shared/lib 代码复制完成'); } catch (error) { - console.error('复制 Theme 文件失败:', error.message); + console.error('复制 shared/lib 代码失败:', error.message); } -// 3. 复制 Data 和 Enum 文件 -console.log('复制 Data 和 Enum 文件...'); +// 3. 生成 Providers(theme.tsx / locale.tsx / index.tsx) +console.log('生成 Providers...'); try { - // 创建 data 和 enum 目录 - const dataDir = path.join(__dirname, '../src/data'); - const enumDir = path.join(__dirname, '../src/enum'); + // theme.tsx + const themeProviderContent = `import { + StyledEngineProvider, + ThemeProvider as MuiThemeProvider +} from '@mui/system'; +import { ReactNode } from 'react'; +import { SupportTheme } from '../enum'; +import darkTheme from '../theme/dark'; +import lightTheme from '../theme/light'; + +import '../types/theme.type'; + +const themeData = { + [SupportTheme.DARK]: darkTheme, + [SupportTheme.LIGHT]: lightTheme +}; - if (!fs.existsSync(dataDir)) { - fs.mkdirSync(dataDir, { recursive: true }); - } +export interface ThemeProviderProps { + children: ReactNode; + theme?: typeof themeData; +} + +export const ThemeProvider: React.FC = ({ + children, + theme = themeData +}) => { + return ( + + {children} + + ); +}; + +export { themeData as defaultTheme }; +`; + fs.writeFileSync(path.join(providersDir, 'theme.tsx'), themeProviderContent); + console.log('已创建 providers/theme.tsx'); + + // locale.tsx + const localeProviderContent = `import React, { ReactNode, useMemo } from 'react'; +import { I18nextProvider, initReactI18next } from 'react-i18next'; +import { createInstance, i18n as I18nInstance, Resource } from 'i18next'; + +import { SupportLanguage } from '../enum'; +import zhCN from '../locale/zh-CN'; +import enUS from '../locale/en-US'; +import { DEFAULT_LANGUAGE } from '../locale'; + +type PlainObject = Record; - if (!fs.existsSync(enumDir)) { - fs.mkdirSync(enumDir, { recursive: true }); +function isObject(value: unknown): value is PlainObject { + return Object.prototype.toString.call(value) === '[object Object]'; +} + +function deepMerge( + target: T, + source: U +): T & U { + const output: PlainObject = { ...target }; + Object.keys(source).forEach((key) => { + const sourceValue = (source as PlainObject)[key]; + const targetValue = (output as PlainObject)[key]; + if (isObject(sourceValue) && isObject(targetValue)) { + (output as PlainObject)[key] = deepMerge(targetValue, sourceValue); + } else { + (output as PlainObject)[key] = sourceValue; + } + }); + return output as T & U; +} + +export const defaultLocaleResources: Resource = { + [SupportLanguage.zhCN]: zhCN, + [SupportLanguage.enUS]: enUS +}; + +export type CreateKitI18nOptions = { + language?: string; + resources?: Resource; + fallbackLng?: string; + instance?: I18nInstance; +}; + +export function createKitI18n( + options: CreateKitI18nOptions = {} +): I18nInstance { + const { + language = DEFAULT_LANGUAGE, + resources = {}, + fallbackLng = SupportLanguage.zhCN, + instance + } = options; + + const i18n = instance ?? createInstance(); + + // If instance is already initialized by host app, just inject resources + if ((i18n as any).isInitialized) { + const merged: Resource = deepMerge( + deepMerge({}, defaultLocaleResources), + resources + ); + // Inject resources into the existing instance + Object.keys(merged).forEach((lng) => { + const res = merged[lng as keyof Resource] as any; + Object.keys(res).forEach((ns) => { + i18n.addResourceBundle(lng, ns, res[ns], true, true); + }); + }); + if (language) { + i18n.changeLanguage(language); + } + return i18n; } - // 复制 data 目录下的文件 - const sharedDataPath = path.join(__dirname, '../../shared/lib/data'); + const mergedResources: Resource = deepMerge( + deepMerge({}, defaultLocaleResources), + resources + ); - // 复制 common.ts - const commonSrc = path.join(sharedDataPath, 'common.ts'); - const commonDest = path.join(dataDir, 'common.ts'); - if (fs.existsSync(commonSrc)) { - fs.copyFileSync(commonSrc, commonDest); - console.log('已复制 data/common.ts'); - } else { - console.warn('未找到 data/common.ts 文件'); + i18n.use(initReactI18next).init({ + lng: language, + fallbackLng, + resources: mergedResources, + interpolation: { escapeValue: false }, + defaultNS: 'translation' + }); + + return i18n; +} + +export interface LocaleProviderProps { + children: ReactNode; + i18n?: I18nInstance; + language?: string; + resources?: Resource; + fallbackLng?: string; + injectDefaultResources?: boolean; +} + +export const LocaleProvider: React.FC = ({ + children, + i18n, + language = DEFAULT_LANGUAGE, + resources = {}, + fallbackLng = SupportLanguage.zhCN, + injectDefaultResources = true +}) => { + const i18nInstance = useMemo(() => { + if (i18n) { + const toUse = i18n; + if (injectDefaultResources) { + const merged: Resource = deepMerge( + deepMerge({}, defaultLocaleResources), + resources + ); + Object.keys(merged).forEach((lng) => { + const res = merged[lng as keyof Resource] as any; + Object.keys(res).forEach((ns) => { + toUse.addResourceBundle(lng, ns, res[ns], true, true); + }); + }); + } else if (Object.keys(resources).length > 0) { + Object.keys(resources).forEach((lng) => { + const res = (resources as any)[lng]; + Object.keys(res).forEach((ns) => { + toUse.addResourceBundle(lng, ns, res[ns], true, true); + }); + }); + } + if (language) { + toUse.changeLanguage(language); + } + return toUse; + } + + return createKitI18n({ language, resources, fallbackLng }); + }, [i18n, language, resources, fallbackLng, injectDefaultResources]); + + return {children}; +}; +`; + fs.writeFileSync( + path.join(providersDir, 'locale.tsx'), + localeProviderContent + ); + console.log('已创建 providers/locale.tsx'); + + // index.tsx (barrel exports) + const providersIndexContent = `export * from './locale'; +export * from './theme'; +`; + fs.writeFileSync(path.join(providersDir, 'index.tsx'), providersIndexContent); + console.log('已创建 providers/index.tsx'); +} catch (error) { + console.error('生成 Providers 失败:', error.message); +} + +// 4. 修复 .d.ts 文件问题 (保持不变,只处理API部分) +console.log('修复 .d.ts 文件...'); +try { + // 递归查找所有 .d.ts 文件的函数 + function findDtsFiles(dir, files = []) { + const entries = fs.readdirSync(dir, { withFileTypes: true }); + + for (const entry of entries) { + const fullPath = path.join(dir, entry.name); + + if (entry.isDirectory()) { + findDtsFiles(fullPath, files); + } else if (entry.isFile() && entry.name.endsWith('.d.ts')) { + files.push(path.relative(apiDir, fullPath)); + } + } + + return files; } - // 复制 EmitterKey.ts - const emitterKeySrc = path.join(sharedDataPath, 'EmitterKey.ts'); - const emitterKeyDest = path.join(dataDir, 'EmitterKey.ts'); - if (fs.existsSync(emitterKeySrc)) { - fs.copyFileSync(emitterKeySrc, emitterKeyDest); - console.log('已复制 data/EmitterKey.ts'); - } else { - console.warn('未找到 data/EmitterKey.ts 文件'); + // 递归查找所有 .ts 文件的函数 + function findTsFiles(dir, files = []) { + const entries = fs.readdirSync(dir, { withFileTypes: true }); + + for (const entry of entries) { + const fullPath = path.join(dir, entry.name); + + if (entry.isDirectory()) { + findTsFiles(fullPath, files); + } else if (entry.isFile() && entry.name.endsWith('.ts')) { + files.push(path.relative(apiDir, fullPath)); + } + } + + return files; } - // 复制 enum 目录下的文件 - const sharedEnumPath = path.join(__dirname, '../../shared/lib/enum'); + // 查找所有的 .d.ts 文件 + const dtsFiles = findDtsFiles(apiDir); - // 复制 index.ts - const enumIndexSrc = path.join(sharedEnumPath, 'index.ts'); - const enumIndexDest = path.join(enumDir, 'index.ts'); - if (fs.existsSync(enumIndexSrc)) { - fs.copyFileSync(enumIndexSrc, enumIndexDest); - console.log('已复制 enum/index.ts'); - } else { - console.warn('未找到 enum/index.ts 文件'); + console.log(`找到 ${dtsFiles.length} 个 .d.ts 文件`); + + dtsFiles.forEach((file) => { + const fullPath = path.join(apiDir, file); + const newPath = fullPath.replace(/\.d\.ts$/, '.type.ts'); + + console.log(`重命名: ${file} -> ${file.replace(/\.d\.ts$/, '.type.ts')}`); + fs.renameSync(fullPath, newPath); + }); + + // 查找所有的 .ts 文件并修复导入语句 + const tsFiles = findTsFiles(apiDir); + + tsFiles.forEach((file) => { + const fullPath = path.join(apiDir, file); + let content = fs.readFileSync(fullPath, 'utf8'); + + // 替换导入语句中的 .d 引用 + const originalContent = content; + content = content.replace( + /from\s+['"`]([^'"`]*?)\.d['"`]/g, + "from '$1.type'" + ); + + if (content !== originalContent) { + console.log(`修复导入语句: ${file}`); + fs.writeFileSync(fullPath, content); + } + }); + + console.log('.d.ts 文件修复完成'); +} catch (error) { + console.error('修复 .d.ts 文件失败:', error.message); +} + +// 5. 为生成的 API 类型文件添加 @ts-nocheck 忽略类型检查 (保持不变) +console.log('为 API 类型文件添加 @ts-nocheck...'); +try { + // 查找所有的 .type.ts 文件 + function findTypeFiles(dir, files = []) { + const entries = fs.readdirSync(dir, { withFileTypes: true }); + + for (const entry of entries) { + const fullPath = path.join(dir, entry.name); + + if (entry.isDirectory()) { + findTypeFiles(fullPath, files); + } else if (entry.isFile() && entry.name.endsWith('.type.ts')) { + files.push(path.relative(apiDir, fullPath)); + } + } + + return files; } - // 创建 data 目录的 index.ts 文件 - const dataIndexContent = `// Data exports -export * from './common'; -export { default as EmitterKey } from './EmitterKey'; -`; - fs.writeFileSync(path.join(dataDir, 'index.ts'), dataIndexContent); - console.log('已创建 data/index.ts'); + const typeFiles = findTypeFiles(apiDir); + + console.log(`找到 ${typeFiles.length} 个 .type.ts 文件`); + + typeFiles.forEach((file) => { + const fullPath = path.join(apiDir, file); + let content = fs.readFileSync(fullPath, 'utf8'); - console.log('Data 和 Enum 文件复制完成'); + // 检查是否已经有 @ts-nocheck 注释 + if (!content.includes('// @ts-nocheck')) { + // 在文件顶部添加 @ts-nocheck 注释 + content = '/* eslint-disable */\n // @ts-nocheck\n' + content; + fs.writeFileSync(fullPath, content); + console.log(`添加 @ts-nocheck: ${file}`); + } + }); + + console.log('API 类型文件 @ts-nocheck 添加完成'); } catch (error) { - console.error('复制 Data 和 Enum 文件失败:', error.message); + console.error('添加 @ts-nocheck 失败:', error.message); } -// 4. 创建通用 API 客户端文件 -console.log('创建通用 API 客户端...'); +// 6. 生成 API 入口文件 (保持不变) +console.log('生成 API 入口文件...'); try { - // 创建公共 utils 目录 + // 为 API 客户端创建必要的工具目录 const commonUtilsDir = path.join(apiDir, 'utils'); + const sqleUtilsDir = path.join(apiDir, 'sqle', 'utils'); + const dmsUtilsDir = path.join(apiDir, 'dms', 'utils'); + if (!fs.existsSync(commonUtilsDir)) { fs.mkdirSync(commonUtilsDir, { recursive: true }); } - // 为 sqle 创建 utils 目录(用于引用) - const sqleUtilsDir = path.join(apiDir, 'sqle', 'utils'); if (!fs.existsSync(sqleUtilsDir)) { fs.mkdirSync(sqleUtilsDir, { recursive: true }); } - // 为 dms 创建 utils 目录(用于引用) - const dmsUtilsDir = path.join(apiDir, 'dms', 'utils'); if (!fs.existsSync(dmsUtilsDir)) { fs.mkdirSync(dmsUtilsDir, { recursive: true }); } @@ -385,7 +706,7 @@ export default apiClient; export { SDKApiClient }; `; - // 写入公共的 Api.ts 文件 + // 写入公共的 ApiClient.ts 文件 fs.writeFileSync(path.join(commonUtilsDir, 'ApiClient.ts'), apiClientContent); // 在 sqle/utils 下创建引用文件 @@ -402,131 +723,6 @@ export { default } from '../../utils/ApiClient'; `; fs.writeFileSync(path.join(dmsUtilsDir, 'Api.ts'), dmsApiReference); - console.log('通用 API 客户端创建完成'); -} catch (error) { - console.error('创建通用 API 客户端失败:', error.message); -} - -// 5. 修复 .d.ts 文件问题 -console.log('修复 .d.ts 文件...'); -try { - // 递归查找所有 .d.ts 文件的函数 - function findDtsFiles(dir, files = []) { - const entries = fs.readdirSync(dir, { withFileTypes: true }); - - for (const entry of entries) { - const fullPath = path.join(dir, entry.name); - - if (entry.isDirectory()) { - findDtsFiles(fullPath, files); - } else if (entry.isFile() && entry.name.endsWith('.d.ts')) { - files.push(path.relative(apiDir, fullPath)); - } - } - - return files; - } - - // 递归查找所有 .ts 文件的函数 - function findTsFiles(dir, files = []) { - const entries = fs.readdirSync(dir, { withFileTypes: true }); - - for (const entry of entries) { - const fullPath = path.join(dir, entry.name); - - if (entry.isDirectory()) { - findTsFiles(fullPath, files); - } else if (entry.isFile() && entry.name.endsWith('.ts')) { - files.push(path.relative(apiDir, fullPath)); - } - } - - return files; - } - - // 查找所有的 .d.ts 文件 - const dtsFiles = findDtsFiles(apiDir); - - console.log(`找到 ${dtsFiles.length} 个 .d.ts 文件`); - - dtsFiles.forEach((file) => { - const fullPath = path.join(apiDir, file); - const newPath = fullPath.replace(/\.d\.ts$/, '.type.ts'); - - console.log(`重命名: ${file} -> ${file.replace(/\.d\.ts$/, '.type.ts')}`); - fs.renameSync(fullPath, newPath); - }); - - // 查找所有的 .ts 文件并修复导入语句 - const tsFiles = findTsFiles(apiDir); - - tsFiles.forEach((file) => { - const fullPath = path.join(apiDir, file); - let content = fs.readFileSync(fullPath, 'utf8'); - - // 替换导入语句中的 .d 引用 - const originalContent = content; - content = content.replace( - /from\s+['"`]([^'"`]*?)\.d['"`]/g, - "from '$1.type'" - ); - - if (content !== originalContent) { - console.log(`修复导入语句: ${file}`); - fs.writeFileSync(fullPath, content); - } - }); - - console.log('.d.ts 文件修复完成'); -} catch (error) { - console.error('修复 .d.ts 文件失败:', error.message); -} - -// 6. 为生成的 API 类型文件添加 @ts-nocheck 忽略类型检查 -console.log('为 API 类型文件添加 @ts-nocheck...'); -try { - // 查找所有的 .type.ts 文件 - function findTypeFiles(dir, files = []) { - const entries = fs.readdirSync(dir, { withFileTypes: true }); - - for (const entry of entries) { - const fullPath = path.join(dir, entry.name); - - if (entry.isDirectory()) { - findTypeFiles(fullPath, files); - } else if (entry.isFile() && entry.name.endsWith('.type.ts')) { - files.push(path.relative(apiDir, fullPath)); - } - } - - return files; - } - - const typeFiles = findTypeFiles(apiDir); - - console.log(`找到 ${typeFiles.length} 个 .type.ts 文件`); - - typeFiles.forEach((file) => { - const fullPath = path.join(apiDir, file); - let content = fs.readFileSync(fullPath, 'utf8'); - - // 检查是否已经有 @ts-nocheck 注释 - if (!content.includes('// @ts-nocheck')) { - // 在文件顶部添加 @ts-nocheck 注释 - content = '/* eslint-disable */\n // @ts-nocheck\n' + content; - fs.writeFileSync(fullPath, content); - console.log(`添加 @ts-nocheck: ${file}`); - } - }); - - console.log('API 类型文件 @ts-nocheck 添加完成'); -} catch (error) { - console.error('添加 @ts-nocheck 失败:', error.message); -} - -// 7. 生成 API 入口文件 -console.log('生成 API 入口文件...'); -try { const apiIndexContent = `// SQLE API exports export * as SQLEService from './sqle'; @@ -549,22 +745,29 @@ export type { console.error('生成 API 入口文件失败:', error.message); } -// 8. 生成主入口文件 +// 7. 生成主入口文件 console.log('生成主入口文件...'); try { const indexContent = `// API exports export * from './api'; -// Theme exports -export * from './theme/dark-basic'; -export * from './theme/light-basic'; -export * from './theme/theme.type'; - // Data exports export * from './data'; // Enum exports export * from './enum'; + +// Components exports +export * from './components'; + +// Providers exports +export * from './providers'; + +// Locale exports (types, constants) +export * from './locale'; + +// Hooks exports +export * from './hooks'; `; fs.writeFileSync(path.join(__dirname, '../src/index.ts'), indexContent); diff --git a/packages/kit/tsconfig.json b/packages/kit/tsconfig.json index 56e8d5a66..64fcb1f15 100644 --- a/packages/kit/tsconfig.json +++ b/packages/kit/tsconfig.json @@ -1,24 +1,5 @@ { - "compilerOptions": { - "target": "ES2020", - "lib": ["DOM", "DOM.Iterable", "ES6"], - "allowJs": true, - "skipLibCheck": true, - "esModuleInterop": true, - "allowSyntheticDefaultImports": true, - "strict": true, - "forceConsistentCasingInFileNames": true, - "noFallthroughCasesInSwitch": true, - "module": "ESNext", - "moduleResolution": "node", - "resolveJsonModule": true, - "isolatedModules": true, - "noEmit": true, - "jsx": "react-jsx", - "declaration": true, - "declarationMap": true, - "outDir": "dist" - }, + "extends": "../../tsconfig.json", "include": ["src"], "exclude": ["node_modules", "dist"] } diff --git a/packages/kit/tsup.config.ts b/packages/kit/tsup.config.ts index 46a642e82..6d4749acb 100644 --- a/packages/kit/tsup.config.ts +++ b/packages/kit/tsup.config.ts @@ -3,6 +3,7 @@ import { defineConfig } from 'tsup'; export default defineConfig({ entry: ['src/index.ts'], format: ['cjs', 'esm'], + // 生成 .d.ts。若要彻底规避外部库类型导致的诊断,可将其改为对象并设置 skipDiagnostics dts: true, clean: true, sourcemap: false, @@ -10,5 +11,28 @@ export default defineConfig({ treeshake: true, target: 'es2020', outDir: 'dist', - splitting: false + splitting: false, + platform: 'browser', + external: [ + // Keep peer deps/external UI libs out of the bundle + 'react', + 'react-dom', + 'antd', + '@ant-design/cssinjs', + '@mui/material', + '@mui/system', + '@emotion/styled', + '@monaco-editor/react', + 'monaco-editor' + ], + esbuildPlugins: [ + { + name: 'external-worker-query-plugin', + setup(build) { + build.onResolve({ filter: /\?worker$/ }, (args) => { + return { path: args.path, external: true }; + }); + } + } + ] }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9437b18e9..286311c41 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -333,9 +333,54 @@ importers: packages/kit: dependencies: + '@actiontech/icons': + specifier: workspace:* + version: link:../icons + '@ant-design/cssinjs': + specifier: 1.17.0 + version: 1.17.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@monaco-editor/react': + specifier: ^4.6.0 + version: 4.7.0(monaco-editor@0.34.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mui/material': + specifier: ^5.11.16 + version: 5.11.16(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mui/styles': + specifier: ^5.11.16 + version: 5.11.16(@types/react@18.3.20)(react@18.3.1) + '@mui/system': + specifier: ^5.9.1 + version: 5.17.1(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1) + ahooks: + specifier: ^3.7.0 + version: 3.8.4(react@18.3.1) + antd: + specifier: '>=5.7.3' + version: 5.7.3(luxon@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) axios: - specifier: ^0.27.2 - version: 0.27.2 + specifier: ^1 + version: 1.11.0 + classnames: + specifier: ^2.3.0 + version: 2.5.1 + dayjs: + specifier: ^1 + version: 1.11.13 + i18next: + specifier: ^23.0.0 + version: 23.16.8 + react: + specifier: '>=17' + version: 18.3.1 + react-dom: + specifier: '>=17' + version: 18.3.1(react@18.3.1) + react-i18next: + specifier: ^15.0.0 + version: 15.6.1(i18next@23.16.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2) + typescript: + specifier: '>=5.0.2' + version: 5.8.2 devDependencies: rimraf: specifier: ^6.0.1 @@ -1282,6 +1327,10 @@ packages: resolution: {integrity: sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==} engines: {node: '>=6.9.0'} + '@babel/runtime@7.28.2': + resolution: {integrity: sha512-KHp2IflsnGywDjBWDkR9iEqiWSpc8GIi0lgTT3mOElT0PP1tG26P4tmFI2YvAdzgq9RGyoHZQEIEdZy6Ec5xCA==} + engines: {node: '>=6.9.0'} + '@babel/template@7.27.0': resolution: {integrity: sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==} engines: {node: '>=6.9.0'} @@ -4344,6 +4393,9 @@ packages: axios@0.27.2: resolution: {integrity: sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==} + axios@1.11.0: + resolution: {integrity: sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==} + babel-jest@29.7.0: resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -6003,6 +6055,10 @@ packages: resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==} engines: {node: '>= 6'} + form-data@4.0.4: + resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==} + engines: {node: '>= 6'} + format@0.2.2: resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} engines: {node: '>=0.4.x'} @@ -6469,6 +6525,9 @@ packages: i18next@21.10.0: resolution: {integrity: sha512-YeuIBmFsGjUfO3qBmMOc0rQaun4mIpGKET5WDwvu8lU7gvwpcariZLNtL0Fzj+zazcHUrlXHiptcFhBMFaxzfg==} + i18next@23.16.8: + resolution: {integrity: sha512-06r/TitrM88Mg5FdUXAKL96dJMzgqLE5dv3ryBAra4KCwD9mJ4ndOTS95ZuymIGoE+2hzfdaMak2X11/es7ZWg==} + iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} @@ -8549,6 +8608,9 @@ packages: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + prr@1.0.1: resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} @@ -8975,6 +9037,22 @@ packages: react-native: optional: true + react-i18next@15.6.1: + resolution: {integrity: sha512-uGrzSsOUUe2sDBG/+FJq2J1MM+Y4368/QW8OLEKSFvnDflHBbZhSd1u3UkW0Z06rMhZmnB/AQrhCpYfE5/5XNg==} + peerDependencies: + i18next: '>= 23.2.3' + react: '>= 16.8.0' + react-dom: '*' + react-native: '*' + typescript: ^5 + peerDependenciesMeta: + react-dom: + optional: true + react-native: + optional: true + typescript: + optional: true + react-infinite-scroll-component@6.1.0: resolution: {integrity: sha512-SQu5nCqy8DxQWpnUVLx7V7b7LcA37aM7tvoWjTLZp1dk6EJibM5/4EJKzOnl07/BsM1Y40sKLuqjCwwH/xV0TQ==} peerDependencies: @@ -11976,6 +12054,8 @@ snapshots: dependencies: regenerator-runtime: 0.14.1 + '@babel/runtime@7.28.2': {} + '@babel/template@7.27.0': dependencies: '@babel/code-frame': 7.26.2 @@ -15304,6 +15384,14 @@ snapshots: transitivePeerDependencies: - debug + axios@1.11.0: + dependencies: + follow-redirects: 1.15.9 + form-data: 4.0.4 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + babel-jest@29.7.0(@babel/core@7.26.10): dependencies: '@babel/core': 7.26.10 @@ -17586,6 +17674,14 @@ snapshots: es-set-tostringtag: 2.1.0 mime-types: 2.1.35 + form-data@4.0.4: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 + hasown: 2.0.2 + mime-types: 2.1.35 + format@0.2.2: {} formdata-polyfill@4.0.10: @@ -18204,6 +18300,10 @@ snapshots: dependencies: '@babel/runtime': 7.27.0 + i18next@23.16.8: + dependencies: + '@babel/runtime': 7.27.0 + iconv-lite@0.4.24: dependencies: safer-buffer: 2.1.2 @@ -20813,6 +20913,8 @@ snapshots: forwarded: 0.2.0 ipaddr.js: 1.9.1 + proxy-from-env@1.1.0: {} + prr@1.0.1: optional: true @@ -20968,7 +21070,7 @@ snapshots: dependencies: '@babel/runtime': 7.27.0 '@rc-component/trigger': 1.18.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - classnames: 2.3.2 + classnames: 2.5.1 rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -21037,7 +21139,7 @@ snapshots: dependencies: '@babel/runtime': 7.27.0 '@rc-component/trigger': 1.18.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - classnames: 2.3.2 + classnames: 2.5.1 rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) rc-overflow: 1.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -21047,7 +21149,7 @@ snapshots: rc-motion@2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@babel/runtime': 7.27.0 - classnames: 2.3.2 + classnames: 2.5.1 rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -21173,7 +21275,7 @@ snapshots: rc-tabs@12.15.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@babel/runtime': 7.27.0 - classnames: 2.3.2 + classnames: 2.5.1 rc-dropdown: 4.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) rc-menu: 9.12.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -21216,7 +21318,7 @@ snapshots: dependencies: '@babel/runtime': 7.27.0 '@rc-component/trigger': 2.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - classnames: 2.3.2 + classnames: 2.5.1 rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -21234,7 +21336,7 @@ snapshots: rc-tree@5.13.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@babel/runtime': 7.27.0 - classnames: 2.3.2 + classnames: 2.5.1 rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) rc-virtual-list: 3.18.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -21269,7 +21371,7 @@ snapshots: rc-virtual-list@3.18.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@babel/runtime': 7.27.0 - classnames: 2.3.2 + classnames: 2.5.1 rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 @@ -21342,6 +21444,16 @@ snapshots: optionalDependencies: react-dom: 18.3.1(react@18.3.1) + react-i18next@15.6.1(i18next@23.16.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2): + dependencies: + '@babel/runtime': 7.28.2 + html-parse-stringify: 3.0.1 + i18next: 23.16.8 + react: 18.3.1 + optionalDependencies: + react-dom: 18.3.1(react@18.3.1) + typescript: 5.8.2 + react-infinite-scroll-component@6.1.0(react@18.3.1): dependencies: react: 18.3.1 @@ -21450,7 +21562,7 @@ snapshots: react-select@5.10.1(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 '@emotion/cache': 11.14.0 '@emotion/react': 11.14.0(@types/react@18.3.20)(react@18.3.1) '@floating-ui/dom': 1.6.13 From e44a06014b59eba896f47a1691c0d94ba0f36697 Mon Sep 17 00:00:00 2001 From: LZS911 <932177767@qq.com> Date: Mon, 11 Aug 2025 17:51:43 +0800 Subject: [PATCH 03/43] temp commit --- packages/kit/package.json | 28 ++++++++++-------- pnpm-lock.yaml | 60 +++++++++++++++++++++++---------------- 2 files changed, 52 insertions(+), 36 deletions(-) diff --git a/packages/kit/package.json b/packages/kit/package.json index c7050ddaf..5a3017fe7 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -1,6 +1,6 @@ { "name": "@actiontech/dms-kit", - "version": "0.0.1-rc.2", + "version": "0.0.1-rc.3", "description": "dms kit", "main": "./dist/index.js", "module": "./dist/index.mjs", @@ -38,22 +38,26 @@ "@actiontech/icons": "workspace:*" }, "peerDependencies": { - "axios": "^1", - "antd": ">=5.7.3", - "react": ">=17", - "react-dom": ">=17", - "typescript": ">=5.0.2", + "@actiontech/icons": "^0", + "@ant-design/cssinjs": "^1.17.0", + "@monaco-editor/react": "^4.6.0", "@mui/material": "^5.11.16", "@mui/styles": "^5.11.16", "@mui/system": "^5.9.1", - "@ant-design/cssinjs": "^1.17.0", + "ahooks": "^3.7.0", + "antd": ">=5.7.3", + "axios": "^1", + "classnames": "^2.3.0", "dayjs": "^1", - "react-i18next": "^15.0.0", "i18next": "^23.0.0", - "@actiontech/icons": "^0", - "classnames": "^2.3.0", - "ahooks": "^3.7.0", - "@monaco-editor/react": "^4.6.0" + "react": ">=17", + "react-dom": ">=17", + "react-i18next": "^15.0.0", + "typescript": ">=5.0.2", + "@emotion/react": "^11.14.0", + "@emotion/styled": "^11.14.0", + "rc-input-number": "~8.0.2", + "rc-tree-select": "~5.9.0" }, "license": "MIT" } \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 286311c41..dcf002d14 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -339,6 +339,12 @@ importers: '@ant-design/cssinjs': specifier: 1.17.0 version: 1.17.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@emotion/react': + specifier: ^11.14.0 + version: 11.14.0(@types/react@18.3.20)(react@18.3.1) + '@emotion/styled': + specifier: ^11.14.0 + version: 11.14.0(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1) '@monaco-editor/react': specifier: ^4.6.0 version: 4.7.0(monaco-editor@0.34.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -369,6 +375,12 @@ importers: i18next: specifier: ^23.0.0 version: 23.16.8 + rc-input-number: + specifier: ~8.0.2 + version: 8.0.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-tree-select: + specifier: ~5.9.0 + version: 5.9.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: specifier: '>=17' version: 18.3.1 @@ -10939,7 +10951,7 @@ snapshots: '@ant-design/fast-color@2.0.6': dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 '@ant-design/icons-svg@4.4.2': {} @@ -12201,7 +12213,7 @@ snapshots: '@emotion/babel-plugin@11.13.5': dependencies: '@babel/helper-module-imports': 7.25.9 - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 '@emotion/hash': 0.9.2 '@emotion/memoize': 0.9.0 '@emotion/serialize': 1.3.3 @@ -12240,7 +12252,7 @@ snapshots: '@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1)': dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 '@emotion/babel-plugin': 11.13.5 '@emotion/cache': 11.14.0 '@emotion/serialize': 1.3.3 @@ -12266,7 +12278,7 @@ snapshots: '@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1)': dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 '@emotion/babel-plugin': 11.13.5 '@emotion/is-prop-valid': 1.3.1 '@emotion/react': 11.14.0(@types/react@18.3.20)(react@18.3.1) @@ -13134,7 +13146,7 @@ snapshots: '@loadable/component@5.15.2(react@18.3.1)': dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 hoist-non-react-statics: 3.3.2 react: 18.3.1 react-is: 16.13.1 @@ -13513,14 +13525,14 @@ snapshots: '@rc-component/context@1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) '@rc-component/mini-decimal@1.1.0': dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 '@rc-component/mutate-observer@1.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -13532,7 +13544,7 @@ snapshots: '@rc-component/portal@1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 classnames: 2.5.1 rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 @@ -13561,7 +13573,7 @@ snapshots: '@rc-component/trigger@2.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 '@rc-component/portal': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) classnames: 2.5.1 rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -14512,7 +14524,7 @@ snapshots: '@uiw/react-markdown-preview@4.2.2(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 '@uiw/copy-to-clipboard': 1.0.17 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -14705,7 +14717,7 @@ snapshots: '@umijs/history@5.3.1': dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 query-string: 6.14.1 '@umijs/lint@4.4.6(eslint@9.23.0)(jest@29.1.2(@types/node@22.13.14)(babel-plugin-macros@3.1.0))(postcss-less@6.0.0(postcss@8.5.3))(stylelint@15.11.0(typescript@5.3.3))(typescript@5.3.3)': @@ -16256,7 +16268,7 @@ snapshots: css-vendor@2.0.8: dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 is-in-browser: 1.1.3 css-what@2.1.3: {} @@ -16542,7 +16554,7 @@ snapshots: dom-helpers@5.2.1: dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 csstype: 3.1.3 dom-serializer@0.1.1: @@ -21096,7 +21108,7 @@ snapshots: rc-input-number@8.0.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 '@rc-component/mini-decimal': 1.1.0 classnames: 2.5.1 rc-input: 1.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -21137,7 +21149,7 @@ snapshots: rc-menu@9.12.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 '@rc-component/trigger': 1.18.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) classnames: 2.5.1 rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -21165,7 +21177,7 @@ snapshots: rc-overflow@1.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 classnames: 2.5.1 rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -21274,7 +21286,7 @@ snapshots: rc-tabs@12.15.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 classnames: 2.5.1 rc-dropdown: 4.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) rc-menu: 9.12.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -21316,7 +21328,7 @@ snapshots: rc-tooltip@6.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 '@rc-component/trigger': 2.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) classnames: 2.5.1 rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -21325,7 +21337,7 @@ snapshots: rc-tree-select@5.9.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 classnames: 2.5.1 rc-select: 14.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) rc-tree: 5.7.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -21335,7 +21347,7 @@ snapshots: rc-tree@5.13.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 classnames: 2.5.1 rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -21370,7 +21382,7 @@ snapshots: rc-virtual-list@3.18.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 classnames: 2.5.1 rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -21407,7 +21419,7 @@ snapshots: react-error-boundary@4.1.2(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 react: 18.3.1 react-error-overlay@6.0.9: {} @@ -21427,7 +21439,7 @@ snapshots: react-helmet-async@1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 invariant: 2.2.4 prop-types: 15.8.1 react: 18.3.1 @@ -21717,7 +21729,7 @@ snapshots: regenerator-transform@0.15.2: dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 regexp.prototype.flags@1.5.4: dependencies: From 603139a31a54bc8fb993cb5d94a0bc616893dda0 Mon Sep 17 00:00:00 2001 From: LZS911 <932177767@qq.com> Date: Tue, 12 Aug 2025 14:13:37 +0800 Subject: [PATCH 04/43] [feature](kit): complete the kit package --- packages/icons/package.json | 28 ++++++++++++++++++++--- packages/kit/package.json | 11 +++++---- packages/kit/scripts/generate.js | 39 ++++++++++++++++++++++++-------- 3 files changed, 61 insertions(+), 17 deletions(-) diff --git a/packages/icons/package.json b/packages/icons/package.json index f699cc36a..971179394 100644 --- a/packages/icons/package.json +++ b/packages/icons/package.json @@ -1,14 +1,36 @@ { "name": "@actiontech/icons", - "version": "1.0.0", + "version": "0.0.1-rc.1", "description": "", - "main": "src/index.ts", + "main": "./dist/index.js", + "module": "./es/index.js", + "types": "./es/index.d.ts", "type": "module", + "exports": { + ".": { + "import": { + "types": "./es/index.d.ts", + "default": "./es/index.js" + }, + "require": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "es" + ], + "publishConfig": { + "registry": "http://10.186.18.19:4873/", + "access": "restricted" + }, "scripts": { "start": "dumi dev", "docs:build": "dumi build", "docs:preview": "dumi preview", "build": "father build", + "prepublishOnly": "pnpm build", "icon:g": "svgr --template template/template.cjs -d src svg/ ", "docs:g": "node scripts/generate.js" }, @@ -20,4 +42,4 @@ "dumi": "^2.3.8", "father": "^4.1.0" } -} +} \ No newline at end of file diff --git a/packages/kit/package.json b/packages/kit/package.json index 5a3017fe7..b0cba2b55 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -1,6 +1,6 @@ { "name": "@actiontech/dms-kit", - "version": "0.0.1-rc.3", + "version": "0.0.1-rc.8", "description": "dms kit", "main": "./dist/index.js", "module": "./dist/index.mjs", @@ -28,6 +28,7 @@ "build": "tsup", "clean": "rimraf src", "generate": "pnpm clean && node scripts/generate.js", + "prebuild": "pnpm generate", "prepublish": "pnpm build" }, "devDependencies": { @@ -38,12 +39,12 @@ "@actiontech/icons": "workspace:*" }, "peerDependencies": { - "@actiontech/icons": "^0", + "@actiontech/icons": "0.0.1-rc.1", "@ant-design/cssinjs": "^1.17.0", "@monaco-editor/react": "^4.6.0", - "@mui/material": "^5.11.16", - "@mui/styles": "^5.11.16", - "@mui/system": "^5.9.1", + "@mui/material": "5.11.16", + "@mui/styles": "5.11.16", + "@mui/system": "5.9.1", "ahooks": "^3.7.0", "antd": ">=5.7.3", "axios": "^1", diff --git a/packages/kit/scripts/generate.js b/packages/kit/scripts/generate.js index 3ddf42756..8ed6227ec 100644 --- a/packages/kit/scripts/generate.js +++ b/packages/kit/scripts/generate.js @@ -173,28 +173,30 @@ import lightTheme from '../theme/light'; import '../types/theme.type'; -const themeData = { +const DEFAULT_THEME_DATA = { [SupportTheme.DARK]: darkTheme, [SupportTheme.LIGHT]: lightTheme }; export interface ThemeProviderProps { children: ReactNode; - theme?: typeof themeData; + themeData?: typeof DEFAULT_THEME_DATA; + theme?: SupportTheme } export const ThemeProvider: React.FC = ({ children, - theme = themeData + themeData = DEFAULT_THEME_DATA, + theme = SupportTheme.LIGHT }) => { return ( - - {children} + + {children} ); }; -export { themeData as defaultTheme }; +export { DEFAULT_THEME_DATA }; `; fs.writeFileSync(path.join(providersDir, 'theme.tsx'), themeProviderContent); console.log('已创建 providers/theme.tsx'); @@ -203,7 +205,6 @@ export { themeData as defaultTheme }; const localeProviderContent = `import React, { ReactNode, useMemo } from 'react'; import { I18nextProvider, initReactI18next } from 'react-i18next'; import { createInstance, i18n as I18nInstance, Resource } from 'i18next'; - import { SupportLanguage } from '../enum'; import zhCN from '../locale/zh-CN'; import enUS from '../locale/en-US'; @@ -349,8 +350,28 @@ export const LocaleProvider: React.FC = ({ console.log('已创建 providers/locale.tsx'); // index.tsx (barrel exports) - const providersIndexContent = `export * from './locale'; -export * from './theme'; + const providersIndexContent = `import { ThemeProvider, ThemeProviderProps, DEFAULT_THEME_DATA } from './theme'; +import { LocaleProvider, LocaleProviderProps } from './locale'; +import { SupportTheme } from '../enum'; + +export interface ConfigProviderProps + extends ThemeProviderProps, + LocaleProviderProps {} + +export const ConfigProvider: React.FC = ({ + children, + theme = SupportTheme.LIGHT, + themeData = DEFAULT_THEME_DATA, + ...localProps +}) => { + return ( + + {children} + + ); +}; + +export { DEFAULT_THEME_DATA }; `; fs.writeFileSync(path.join(providersDir, 'index.tsx'), providersIndexContent); console.log('已创建 providers/index.tsx'); From 1f9a95c9ffe85d56fb87cf2a3f05ae6290522b18 Mon Sep 17 00:00:00 2001 From: LZS911 <932177767@qq.com> Date: Tue, 12 Aug 2025 14:23:50 +0800 Subject: [PATCH 05/43] fix: update pnpm lock file --- pnpm-lock.yaml | 64 +++++++++++++++++++++++++++++++++++++------------- 1 file changed, 48 insertions(+), 16 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dcf002d14..6a72e0f4e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -349,14 +349,14 @@ importers: specifier: ^4.6.0 version: 4.7.0(monaco-editor@0.34.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': - specifier: ^5.11.16 + specifier: 5.11.16 version: 5.11.16(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/styles': - specifier: ^5.11.16 + specifier: 5.11.16 version: 5.11.16(@types/react@18.3.20)(react@18.3.1) '@mui/system': - specifier: ^5.9.1 - version: 5.17.1(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1) + specifier: 5.9.1 + version: 5.9.1(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1) ahooks: specifier: ^3.7.0 version: 3.8.4(react@18.3.1) @@ -2704,6 +2704,22 @@ packages: '@types/react': optional: true + '@mui/system@5.9.1': + resolution: {integrity: sha512-ZixTmc2+sYp++avoYJ38eM70nfwwudN06vYCU4kfwa4nQPiH+bhLYZnfYkcXRKiDR/hfT0dptbOOfQGZqBYczQ==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@emotion/react': ^11.5.0 + '@emotion/styled': ^11.3.0 + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + '@types/react': + optional: true + '@mui/types@7.2.24': resolution: {integrity: sha512-3c8tRt/CbWZ+pEg7QpSwbdxOk36EfmhbKf6AGZsD1EcLDLTSZoxxJ86FVtcjxvjuhdyBiWKSTGZFaXCnidO2kw==} peerDependencies: @@ -13242,7 +13258,7 @@ snapshots: '@mui/base@5.0.0-alpha.124(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 '@emotion/is-prop-valid': 1.3.1 '@mui/types': 7.2.24(@types/react@18.3.20) '@mui/utils': 5.17.1(@types/react@18.3.20)(react@18.3.1) @@ -13259,7 +13275,7 @@ snapshots: '@mui/material@5.11.16(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 '@mui/base': 5.0.0-alpha.124(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/core-downloads-tracker': 5.17.1 '@mui/system': 5.17.1(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1) @@ -13300,7 +13316,7 @@ snapshots: '@mui/styles@5.11.16(@types/react@18.3.20)(react@18.3.1)': dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 '@emotion/hash': 0.9.2 '@mui/private-theming': 5.17.1(@types/react@18.3.20)(react@18.3.1) '@mui/types': 7.2.24(@types/react@18.3.20) @@ -13337,6 +13353,22 @@ snapshots: '@emotion/styled': 11.14.0(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1) '@types/react': 18.3.20 + '@mui/system@5.9.1(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.28.2 + '@mui/private-theming': 5.17.1(@types/react@18.3.20)(react@18.3.1) + '@mui/styled-engine': 5.16.14(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1))(react@18.3.1) + '@mui/types': 7.2.24(@types/react@18.3.20) + '@mui/utils': 5.17.1(@types/react@18.3.20)(react@18.3.1) + clsx: 1.2.1 + csstype: 3.1.3 + prop-types: 15.8.1 + react: 18.3.1 + optionalDependencies: + '@emotion/react': 11.14.0(@types/react@18.3.20)(react@18.3.1) + '@emotion/styled': 11.14.0(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1) + '@types/react': 18.3.20 + '@mui/types@7.2.24(@types/react@18.3.20)': optionalDependencies: '@types/react': 18.3.20 @@ -19255,46 +19287,46 @@ snapshots: jss-plugin-camel-case@10.10.0: dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 hyphenate-style-name: 1.1.0 jss: 10.10.0 jss-plugin-default-unit@10.10.0: dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 jss: 10.10.0 jss-plugin-global@10.10.0: dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 jss: 10.10.0 jss-plugin-nested@10.10.0: dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 jss: 10.10.0 tiny-warning: 1.0.3 jss-plugin-props-sort@10.10.0: dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 jss: 10.10.0 jss-plugin-rule-value-function@10.10.0: dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 jss: 10.10.0 tiny-warning: 1.0.3 jss-plugin-vendor-prefixer@10.10.0: dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 css-vendor: 2.0.8 jss: 10.10.0 jss@10.10.0: dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 csstype: 3.1.3 is-in-browser: 1.1.3 tiny-warning: 1.0.3 @@ -21609,7 +21641,7 @@ snapshots: react-transition-group@4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 From 53ae8745ecf5fad855077660cb30d6242609f830 Mon Sep 17 00:00:00 2001 From: LZS911 <932177767@qq.com> Date: Tue, 12 Aug 2025 14:36:12 +0800 Subject: [PATCH 06/43] fix: add postinstall script --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index f59c9a0cc..973a8b7ea 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ }, "scripts": { "preinstall": "npx only-allow pnpm", + "postinstall": "pnpm icon:build", "start": "pnpm --filter base start", "start:ee": "pnpm --filter base start:ee", "start:demo": "pnpm --filter base start:demo", From d850bf023b453e72645876dd92f6e91bbb3bf947 Mon Sep 17 00:00:00 2001 From: LZS911 <932177767@qq.com> Date: Tue, 12 Aug 2025 15:06:40 +0800 Subject: [PATCH 07/43] build(icons): add publish todo --- package.json | 1 - packages/icons/PUBLISH_TODO.md | 24 +++++++++++++++ packages/icons/package.json | 26 ++-------------- packages/icons/package_publish.json | 46 +++++++++++++++++++++++++++++ 4 files changed, 72 insertions(+), 25 deletions(-) create mode 100644 packages/icons/PUBLISH_TODO.md create mode 100644 packages/icons/package_publish.json diff --git a/package.json b/package.json index 973a8b7ea..f59c9a0cc 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,6 @@ }, "scripts": { "preinstall": "npx only-allow pnpm", - "postinstall": "pnpm icon:build", "start": "pnpm --filter base start", "start:ee": "pnpm --filter base start:ee", "start:demo": "pnpm --filter base start:demo", diff --git a/packages/icons/PUBLISH_TODO.md b/packages/icons/PUBLISH_TODO.md new file mode 100644 index 000000000..2610be39c --- /dev/null +++ b/packages/icons/PUBLISH_TODO.md @@ -0,0 +1,24 @@ +# Icons 包发布临时处理方案(PUBLISH_TODO) + +## 背景 + +`packages/icons` 目录下存在两个配置文件: + +- `package.json`:供 DMS 项目本地/开发运行时使用,入口为源码 `src/index.ts`。 +- `package_publish.json`:供发版时使用,入口为构建产物(如 `es/index.js`、`dist/index.js`,并包含类型文件)。 + +之所以采用“双配置”方案,是为了在日常开发中保持 DMS 工程对源码入口的稳定依赖,同时在发版时切换到产物入口,避免对 DMS 运行造成影响。 + +## 何时需要发布 + +- 新增/更新图标资源(`svg/`)并已同步生成 React 组件(`src/`)。 +- 变更了打包或导出行为,需要产出新的 `es/` 或 `dist/`。 +- 修复线上问题并需要对外发版。 + +## 发布前检查清单 + +- 版本号:在 `packages/icons/package_publish.json` 中按语义化版本更新 `version`。 +- 入口与导出:确认 `main/module/types/exports` 指向构建产物(当前为 `es/` 与 `dist/`)。 +- 发布范围:`files` 至少包含 `es`;如需提供 CJS(`require`)消费,确保发布包中包含 `dist`(见 FAQ)。 +- 脚本:`prepublishOnly` 会自动构建(`pnpm build`)。 +- Registry:`publishConfig.registry` 指向私有仓库 `http://10.186.18.19:4873/`,无需额外指定。 diff --git a/packages/icons/package.json b/packages/icons/package.json index 971179394..c431c0f5c 100644 --- a/packages/icons/package.json +++ b/packages/icons/package.json @@ -1,36 +1,14 @@ { "name": "@actiontech/icons", - "version": "0.0.1-rc.1", + "version": "1.0.0", "description": "", - "main": "./dist/index.js", - "module": "./es/index.js", - "types": "./es/index.d.ts", + "main": "src/index.ts", "type": "module", - "exports": { - ".": { - "import": { - "types": "./es/index.d.ts", - "default": "./es/index.js" - }, - "require": { - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - } - } - }, - "files": [ - "es" - ], - "publishConfig": { - "registry": "http://10.186.18.19:4873/", - "access": "restricted" - }, "scripts": { "start": "dumi dev", "docs:build": "dumi build", "docs:preview": "dumi preview", "build": "father build", - "prepublishOnly": "pnpm build", "icon:g": "svgr --template template/template.cjs -d src svg/ ", "docs:g": "node scripts/generate.js" }, diff --git a/packages/icons/package_publish.json b/packages/icons/package_publish.json new file mode 100644 index 000000000..77adcde2d --- /dev/null +++ b/packages/icons/package_publish.json @@ -0,0 +1,46 @@ +{ + "name": "@actiontech/icons", + "version": "0.0.1-rc.1", + "description": "", + "main": "./dist/index.js", + "module": "./es/index.js", + "types": "./es/index.d.ts", + "type": "module", + "exports": { + ".": { + "import": { + "types": "./es/index.d.ts", + "default": "./es/index.js" + }, + "require": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "es", + "dist" + ], + "publishConfig": { + "registry": "http://10.186.18.19:4873/", + "access": "restricted" + }, + "scripts": { + "start": "dumi dev", + "docs:build": "dumi build", + "docs:preview": "dumi preview", + "build": "father build", + "prepublishOnly": "pnpm build", + "icon:g": "svgr --template template/template.cjs -d src svg/ ", + "docs:g": "node scripts/generate.js" + }, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "@svgr/cli": "^8.1.0", + "dumi": "^2.3.8", + "father": "^4.1.0" + } +} \ No newline at end of file From 08e561af2a192235e5e0217a96e0c35a07a90920 Mon Sep 17 00:00:00 2001 From: LZS911 <932177767@qq.com> Date: Thu, 14 Aug 2025 18:54:48 +0800 Subject: [PATCH 08/43] feat: update dms kit --- packages/kit/.gitignore | 10 - packages/kit/README.md | 292 ------- packages/kit/scripts/generate.js | 800 ------------------ packages/kit/tsconfig.json | 5 - packages/kit/tsup.config.ts | 38 - packages/shared/PUBLISH.md | 83 ++ .../components/ConfigSwitch/index.tsx | 5 +- packages/shared/lib/providers/index.tsx | 22 + packages/shared/lib/providers/locale.tsx | 140 +++ packages/shared/lib/providers/theme.tsx | 35 + packages/shared/lib/publish-entry.ts | 65 ++ packages/shared/package.json | 29 +- .../package_publish.json} | 39 +- packages/shared/publish-shared.mjs | 178 ++++ packages/shared/tsconfig.build.json | 9 + packages/shared/tsup.config.ts | 109 +++ pnpm-lock.yaml | 430 ++++------ 17 files changed, 849 insertions(+), 1440 deletions(-) delete mode 100644 packages/kit/.gitignore delete mode 100644 packages/kit/README.md delete mode 100644 packages/kit/scripts/generate.js delete mode 100644 packages/kit/tsconfig.json delete mode 100644 packages/kit/tsup.config.ts create mode 100644 packages/shared/PUBLISH.md create mode 100644 packages/shared/lib/providers/index.tsx create mode 100644 packages/shared/lib/providers/locale.tsx create mode 100644 packages/shared/lib/providers/theme.tsx create mode 100644 packages/shared/lib/publish-entry.ts rename packages/{kit/package.json => shared/package_publish.json} (58%) create mode 100644 packages/shared/publish-shared.mjs create mode 100644 packages/shared/tsconfig.build.json create mode 100644 packages/shared/tsup.config.ts diff --git a/packages/kit/.gitignore b/packages/kit/.gitignore deleted file mode 100644 index fc5cc65cf..000000000 --- a/packages/kit/.gitignore +++ /dev/null @@ -1,10 +0,0 @@ -node_modules/ -dist/ -src/ -*.log -.DS_Store -.env -.env.local -.env.development.local -.env.test.local -.env.production.local \ No newline at end of file diff --git a/packages/kit/README.md b/packages/kit/README.md deleted file mode 100644 index 0abebee9e..000000000 --- a/packages/kit/README.md +++ /dev/null @@ -1,292 +0,0 @@ -# ActionTech DMS Kit - -ActionTech DMS Kit - -## 安装 - -```bash -pnpm add @actiontech/dms-kit -``` - -## 使用方法 - -### 基础配置 - -在使用 API 服务之前,您需要配置 HTTP 客户端: - -```typescript -import axios from 'axios'; -import { ApiClient } from '@actiontech/dms-kit'; - -// 创建并配置您的 axios 实例 -const apiClient = axios.create({ - baseURL: 'https://your-api-endpoint.com', - timeout: 10000, - headers: { - 'Content-Type': 'application/json', - } -}); - -// 基础配置 -ApiClient.configure(apiClient); -``` - -### 高级配置 - -SDK 提供了丰富的配置选项来满足您的自定义需求: - -```typescript -import axios from 'axios'; -import { - type ApiClientConfigOptions -} from '@actiontech/dms-kit'; - -const apiClient = axios.create({ - baseURL: 'https://your-api-endpoint.com', - timeout: 10000, -}); - -// 高级配置选项 -const configOptions: ApiClientConfigOptions = { - // 开启调试模式 - debug: true, - - // 自定义错误处理 - onError: (error) => { - console.error('API Error:', error); - // 可以在这里集成错误报告服务 - }, - - // 自定义请求拦截器 - requestInterceptor: (config) => { - const token = localStorage.getItem('token'); - if (token) { - config.headers = { - ...config.headers, - Authorization: `Bearer ${token}`, - }; - } - return config; - }, - - // 自定义响应拦截器 - responseInterceptor: (response) => { - // 可以在这里处理通用的响应逻辑 - if (response.data?.code !== 0) { - console.warn('API Warning:', response.data?.message); - } - return response; - }, -}; - -// 配置 API 客户端 -ApiClient.configure(apiClient, configOptions); -``` - -### API 客户端管理 - -SDK 提供了灵活的客户端管理功能: - -```typescript -import { ApiClient } from '@actiontech/dms-kit'; - -// 检查是否已配置 -if (!ApiClient.isConfigured()) { - console.log('API client not configured yet'); -} - -// 运行时更新配置选项 -ApiClient.updateOptions({ - debug: false, - onError: (error) => { - // 新的错误处理逻辑 - } -}); - -// 重置配置 -ApiClient.reset(); - -// 直接设置客户端实例(高级用法) -ApiClient.setClient(myCustomAxiosInstance); -``` - -### 使用 API 服务 - -```typescript -import { SQLEApi, DMSApi } from '@actiontech/dms-kit'; - -// 使用 SQLE API -try { - const users = await DMSApi.UserService.ListUsers(); - console.log('Users:', users.data); -} catch (error) { - console.error('Failed to fetch users:', error); -} - -// 使用 DMS API -try { - const dashboard = await SQLEApi.DashboardService.getDashboardV1(); - console.log('dashboard:', dashboard.data); -} catch (error) { - console.error('Failed to fetch dashboard:', error); -} -``` - -### 使用主题配置 - -```typescript -import { - darkThemeUI, - darkThemeBasic, - lightThemeUI, - lightThemeBasic -} from '@actiontech/dms-kit'; - -// 使用深色主题 -const darkTheme = { - ...darkThemeUI, - ...darkThemeBasic -}; - -// 使用浅色主题 -const lightTheme = { - ...lightThemeUI, - ...lightThemeBasic -}; - -// 在 Ant Design 中使用 -import { ConfigProvider } from 'antd'; - - - {/* 您的应用组件 */} - -``` - -### 使用数据常量 - -SDK 提供了常用的数据常量和配置: - -```typescript -import { - ModalFormLayout, - PageFormLayout, - PROJECT_ROUTER_PARAM, - ComponentControlHeight, - SQLE_BASE_URL, - DMS_DEFAULT_WEB_TITLE, - EmitterKey -} from '@actiontech/dms-kit'; - -// 使用表单布局常量 -
- {/* 模态框表单 */} -
- -
- {/* 页面表单 */} -
- -// 使用路由参数 -const projectUrl = `/project/${PROJECT_ROUTER_PARAM}/detail`; - -// 使用事件键常量 -eventEmitter.emit(EmitterKey.UPDATE_LOCAL_COLUMNS, data); - -// 使用控件高度常量 -const buttonHeight = ComponentControlHeight.default; // 36px -``` - -### 使用枚举定义 - -SDK 提供了完整的枚举定义: - -```typescript -import { - PackageNameEnum, - SupportLanguage, - ResponseCode, - SupportTheme, - SystemRole, - StorageKey, - OpPermissionTypeUid -} from '@actiontech/dms-kit'; - -// 使用语言枚举 -const currentLanguage = SupportLanguage.zhCN; // 'zh-CN' - -// 使用主题枚举 -const currentTheme = SupportTheme.DARK; // 'dark' - -// 处理响应码 -if (response.code === ResponseCode.SUCCESS) { - // 请求成功 -} - -// 使用系统角色 -const isAdmin = userRole === SystemRole.admin; - -// 使用存储键 -localStorage.setItem(StorageKey.Language, SupportLanguage.enUS); -const token = localStorage.getItem(StorageKey.Token); - -// 使用权限类型 UID -const hasProjectAdminPermission = permissions.includes(OpPermissionTypeUid.project_admin); -``` - -## 类型定义 - -SDK 提供了完整的 TypeScript 类型定义: - -```typescript -import type { - ApiClientConfigOptions -} from '@actiontech/dms-kit'; - -// 配置选项类型 -const options: ApiClientConfigOptions = { - debug: true, - onError: (error) => {}, - requestInterceptor: (config) => config, - responseInterceptor: (response) => response, -}; -``` - -## 错误处理 - -SDK 提供了多层次的错误处理: - -```typescript -import { ApiClient } from '@actiontech/dms-kit'; - -// 全局错误处理 -ApiClient.configure(apiClient, { - onError: (error) => { - if (error.response?.status === 401) { - // 处理认证错误 - window.location.href = '/login'; - } else if (error.response?.status >= 500) { - // 处理服务器错误 - console.error('Server error:', error); - } - } -}); - -// 服务级别错误处理 -try { - const response = await sqleService.getUsers(); -} catch (error) { - // 处理特定 API 的错误 - console.error('Failed to get users:', error); -} -``` - -## 注意事项 - -1. **必须配置**: 在使用任何 API 服务之前,必须先调用 `configure()` 方法配置 HTTP 客户端 -2. **推荐 axios**: 建议使用 axios 作为 HTTP 客户端,但也可以使用其他兼容的库(目前的类型定义只支持 axios 客户端) -3. **错误处理**: 确保正确处理认证、错误处理和请求拦截 -4. **调试模式**: 在开发环境中启用 `debug: true` 来获得详细的日志信息 -5. **类型安全**: 充分利用 TypeScript 类型定义来保证类型安全 diff --git a/packages/kit/scripts/generate.js b/packages/kit/scripts/generate.js deleted file mode 100644 index 8ed6227ec..000000000 --- a/packages/kit/scripts/generate.js +++ /dev/null @@ -1,800 +0,0 @@ -const { execSync } = require('child_process'); -const fs = require('fs'); -const path = require('path'); - -console.log('开始生成 API 和模板导入文件...'); - -// 创建必要的目录 -const apiDir = path.join(__dirname, '../src/api'); -const dataDir = path.join(__dirname, '../src/data'); -const enumDir = path.join(__dirname, '../src/enum'); -const componentsDir = path.join(__dirname, '../src/components'); -const hooksDir = path.join(__dirname, '../src/hooks'); -const providersDir = path.join(__dirname, '../src/providers'); - -// 确保目录存在 -if (!fs.existsSync(path.join(__dirname, '../src'))) { - fs.mkdirSync(path.join(__dirname, '../src'), { recursive: true }); -} - -const dirs = [apiDir, dataDir, enumDir, componentsDir, hooksDir, providersDir]; - -dirs.forEach((dir) => { - if (!fs.existsSync(dir)) { - fs.mkdirSync(dir, { recursive: true }); - } -}); - -// 1. 生成 API 客户端 (保持不变) -console.log('生成 API 客户端...'); -try { - const sqleApiOutput = path.resolve(apiDir, 'sqle', 'service'); - const dmsApiOutput = path.resolve(apiDir, 'dms', 'service'); - execSync( - `pnpm api_client:g -p sqle-ui --output ${sqleApiOutput} && pnpm api_client:g -p dms-ui --output ${dmsApiOutput}`, - { - stdio: 'inherit', - cwd: path.join(__dirname, '../../..') - } - ); - console.log('API 客户端生成完成'); -} catch (error) { - console.warn('API 客户端生成失败,但继续进行下一步:', error.message); -} - -// 2. 从 shared/lib 复制代码到 kit/src -console.log('复制 shared/lib 代码到 kit/src...'); - -const sharedLibDir = path.join(__dirname, '../../shared/lib'); -const kitSrcDir = path.join(__dirname, '../src'); - -function copyDir(src, dest, options = {}) { - const { filter, overwrite = false } = options; - if (!fs.existsSync(src)) return; - if (!fs.existsSync(dest)) { - fs.mkdirSync(dest, { recursive: true }); - } - const entries = fs.readdirSync(src, { withFileTypes: true }); - for (const entry of entries) { - const srcPath = path.join(src, entry.name); - const destPath = path.join(dest, entry.name); - if (filter && !filter(srcPath, entry)) continue; - if (entry.isDirectory()) { - copyDir(srcPath, destPath, { filter, overwrite }); - } else if (entry.isFile()) { - if (!overwrite && fs.existsSync(destPath)) continue; - fs.copyFileSync(srcPath, destPath); - } - } -} - -// 需要复制的目录列表(排除 api、testUtil、features) -const dirsToCopy = [ - 'components', - 'hooks', - 'enum', - 'theme', - 'types', - 'styleWrapper', - 'locale', - 'data', - 'utils' -]; - -const shouldInclude = (srcPath, entry) => { - // 排除测试文件与快照 - if (entry.isDirectory() && entry.name === '__snapshots__') return false; - if (entry.isFile() && /\.test\.[tj]sx?$/.test(entry.name)) return false; - // 排除文档与映射文件 - if (entry.isFile() && /\.md$/.test(entry.name)) return false; - if (entry.isFile() && /\.map$/.test(entry.name)) return false; - return true; -}; - -try { - // 主动移除已废弃目录(features) - const removeDirIfExists = (dirPath) => { - if (fs.existsSync(dirPath)) { - fs.rmSync(dirPath, { recursive: true, force: true }); - console.log(`已移除目录: ${path.relative(kitSrcDir, dirPath)}`); - } - }; - removeDirIfExists(path.join(kitSrcDir, 'features')); - - dirsToCopy.forEach((dirName) => { - const srcPath = path.join(sharedLibDir, dirName); - const destPath = path.join(kitSrcDir, dirName); - if (fs.existsSync(srcPath)) { - copyDir(srcPath, destPath, { filter: shouldInclude, overwrite: false }); - console.log(`已复制: ${dirName}`); - } else { - console.warn(`跳过不存在的目录: ${dirName}`); - } - }); - - // 单独为 data 目录写一个 index.ts 入口(shared/lib/data 没有 index.ts) - const dataIndexContent = `// Data exports (local copy) -export * from './EmitterKey'; -export * from './common'; -export * from './routePaths'; -`; - const dataIndexPath = path.join(dataDir, 'index.ts'); - if (!fs.existsSync(dataIndexPath)) { - fs.writeFileSync(dataIndexPath, dataIndexContent); - console.log('已创建 data/index.ts'); - } else { - console.log('跳过 data/index.ts(已存在)'); - } - - // 重写 types/common.type.ts,移除与 PermissionsConstantType 相关的类型 - const commonTypePath = path.join(kitSrcDir, 'types', 'common.type.ts'); - if (fs.existsSync(commonTypePath)) { - let content = fs.readFileSync(commonTypePath, 'utf8'); - const original = content; - - // 移除导入 PermissionsConstantType 的语句 - content = content.replace( - /^import\s*\{\s*PermissionsConstantType\s*\}\s*from\s*['"][^'"]+['"];?\s*\n/m, - '' - ); - - // 移除对象类型中的 permission?: PermissionsConstantType; - content = content.replace(/^\s*permission\?\s*:\s*[^;]+;\s*\n/m, ''); - - if (content !== original) { - fs.writeFileSync(commonTypePath, content); - console.log( - '已重写 types/common.type.ts(移除 PermissionsConstantType 相关声明)' - ); - } else { - console.log( - 'types/common.type.ts 未检测到需要移除的 PermissionsConstantType 声明' - ); - } - } - - console.log('shared/lib 代码复制完成'); -} catch (error) { - console.error('复制 shared/lib 代码失败:', error.message); -} - -// 3. 生成 Providers(theme.tsx / locale.tsx / index.tsx) -console.log('生成 Providers...'); -try { - // theme.tsx - const themeProviderContent = `import { - StyledEngineProvider, - ThemeProvider as MuiThemeProvider -} from '@mui/system'; -import { ReactNode } from 'react'; -import { SupportTheme } from '../enum'; -import darkTheme from '../theme/dark'; -import lightTheme from '../theme/light'; - -import '../types/theme.type'; - -const DEFAULT_THEME_DATA = { - [SupportTheme.DARK]: darkTheme, - [SupportTheme.LIGHT]: lightTheme -}; - -export interface ThemeProviderProps { - children: ReactNode; - themeData?: typeof DEFAULT_THEME_DATA; - theme?: SupportTheme -} - -export const ThemeProvider: React.FC = ({ - children, - themeData = DEFAULT_THEME_DATA, - theme = SupportTheme.LIGHT -}) => { - return ( - - {children} - - ); -}; - -export { DEFAULT_THEME_DATA }; -`; - fs.writeFileSync(path.join(providersDir, 'theme.tsx'), themeProviderContent); - console.log('已创建 providers/theme.tsx'); - - // locale.tsx - const localeProviderContent = `import React, { ReactNode, useMemo } from 'react'; -import { I18nextProvider, initReactI18next } from 'react-i18next'; -import { createInstance, i18n as I18nInstance, Resource } from 'i18next'; -import { SupportLanguage } from '../enum'; -import zhCN from '../locale/zh-CN'; -import enUS from '../locale/en-US'; -import { DEFAULT_LANGUAGE } from '../locale'; - -type PlainObject = Record; - -function isObject(value: unknown): value is PlainObject { - return Object.prototype.toString.call(value) === '[object Object]'; -} - -function deepMerge( - target: T, - source: U -): T & U { - const output: PlainObject = { ...target }; - Object.keys(source).forEach((key) => { - const sourceValue = (source as PlainObject)[key]; - const targetValue = (output as PlainObject)[key]; - if (isObject(sourceValue) && isObject(targetValue)) { - (output as PlainObject)[key] = deepMerge(targetValue, sourceValue); - } else { - (output as PlainObject)[key] = sourceValue; - } - }); - return output as T & U; -} - -export const defaultLocaleResources: Resource = { - [SupportLanguage.zhCN]: zhCN, - [SupportLanguage.enUS]: enUS -}; - -export type CreateKitI18nOptions = { - language?: string; - resources?: Resource; - fallbackLng?: string; - instance?: I18nInstance; -}; - -export function createKitI18n( - options: CreateKitI18nOptions = {} -): I18nInstance { - const { - language = DEFAULT_LANGUAGE, - resources = {}, - fallbackLng = SupportLanguage.zhCN, - instance - } = options; - - const i18n = instance ?? createInstance(); - - // If instance is already initialized by host app, just inject resources - if ((i18n as any).isInitialized) { - const merged: Resource = deepMerge( - deepMerge({}, defaultLocaleResources), - resources - ); - // Inject resources into the existing instance - Object.keys(merged).forEach((lng) => { - const res = merged[lng as keyof Resource] as any; - Object.keys(res).forEach((ns) => { - i18n.addResourceBundle(lng, ns, res[ns], true, true); - }); - }); - if (language) { - i18n.changeLanguage(language); - } - return i18n; - } - - const mergedResources: Resource = deepMerge( - deepMerge({}, defaultLocaleResources), - resources - ); - - i18n.use(initReactI18next).init({ - lng: language, - fallbackLng, - resources: mergedResources, - interpolation: { escapeValue: false }, - defaultNS: 'translation' - }); - - return i18n; -} - -export interface LocaleProviderProps { - children: ReactNode; - i18n?: I18nInstance; - language?: string; - resources?: Resource; - fallbackLng?: string; - injectDefaultResources?: boolean; -} - -export const LocaleProvider: React.FC = ({ - children, - i18n, - language = DEFAULT_LANGUAGE, - resources = {}, - fallbackLng = SupportLanguage.zhCN, - injectDefaultResources = true -}) => { - const i18nInstance = useMemo(() => { - if (i18n) { - const toUse = i18n; - if (injectDefaultResources) { - const merged: Resource = deepMerge( - deepMerge({}, defaultLocaleResources), - resources - ); - Object.keys(merged).forEach((lng) => { - const res = merged[lng as keyof Resource] as any; - Object.keys(res).forEach((ns) => { - toUse.addResourceBundle(lng, ns, res[ns], true, true); - }); - }); - } else if (Object.keys(resources).length > 0) { - Object.keys(resources).forEach((lng) => { - const res = (resources as any)[lng]; - Object.keys(res).forEach((ns) => { - toUse.addResourceBundle(lng, ns, res[ns], true, true); - }); - }); - } - if (language) { - toUse.changeLanguage(language); - } - return toUse; - } - - return createKitI18n({ language, resources, fallbackLng }); - }, [i18n, language, resources, fallbackLng, injectDefaultResources]); - - return {children}; -}; -`; - fs.writeFileSync( - path.join(providersDir, 'locale.tsx'), - localeProviderContent - ); - console.log('已创建 providers/locale.tsx'); - - // index.tsx (barrel exports) - const providersIndexContent = `import { ThemeProvider, ThemeProviderProps, DEFAULT_THEME_DATA } from './theme'; -import { LocaleProvider, LocaleProviderProps } from './locale'; -import { SupportTheme } from '../enum'; - -export interface ConfigProviderProps - extends ThemeProviderProps, - LocaleProviderProps {} - -export const ConfigProvider: React.FC = ({ - children, - theme = SupportTheme.LIGHT, - themeData = DEFAULT_THEME_DATA, - ...localProps -}) => { - return ( - - {children} - - ); -}; - -export { DEFAULT_THEME_DATA }; -`; - fs.writeFileSync(path.join(providersDir, 'index.tsx'), providersIndexContent); - console.log('已创建 providers/index.tsx'); -} catch (error) { - console.error('生成 Providers 失败:', error.message); -} - -// 4. 修复 .d.ts 文件问题 (保持不变,只处理API部分) -console.log('修复 .d.ts 文件...'); -try { - // 递归查找所有 .d.ts 文件的函数 - function findDtsFiles(dir, files = []) { - const entries = fs.readdirSync(dir, { withFileTypes: true }); - - for (const entry of entries) { - const fullPath = path.join(dir, entry.name); - - if (entry.isDirectory()) { - findDtsFiles(fullPath, files); - } else if (entry.isFile() && entry.name.endsWith('.d.ts')) { - files.push(path.relative(apiDir, fullPath)); - } - } - - return files; - } - - // 递归查找所有 .ts 文件的函数 - function findTsFiles(dir, files = []) { - const entries = fs.readdirSync(dir, { withFileTypes: true }); - - for (const entry of entries) { - const fullPath = path.join(dir, entry.name); - - if (entry.isDirectory()) { - findTsFiles(fullPath, files); - } else if (entry.isFile() && entry.name.endsWith('.ts')) { - files.push(path.relative(apiDir, fullPath)); - } - } - - return files; - } - - // 查找所有的 .d.ts 文件 - const dtsFiles = findDtsFiles(apiDir); - - console.log(`找到 ${dtsFiles.length} 个 .d.ts 文件`); - - dtsFiles.forEach((file) => { - const fullPath = path.join(apiDir, file); - const newPath = fullPath.replace(/\.d\.ts$/, '.type.ts'); - - console.log(`重命名: ${file} -> ${file.replace(/\.d\.ts$/, '.type.ts')}`); - fs.renameSync(fullPath, newPath); - }); - - // 查找所有的 .ts 文件并修复导入语句 - const tsFiles = findTsFiles(apiDir); - - tsFiles.forEach((file) => { - const fullPath = path.join(apiDir, file); - let content = fs.readFileSync(fullPath, 'utf8'); - - // 替换导入语句中的 .d 引用 - const originalContent = content; - content = content.replace( - /from\s+['"`]([^'"`]*?)\.d['"`]/g, - "from '$1.type'" - ); - - if (content !== originalContent) { - console.log(`修复导入语句: ${file}`); - fs.writeFileSync(fullPath, content); - } - }); - - console.log('.d.ts 文件修复完成'); -} catch (error) { - console.error('修复 .d.ts 文件失败:', error.message); -} - -// 5. 为生成的 API 类型文件添加 @ts-nocheck 忽略类型检查 (保持不变) -console.log('为 API 类型文件添加 @ts-nocheck...'); -try { - // 查找所有的 .type.ts 文件 - function findTypeFiles(dir, files = []) { - const entries = fs.readdirSync(dir, { withFileTypes: true }); - - for (const entry of entries) { - const fullPath = path.join(dir, entry.name); - - if (entry.isDirectory()) { - findTypeFiles(fullPath, files); - } else if (entry.isFile() && entry.name.endsWith('.type.ts')) { - files.push(path.relative(apiDir, fullPath)); - } - } - - return files; - } - - const typeFiles = findTypeFiles(apiDir); - - console.log(`找到 ${typeFiles.length} 个 .type.ts 文件`); - - typeFiles.forEach((file) => { - const fullPath = path.join(apiDir, file); - let content = fs.readFileSync(fullPath, 'utf8'); - - // 检查是否已经有 @ts-nocheck 注释 - if (!content.includes('// @ts-nocheck')) { - // 在文件顶部添加 @ts-nocheck 注释 - content = '/* eslint-disable */\n // @ts-nocheck\n' + content; - fs.writeFileSync(fullPath, content); - console.log(`添加 @ts-nocheck: ${file}`); - } - }); - - console.log('API 类型文件 @ts-nocheck 添加完成'); -} catch (error) { - console.error('添加 @ts-nocheck 失败:', error.message); -} - -// 6. 生成 API 入口文件 (保持不变) -console.log('生成 API 入口文件...'); -try { - // 为 API 客户端创建必要的工具目录 - const commonUtilsDir = path.join(apiDir, 'utils'); - const sqleUtilsDir = path.join(apiDir, 'sqle', 'utils'); - const dmsUtilsDir = path.join(apiDir, 'dms', 'utils'); - - if (!fs.existsSync(commonUtilsDir)) { - fs.mkdirSync(commonUtilsDir, { recursive: true }); - } - - if (!fs.existsSync(sqleUtilsDir)) { - fs.mkdirSync(sqleUtilsDir, { recursive: true }); - } - - if (!fs.existsSync(dmsUtilsDir)) { - fs.mkdirSync(dmsUtilsDir, { recursive: true }); - } - - // 通用 API Client 内容 - const apiClientContent = `import { AxiosRequestConfig, AxiosResponse, AxiosInstance } from 'axios'; - -export type ApiClientConfigOptions = { - /** 自定义错误处理函数 */ - onError?: (error: any) => void; - /** 是否在控制台输出调试信息 */ - debug?: boolean; - /** 自定义请求拦截器 */ - requestInterceptor?: (config: AxiosRequestConfig) => AxiosRequestConfig; - /** 自定义响应拦截器 */ - responseInterceptor?: (response: AxiosResponse) => AxiosResponse; -}; - -class SDKApiClient { - private client: AxiosInstance | null = null; - private options: ApiClientConfigOptions = {}; - - /** - * 配置 API 客户端实例 - * @param apiClient - axios 实例或兼容的 HTTP 客户端 - * @param options - 配置选项 - */ - configure(apiClient: AxiosInstance, options: ApiClientConfigOptions = {}): void { - this.client = apiClient; - this.options = { ...this.options, ...options }; - - if (this.options.debug) { - console.log('[SDK API Client] Configured successfully'); - } - } - - /** - * 更新配置选项 - * @param options - 新的配置选项 - */ - updateOptions(options: Partial): void { - this.options = { ...this.options, ...options }; - } - - /** - * 获取当前配置的 API 客户端 - */ - getInstance(): AxiosInstance { - if (!this.client) { - const error = new Error( - 'API client not configured. Please call configure() with your axios instance first.\\n' + - 'Example: ApiClient.configure(axios.create({ baseURL: "your-api-url" }))' - ); - - if (this.options.onError) { - this.options.onError(error); - } - - throw error; - } - return this.client; - } - - /** - * 重置 API 客户端配置 - */ - reset(): void { - this.client = null; - this.options = {}; - - if (this.options.debug) { - console.log('[SDK API Client] Reset successfully'); - } - } - - /** - * 检查是否已配置 - */ - isConfigured(): boolean { - return this.client !== null; - } - - /** - * 直接设置 API 客户端实例(高级用法) - * @param client - API 客户端实例 - */ - setClient(client: AxiosInstance): void { - this.client = client; - } - - // 代理方法,直接调用配置的客户端 - async get(url: string, config?: AxiosRequestConfig): Promise> { - try { - const finalConfig = this.options.requestInterceptor - ? this.options.requestInterceptor(config || {}) - : config; - - if (this.options.debug) { - console.log('[SDK API Client] GET:', url, finalConfig); - } - - const response = await this.getInstance().get(url, finalConfig); - - return this.options.responseInterceptor - ? this.options.responseInterceptor(response) - : response; - } catch (error) { - if (this.options.onError) { - this.options.onError(error); - } - throw error; - } - } - - async post(url: string, data?: any, config?: AxiosRequestConfig): Promise> { - try { - const finalConfig = this.options.requestInterceptor - ? this.options.requestInterceptor(config || {}) - : config; - - if (this.options.debug) { - console.log('[SDK API Client] POST:', url, data, finalConfig); - } - - const response = await this.getInstance().post(url, data, finalConfig); - - return this.options.responseInterceptor - ? this.options.responseInterceptor(response) - : response; - } catch (error) { - if (this.options.onError) { - this.options.onError(error); - } - throw error; - } - } - - async put(url: string, data?: any, config?: AxiosRequestConfig): Promise> { - try { - const finalConfig = this.options.requestInterceptor - ? this.options.requestInterceptor(config || {}) - : config; - - if (this.options.debug) { - console.log('[SDK API Client] PUT:', url, data, finalConfig); - } - - const response = await this.getInstance().put(url, data, finalConfig); - - return this.options.responseInterceptor - ? this.options.responseInterceptor(response) - : response; - } catch (error) { - if (this.options.onError) { - this.options.onError(error); - } - throw error; - } - } - - async patch(url: string, data?: any, config?: AxiosRequestConfig): Promise> { - try { - const finalConfig = this.options.requestInterceptor - ? this.options.requestInterceptor(config || {}) - : config; - - if (this.options.debug) { - console.log('[SDK API Client] PATCH:', url, data, finalConfig); - } - - const response = await this.getInstance().patch(url, data, finalConfig); - - return this.options.responseInterceptor - ? this.options.responseInterceptor(response) - : response; - } catch (error) { - if (this.options.onError) { - this.options.onError(error); - } - throw error; - } - } - - async delete(url: string, config?: AxiosRequestConfig): Promise> { - try { - const finalConfig = this.options.requestInterceptor - ? this.options.requestInterceptor(config || {}) - : config; - - if (this.options.debug) { - console.log('[SDK API Client] DELETE:', url, finalConfig); - } - - const response = await this.getInstance().delete(url, finalConfig); - - return this.options.responseInterceptor - ? this.options.responseInterceptor(response) - : response; - } catch (error) { - if (this.options.onError) { - this.options.onError(error); - } - throw error; - } - } -} - -// 导出单例实例 -const apiClient = new SDKApiClient(); -export default apiClient; - -// 导出类型和类,允许用户创建自己的实例 -export { SDKApiClient }; -`; - - // 写入公共的 ApiClient.ts 文件 - fs.writeFileSync(path.join(commonUtilsDir, 'ApiClient.ts'), apiClientContent); - - // 在 sqle/utils 下创建引用文件 - const sqleApiReference = `// Re-export from common utils -export * from '../../utils/ApiClient'; -export { default } from '../../utils/ApiClient'; -`; - fs.writeFileSync(path.join(sqleUtilsDir, 'Api.ts'), sqleApiReference); - - // 在 dms/utils 下创建引用文件 - const dmsApiReference = `// Re-export from common utils -export * from '../../utils/ApiClient'; -export { default } from '../../utils/ApiClient'; -`; - fs.writeFileSync(path.join(dmsUtilsDir, 'Api.ts'), dmsApiReference); - - const apiIndexContent = `// SQLE API exports -export * as SQLEService from './sqle'; - -// DMS API exports -export * as DMSService from './dms'; - -// API Client exports (common) -export { default as ApiClient } from './utils/ApiClient'; -export { SDKApiClient } from './utils/ApiClient'; - -// Types -export type { - ApiClientConfigOptions -} from './utils/ApiClient'; -`; - - fs.writeFileSync(path.join(apiDir, 'index.ts'), apiIndexContent); - console.log('API 入口文件生成完成'); -} catch (error) { - console.error('生成 API 入口文件失败:', error.message); -} - -// 7. 生成主入口文件 -console.log('生成主入口文件...'); -try { - const indexContent = `// API exports -export * from './api'; - -// Data exports -export * from './data'; - -// Enum exports -export * from './enum'; - -// Components exports -export * from './components'; - -// Providers exports -export * from './providers'; - -// Locale exports (types, constants) -export * from './locale'; - -// Hooks exports -export * from './hooks'; -`; - - fs.writeFileSync(path.join(__dirname, '../src/index.ts'), indexContent); - console.log('主入口文件生成完成'); -} catch (error) { - console.error('生成主入口文件失败:', error.message); -} - -console.log('所有文件生成完成!'); diff --git a/packages/kit/tsconfig.json b/packages/kit/tsconfig.json deleted file mode 100644 index 64fcb1f15..000000000 --- a/packages/kit/tsconfig.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "include": ["src"], - "exclude": ["node_modules", "dist"] -} diff --git a/packages/kit/tsup.config.ts b/packages/kit/tsup.config.ts deleted file mode 100644 index 6d4749acb..000000000 --- a/packages/kit/tsup.config.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { defineConfig } from 'tsup'; - -export default defineConfig({ - entry: ['src/index.ts'], - format: ['cjs', 'esm'], - // 生成 .d.ts。若要彻底规避外部库类型导致的诊断,可将其改为对象并设置 skipDiagnostics - dts: true, - clean: true, - sourcemap: false, - minify: true, - treeshake: true, - target: 'es2020', - outDir: 'dist', - splitting: false, - platform: 'browser', - external: [ - // Keep peer deps/external UI libs out of the bundle - 'react', - 'react-dom', - 'antd', - '@ant-design/cssinjs', - '@mui/material', - '@mui/system', - '@emotion/styled', - '@monaco-editor/react', - 'monaco-editor' - ], - esbuildPlugins: [ - { - name: 'external-worker-query-plugin', - setup(build) { - build.onResolve({ filter: /\?worker$/ }, (args) => { - return { path: args.path, external: true }; - }); - } - } - ] -}); diff --git a/packages/shared/PUBLISH.md b/packages/shared/PUBLISH.md new file mode 100644 index 000000000..751081714 --- /dev/null +++ b/packages/shared/PUBLISH.md @@ -0,0 +1,83 @@ +## @actiontech/shared 发包流程(临时目录发布) + +### 背景 + +在工作区内直接将 `package_publish.json` 改名为 `package.json` 再构建/发布,会影响同一 monorepo 里的其他包(如 `base`)对 `@actiontech/shared` 的类型解析:此时 `types` 指向 `./dist/index.d.ts`,但构建尚未产出 `dist`,从而触发 IDE/tsc 报错。 + +为消除对工作区的干扰,采用“临时目录发布”:构建在工作区完成,发布动作在系统临时目录执行,工作区不进行任何切换。 + +### 目录与关键文件 + +- `packages/shared/publish-shared.mjs`: 发布脚本(临时目录发布) +- `packages/shared/package_publish.json`: 发布版 `package.json` 模板(含 `main/module/types/exports/files/publishConfig`) +- `packages/shared/tsup.config.ts`: 构建配置(`entry`, `tsconfig`, `dts`, `outDir` 等) +- `packages/shared/tsconfig.build.json`: 构建 tsconfig(可覆盖 `noEmit/isolatedModules` 等) + +### 前置条件 + +- Node.js、pnpm、npm 可用 +- 已配置正确的 npm registry(见 `package_publish.json.publishConfig`) +- 工作区可成功执行 `pnpm -C packages/shared build` + +### 发布步骤(脚本自动化完成) + +1. 在工作区执行构建(产出 `dist`) +2. 在系统临时目录创建发布用目录,仅复制 `dist` 与必要文件(如 `README.md`、`LICENSE`) +3. 将 `package_publish.json` 复制为临时目录内的 `package.json`,写入指定版本号 +4. 在临时目录执行 `npm publish` +5. 清理临时目录 + +整个过程不修改工作区的 `package.json`,不会影响其它包/IDE 的类型解析。 + +### 使用方法 + +- 正常发布: + +```bash +node packages/shared/publish-shared.mjs --version 0.0.1-rc.9 +``` + +- 演练(不真正发布,建议先试): + +```bash +npm_config_dry_run=true node packages/shared/publish-shared.mjs --version 0.0.0-test.0 +``` + +### 版本号建议 + +- 遵循 semver:`MAJOR.MINOR.PATCH[-PRERELEASE]` +- 示例:`1.2.3`、`1.2.3-rc.1` + +### 常见问题(FAQ) + +- 为什么之前会出现 “Could not find a declaration file for module '@actiontech/shared'”? + - 旧流程在工作区切换为发布版 `package.json` 时,`types` 指向未产出的 `dist`,导致消费者包的 IDE/tsc 找不到类型声明而报错。现在改为临时目录发布,工作区不切换,问题消除。 + +- 我在 `tsconfig.build.json` 里 `exclude` 了相关目录,为什么仍有类型报错? + - `exclude` 仅作用于以该 tsconfig 为入口的 tsc 编译;对 tsup 的 dts 生成(基于入口追踪)和其他包/IDE 的类型解析不生效。根因是工作区被切换为发布形态导致解析到未产出的 `dist`,与 `exclude` 无关。 + +- 发布后包内为何不能使用 `@actiontech/shared/lib/...` 深路径导入? + - 发布包通常只包含 `dist`,不存在 `lib` 源码路径。请统一从包顶层导出使用(`import { X } from '@actiontech/shared'`),并确保在 `lib/publish-entry.ts` 中导出所需符号。 + +### 最佳实践 + +- 统一从包顶层导出,避免 `@actiontech/shared/lib/...` 深路径导入 +- 确保 `package_publish.json` 正确指向 `dist`: + - `main`, `module`, `types` 与 `exports` 的 `types`/`default` + - `files` 仅包含需要发布的目录(建议只包含 `dist`) + - `publishConfig` 指向正确的 registry,`access` 设置符合私库/公库需求 +- 如需更稳健的类型生成,可在 `tsconfig.build.json` 明确覆盖: + - `"noEmit": false` + - `"isolatedModules": false` + +### 触发命令示例(CI/CD) + +```bash +# 假设已在仓库根目录 +node packages/shared/publish-shared.mjs --version "$VERSION" +``` + +### 备注 + +- 发布脚本会在临时目录禁用可能触发二次构建的生命周期脚本(如 `prepublish/prepare/build`) +- 失败时会打印错误并清理临时目录;如清理失败需手动检查 diff --git a/packages/shared/lib/components/SystemConfigurationHub/components/ConfigSwitch/index.tsx b/packages/shared/lib/components/SystemConfigurationHub/components/ConfigSwitch/index.tsx index 9c7948014..ba56e5dec 100644 --- a/packages/shared/lib/components/SystemConfigurationHub/components/ConfigSwitch/index.tsx +++ b/packages/shared/lib/components/SystemConfigurationHub/components/ConfigSwitch/index.tsx @@ -1,6 +1,9 @@ import { Popconfirm } from 'antd'; import { FormItemLabel } from '../../../CustomForm'; -import { BasicSwitch, BasicSwitchProps } from '../../../..'; +import { + BasicSwitch, + BasicSwitchProps +} from '../../../../components/BasicSwitch'; import classNames from 'classnames'; import { useTranslation } from 'react-i18next'; diff --git a/packages/shared/lib/providers/index.tsx b/packages/shared/lib/providers/index.tsx new file mode 100644 index 000000000..bc6fec420 --- /dev/null +++ b/packages/shared/lib/providers/index.tsx @@ -0,0 +1,22 @@ +import { ThemeProvider, ThemeProviderProps, DEFAULT_THEME_DATA } from './theme'; +import { LocaleProvider, LocaleProviderProps } from './locale'; +import { SupportTheme } from '../enum'; + +export interface ConfigProviderProps + extends ThemeProviderProps, + LocaleProviderProps {} + +export const ConfigProvider: React.FC = ({ + children, + theme = SupportTheme.LIGHT, + themeData = DEFAULT_THEME_DATA, + ...localProps +}) => { + return ( + + {children} + + ); +}; + +export { DEFAULT_THEME_DATA }; diff --git a/packages/shared/lib/providers/locale.tsx b/packages/shared/lib/providers/locale.tsx new file mode 100644 index 000000000..9a55e7b95 --- /dev/null +++ b/packages/shared/lib/providers/locale.tsx @@ -0,0 +1,140 @@ +import React, { ReactNode, useMemo } from 'react'; +import { I18nextProvider, initReactI18next } from 'react-i18next'; +import { createInstance, i18n as I18nInstance, Resource } from 'i18next'; +import { SupportLanguage } from '../enum'; +import zhCN from '../locale/zh-CN'; +import enUS from '../locale/en-US'; +import { DEFAULT_LANGUAGE } from '../locale'; + +type PlainObject = Record; + +function isObject(value: unknown): value is PlainObject { + return Object.prototype.toString.call(value) === '[object Object]'; +} + +function deepMerge( + target: T, + source: U +): T & U { + const output: PlainObject = { ...target }; + Object.keys(source).forEach((key) => { + const sourceValue = (source as PlainObject)[key]; + const targetValue = (output as PlainObject)[key]; + if (isObject(sourceValue) && isObject(targetValue)) { + (output as PlainObject)[key] = deepMerge(targetValue, sourceValue); + } else { + (output as PlainObject)[key] = sourceValue; + } + }); + return output as T & U; +} + +export const defaultLocaleResources: Resource = { + [SupportLanguage.zhCN]: zhCN, + [SupportLanguage.enUS]: enUS +}; + +export type CreateKitI18nOptions = { + language?: string; + resources?: Resource; + fallbackLng?: string; + instance?: I18nInstance; +}; + +export function createKitI18n( + options: CreateKitI18nOptions = {} +): I18nInstance { + const { + language = DEFAULT_LANGUAGE, + resources = {}, + fallbackLng = SupportLanguage.zhCN, + instance + } = options; + + const i18n = instance ?? createInstance(); + + // If instance is already initialized by host app, just inject resources + if ((i18n as any).isInitialized) { + const merged: Resource = deepMerge( + deepMerge({}, defaultLocaleResources), + resources + ); + // Inject resources into the existing instance + Object.keys(merged).forEach((lng) => { + const res = merged[lng as keyof Resource] as any; + Object.keys(res).forEach((ns) => { + i18n.addResourceBundle(lng, ns, res[ns], true, true); + }); + }); + if (language) { + i18n.changeLanguage(language); + } + return i18n; + } + + const mergedResources: Resource = deepMerge( + deepMerge({}, defaultLocaleResources), + resources + ); + + i18n.use(initReactI18next).init({ + lng: language, + fallbackLng, + resources: mergedResources, + interpolation: { escapeValue: false }, + defaultNS: 'translation' + }); + + return i18n; +} + +export interface LocaleProviderProps { + children: ReactNode; + i18n?: I18nInstance; + language?: string; + resources?: Resource; + fallbackLng?: string; + injectDefaultResources?: boolean; +} + +export const LocaleProvider: React.FC = ({ + children, + i18n, + language = DEFAULT_LANGUAGE, + resources = {}, + fallbackLng = SupportLanguage.zhCN, + injectDefaultResources = true +}) => { + const i18nInstance = useMemo(() => { + if (i18n) { + const toUse = i18n; + if (injectDefaultResources) { + const merged: Resource = deepMerge( + deepMerge({}, defaultLocaleResources), + resources + ); + Object.keys(merged).forEach((lng) => { + const res = merged[lng as keyof Resource] as any; + Object.keys(res).forEach((ns) => { + toUse.addResourceBundle(lng, ns, res[ns], true, true); + }); + }); + } else if (Object.keys(resources).length > 0) { + Object.keys(resources).forEach((lng) => { + const res = (resources as any)[lng]; + Object.keys(res).forEach((ns) => { + toUse.addResourceBundle(lng, ns, res[ns], true, true); + }); + }); + } + if (language) { + toUse.changeLanguage(language); + } + return toUse; + } + + return createKitI18n({ language, resources, fallbackLng }); + }, [i18n, language, resources, fallbackLng, injectDefaultResources]); + + return {children}; +}; diff --git a/packages/shared/lib/providers/theme.tsx b/packages/shared/lib/providers/theme.tsx new file mode 100644 index 000000000..70f668f08 --- /dev/null +++ b/packages/shared/lib/providers/theme.tsx @@ -0,0 +1,35 @@ +import { + StyledEngineProvider, + ThemeProvider as MuiThemeProvider +} from '@mui/system'; +import { ReactNode } from 'react'; +import { SupportTheme } from '../enum'; +import darkTheme from '../theme/dark'; +import lightTheme from '../theme/light'; + +import '../types/theme.type'; + +const DEFAULT_THEME_DATA = { + [SupportTheme.DARK]: darkTheme, + [SupportTheme.LIGHT]: lightTheme +}; + +export interface ThemeProviderProps { + children: ReactNode; + themeData?: typeof DEFAULT_THEME_DATA; + theme?: SupportTheme +} + +export const ThemeProvider: React.FC = ({ + children, + themeData = DEFAULT_THEME_DATA, + theme = SupportTheme.LIGHT +}) => { + return ( + + {children} + + ); +}; + +export { DEFAULT_THEME_DATA }; diff --git a/packages/shared/lib/publish-entry.ts b/packages/shared/lib/publish-entry.ts new file mode 100644 index 000000000..9e14f91e7 --- /dev/null +++ b/packages/shared/lib/publish-entry.ts @@ -0,0 +1,65 @@ +export * from './styleWrapper/element'; +export * from './styleWrapper/nav'; + +export * from './utils'; + +export type * from './types/theme.type'; + +export type * from './theme/theme.type'; + +export { default as darkTheme } from './theme/dark/index'; +export { default as lightTheme } from './theme/light/index'; + +export * from './enum'; + +export * from './data/EmitterKey'; +export * from './data/common'; +export * from './data/routePaths'; +export * from './locale'; + +export * from './components/ActiontechTable'; +export * from './components/BasicButton'; +export * from './components/BasicDatePicker'; +export * from './components/BasicDrawer'; +export * from './components/BasicEmpty'; +export * from './components/BasicInfoList'; +export * from './components/BasicInput'; +export * from './components/BasicInputNumber'; +export * from './components/BasicModal'; +export * from './components/BasicRangePicker'; +export * from './components/BasicResult'; +export * from './components/BasicSegmented'; +export * from './components/BasicSelect'; +export * from './components/BasicSwitch'; +export * from './components/BasicTable'; +export * from './components/BasicTag'; +export * from './components/BasicToolTip'; +export * from './components/BasicTreeSelect'; +export * from './components/BasicTypographyEllipsis'; +export * from './components/ConfigItem'; +export * from './components/CopyIcon'; +export * from './components/CronInput'; +export * from './components/CustomAvatar'; +export * from './components/CustomDraggerUpload'; +export * from './components/CustomForm'; +export * from './components/CustomInput'; +export * from './components/CustomSegmentedFilter'; +export * from './components/CustomSelect'; +export * from './components/DatabaseTypeLogo'; +export * from './components/EditableSelect'; +export * from './components/EditText'; +export * from './components/EmptyBox'; +export * from './components/HeaderProgress'; +export * from './components/LazyLoadComponent'; +export * from './components/ModeSwitcher'; +export * from './components/PageHeader'; +export * from './components/ReminderInformation'; +export * from './components/SegmentedTabs'; +export * from './components/SensitiveDisplay'; +export * from './components/SpinIndicator'; +export * from './components/SystemConfigurationHub'; +export * from './components/TestDatabaseConnectButton'; +export * from './components/ToggleTokens'; +export * from './components/VerificationCodeInput'; + +export * from './providers'; diff --git a/packages/shared/package.json b/packages/shared/package.json index f6a7190f8..a8e0c17e3 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -4,12 +4,37 @@ "main": "lib/index.ts", "license": "MIT", "scripts": { + "build": "tsup", "test": "jest --watchAll=true", "test:c": "jest --watchAll=false --coverage", - "test:ci": "jest --ci --watchAll=false --coverage --color --silent --testLocationInResults", - "api:exports:g": "node scripts/generateAPIExports.mjs" + "test:ci": "jest --ci --watchAll=false --coverage --color --silent --testLocationInResults" }, "dependencies": { "@actiontech/icons": "workspace:^" + }, + "peerDependencies": { + "@actiontech/icons": "0.0.1-rc.1", + "@ant-design/cssinjs": "^1.17.0", + "@ant-design/icons": "^4.7.0", + "@emotion/react": "^11.14.0", + "@emotion/styled": "^11.14.0", + "@mui/material": "^5.11.16", + "@mui/styles": "^5.11.16", + "@mui/system": "^5.9.1", + "ahooks": "^3.7.0", + "antd": ">=5.7.3", + "axios": "^1", + "classnames": "^2.3.0", + "dayjs": "^1", + "i18next": "^23.0.0", + "rc-input-number": "~8.0.2", + "rc-tree-select": "~5.9.0", + "react": ">=17", + "react-dom": ">=17", + "react-i18next": "^15.0.0", + "typescript": ">=5.0.2" + }, + "devDependencies": { + "tsup": "^8.5.0" } } \ No newline at end of file diff --git a/packages/kit/package.json b/packages/shared/package_publish.json similarity index 58% rename from packages/kit/package.json rename to packages/shared/package_publish.json index b0cba2b55..9d213ac41 100644 --- a/packages/kit/package.json +++ b/packages/shared/package_publish.json @@ -1,50 +1,44 @@ { "name": "@actiontech/dms-kit", - "version": "0.0.1-rc.8", + "version": "0.0.1-rc.10", "description": "dms kit", - "main": "./dist/index.js", - "module": "./dist/index.mjs", - "types": "./dist/index.d.ts", + "main": "./lib/index.js", + "module": "./lib/index.mjs", + "types": "./lib/index.d.ts", "exports": { ".": { "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" + "types": "./lib/index.d.ts", + "default": "./lib/index.mjs" }, "require": { - "types": "./dist/index.d.ts", - "default": "./dist/index.js" + "types": "./lib/index.d.ts", + "default": "./lib/index.js" } } }, "files": [ - "dist" + "lib" ], "publishConfig": { "registry": "http://10.186.18.19:4873/", "access": "restricted" }, "scripts": { - "build": "tsup", - "clean": "rimraf src", - "generate": "pnpm clean && node scripts/generate.js", - "prebuild": "pnpm generate", "prepublish": "pnpm build" }, - "devDependencies": { - "rimraf": "^6.0.1", - "tsup": "^8.0.0" - }, "dependencies": { "@actiontech/icons": "workspace:*" }, + "devDependencies": { + "tsup": "^8.5.0" + }, "peerDependencies": { "@actiontech/icons": "0.0.1-rc.1", "@ant-design/cssinjs": "^1.17.0", - "@monaco-editor/react": "^4.6.0", - "@mui/material": "5.11.16", - "@mui/styles": "5.11.16", - "@mui/system": "5.9.1", + "@mui/material": "^5.11.16", + "@mui/styles": "^5.11.16", + "@mui/system": "^5.9.1", "ahooks": "^3.7.0", "antd": ">=5.7.3", "axios": "^1", @@ -58,7 +52,8 @@ "@emotion/react": "^11.14.0", "@emotion/styled": "^11.14.0", "rc-input-number": "~8.0.2", - "rc-tree-select": "~5.9.0" + "rc-tree-select": "~5.9.0", + "@ant-design/icons": "^4.7.0" }, "license": "MIT" } \ No newline at end of file diff --git a/packages/shared/publish-shared.mjs b/packages/shared/publish-shared.mjs new file mode 100644 index 000000000..60396324a --- /dev/null +++ b/packages/shared/publish-shared.mjs @@ -0,0 +1,178 @@ +#!/usr/bin/env node +import fs from 'node:fs'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { spawnSync } from 'node:child_process'; +import os from 'node:os'; + +function parseArgs(argv) { + const args = { version: '' }; + for (let i = 2; i < argv.length; i += 1) { + const key = argv[i]; + const val = argv[i + 1]; + if (key === '--version' || key === '-v') { + args.version = val || ''; + i += 1; + } + } + return args; +} + +function readJson(filePath) { + const raw = fs.readFileSync(filePath, 'utf8'); + return JSON.parse(raw); +} + +function writeJson(filePath, obj) { + const content = JSON.stringify(obj, null, 2) + '\n'; + fs.writeFileSync(filePath, content, 'utf8'); +} + +function ensureFileExists(filePath, desc) { + if (!fs.existsSync(filePath)) { + throw new Error(`${desc} 不存在: ${filePath}`); + } +} + +function runCmd(cmd, args, cwd) { + const res = spawnSync(cmd, args, { + stdio: 'inherit', + cwd, + env: process.env, + shell: process.platform === 'win32' + }); + if (res.status !== 0) { + throw new Error(`${cmd} ${args.join(' ')} 执行失败,退出码 ${res.status}`); + } +} + +function copyDirSync(src, dest, options = {}) { + const { filter = (p) => true, dereference = false } = options; + + const statFn = dereference ? fs.statSync : fs.lstatSync; + + const copyItem = (from, to) => { + if (!filter(from)) return; + const stat = statFn(from); + if (stat.isDirectory()) { + if (!fs.existsSync(to)) fs.mkdirSync(to, { recursive: true }); + const entries = fs.readdirSync(from); + for (const entry of entries) { + copyItem(path.join(from, entry), path.join(to, entry)); + } + } else if (stat.isSymbolicLink()) { + const real = fs.readlinkSync(from); + fs.symlinkSync(real, to); + } else if (stat.isFile()) { + fs.copyFileSync(from, to); + } + }; + + copyItem(src, dest); +} + +function renameRootPublishEntryToIndex(distRoot) { + const renames = [ + ['publish-entry.js', 'index.js'], + ['publish-entry.mjs', 'index.mjs'], + ['publish-entry.d.ts', 'index.d.ts'], + ['publish-entry.d.mts', 'index.d.mts'] + ]; + for (const [fromName, toName] of renames) { + const from = path.join(distRoot, fromName); + const to = path.join(distRoot, toName); + if (!fs.existsSync(from)) continue; + try { + if (fs.existsSync(to)) fs.rmSync(to, { force: true }); + fs.renameSync(from, to); + console.log(`已重命名: ${fromName} -> ${toName}`); + } catch (e) { + try { + fs.copyFileSync(from, to); + fs.unlinkSync(from); + console.log(`已复制并替换: ${fromName} -> ${toName}`); + } catch {} + } + } +} + +function main() { + const { version } = parseArgs(process.argv); + if (!version) { + console.error('请通过 --version 或 -v 指定版本号,例如:'); + console.error( + ' node packages/shared/publish-shared.mjs --version 0.0.1-rc.9' + ); + process.exit(1); + } + + const __filename = fileURLToPath(import.meta.url); + const __dirname = path.dirname(__filename); + const sharedDir = __dirname; + + const pubPkg = path.join(sharedDir, 'package_publish.json'); + ensureFileExists(pubPkg, '发布用 package_publish.json'); + + const distDir = path.join(sharedDir, 'dist'); + + const tmpBase = os.tmpdir(); + const tmpDir = fs.mkdtempSync( + path.join(tmpBase, 'actiontech-shared-publish-') + ); + + try { + console.log('[1/8] 在工作区内执行构建: pnpm build'); + runCmd('pnpm', ['build'], sharedDir); + ensureFileExists(distDir, '构建产物 dist 目录'); + + console.log(`[2/8] 将 dist 复制到临时目录: ${tmpDir}`); + const tmpDist = path.join(tmpDir, 'lib'); + copyDirSync(distDir, tmpDist); + + console.log('[3/7] 根入口对齐:publish-entry.* -> index.*'); + renameRootPublishEntryToIndex(tmpDist); + + const tmpDevPkg = path.join(tmpDir, 'package.json'); + console.log('[4/7] 生成发布 package.json'); + fs.copyFileSync(pubPkg, tmpDevPkg); + + console.log(`[5/7] 更新版本号: ${version}`); + const nextPkgJson = readJson(tmpDevPkg); + nextPkgJson.version = version; + // 避免在临时目录触发 prepublish/build 等生命周期脚本 + if (nextPkgJson.scripts) { + delete nextPkgJson.scripts.prepublish; + delete nextPkgJson.scripts.prepare; + delete nextPkgJson.scripts.build; + } + writeJson(tmpDevPkg, nextPkgJson); + + // 可选: 附带 README/LICENCE + const maybeFiles = ['README.md', 'LICENSE', 'LICENSE.md']; + for (const f of maybeFiles) { + const src = path.join(sharedDir, f); + if (fs.existsSync(src)) { + fs.copyFileSync(src, path.join(tmpDir, f)); + } + } + + console.log('[6/7] 执行发布: npm publish'); + runCmd('npm', ['publish'], tmpDir); + + console.log('[7/7] 清理临时目录'); + fs.rmSync(tmpDir, { recursive: true, force: true }); + + console.log('发布完成'); + } catch (err) { + console.error('发布流程发生错误:', err?.message || err); + process.exitCode = 1; + try { + if (fs.existsSync(tmpDir)) { + console.log('清理临时目录'); + fs.rmSync(tmpDir, { recursive: true, force: true }); + } + } catch {} + } +} + +main(); diff --git a/packages/shared/tsconfig.build.json b/packages/shared/tsconfig.build.json new file mode 100644 index 000000000..487ad1f95 --- /dev/null +++ b/packages/shared/tsconfig.build.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "./dist", + "declarationDir": "./dist" + }, + "include": ["lib/publish-entry.ts"], + "exclude": ["node_modules", "dist"] +} diff --git a/packages/shared/tsup.config.ts b/packages/shared/tsup.config.ts new file mode 100644 index 000000000..4e6a1f6d2 --- /dev/null +++ b/packages/shared/tsup.config.ts @@ -0,0 +1,109 @@ +import { defineConfig } from 'tsup'; +import fs from 'node:fs'; +import path from 'node:path'; + +function generateEntriesFromPublishEntry(): string[] { + const projectRoot = process.cwd(); + const publishEntryPath = path.resolve(projectRoot, 'lib', 'publish-entry.ts'); + let content = ''; + try { + content = fs.readFileSync(publishEntryPath, 'utf8'); + } catch { + return ['./lib/publish-entry.ts']; + } + + const exportPathRegex = + /export\s+(?:type\s+)?(?:\*|\{[^}]*\})\s+from\s+['"](.+?)['"];?/g; + const includes = new Set(); + + // 始终保留根入口 + includes.add('./lib/publish-entry.ts'); + + let match: RegExpExecArray | null; + while ((match = exportPathRegex.exec(content)) !== null) { + const rel = match[1]; + if (!rel || !rel.startsWith('./')) continue; + const normalized = rel.replace(/^\.\//, ''); + const [head, second] = normalized.split('/'); + + switch (head) { + case 'components': { + if (second) { + includes.add(`./lib/components/${second}/**`); + } else { + includes.add('./lib/components/**'); + } + break; + } + case 'styleWrapper': + case 'utils': + case 'enum': + case 'data': + case 'providers': + case 'hooks': + case 'features': + case 'locale': + case 'theme': { + includes.add(`./lib/${head}/**`); + break; + } + case 'types': { + includes.add(`./lib/${normalized}.ts`); + includes.add(`./lib/${normalized}.tsx`); + break; + } + default: { + const abs = path.resolve(projectRoot, 'lib', normalized); + try { + if (fs.existsSync(abs) && fs.statSync(abs).isDirectory()) { + includes.add(`./lib/${normalized}/**`); + } else { + includes.add(`./lib/${normalized}.ts`); + includes.add(`./lib/${normalized}.tsx`); + } + } catch { + // ignore + } + } + } + } + + const excludes = [ + '!./lib/**/__tests__/**', + '!./lib/**/__mocks__/**', + '!./lib/**/__snapshots__/**', + '!./lib/**/demo/**', + '!./lib/**/demos/**', + '!./lib/**/*.test.ts', + '!./lib/**/*.test.tsx', + '!./lib/**/*.spec.ts', + '!./lib/**/*.spec.tsx', + '!./lib/**/*.stories.ts', + '!./lib/**/*.stories.tsx', + '!./lib/**/*.md', + '!./lib/**/*.types.ts', + '!./lib/**/*.type.ts', + '!./lib/**/test/**' + ]; + + return [...includes, ...excludes]; +} + +export default defineConfig({ + // 根据 publish-entry.ts 的导出生成多入口,仅构建被导出的模块 + entry: generateEntriesFromPublishEntry(), + tsconfig: 'tsconfig.build.json', + bundle: false, + format: ['cjs', 'esm'], + dts: { + entry: ['./lib/publish-entry.ts'] + }, + clean: true, + sourcemap: false, + minify: false, + treeshake: true, + target: 'es2020', + outDir: 'dist', + splitting: false, + platform: 'browser' +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6a72e0f4e..0b6320fc0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -331,32 +331,32 @@ importers: specifier: ^4.1.0 version: 4.5.2(@babel/core@7.26.10)(@types/node@22.13.14)(styled-components@6.1.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(type-fest@1.4.0)(webpack@5.98.0) - packages/kit: + packages/shared: dependencies: '@actiontech/icons': - specifier: workspace:* + specifier: workspace:^ version: link:../icons '@ant-design/cssinjs': specifier: 1.17.0 version: 1.17.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@ant-design/icons': + specifier: ^4.7.0 + version: 4.8.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@emotion/react': specifier: ^11.14.0 version: 11.14.0(@types/react@18.3.20)(react@18.3.1) '@emotion/styled': specifier: ^11.14.0 version: 11.14.0(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1) - '@monaco-editor/react': - specifier: ^4.6.0 - version: 4.7.0(monaco-editor@0.34.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': - specifier: 5.11.16 + specifier: ^5.11.16 version: 5.11.16(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/styles': - specifier: 5.11.16 + specifier: ^5.11.16 version: 5.11.16(@types/react@18.3.20)(react@18.3.1) '@mui/system': - specifier: 5.9.1 - version: 5.9.1(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1) + specifier: ^5.9.1 + version: 5.17.1(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1) ahooks: specifier: ^3.7.0 version: 3.8.4(react@18.3.1) @@ -394,19 +394,10 @@ importers: specifier: '>=5.0.2' version: 5.8.2 devDependencies: - rimraf: - specifier: ^6.0.1 - version: 6.0.1 tsup: - specifier: ^8.0.0 + specifier: ^8.5.0 version: 8.5.0(@microsoft/api-extractor@7.39.1(@types/node@22.13.14))(@swc/core@1.9.2(@swc/helpers@0.5.1))(postcss@8.5.3)(typescript@5.8.2) - packages/shared: - dependencies: - '@actiontech/icons': - specifier: workspace:^ - version: link:../icons - packages/sqle: dependencies: '@actiontech/icons': @@ -1582,8 +1573,8 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.25.8': - resolution: {integrity: sha512-urAvrUedIqEiFR3FYSLTWQgLu5tb+m0qZw0NBEasUeo6wuqatkMDaRT+1uABiGXEu5vqgPd7FGE1BhsAIy9QVA==} + '@esbuild/aix-ppc64@0.25.9': + resolution: {integrity: sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] @@ -1612,8 +1603,8 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.25.8': - resolution: {integrity: sha512-OD3p7LYzWpLhZEyATcTSJ67qB5D+20vbtr6vHlHWSQYhKtzUYrETuWThmzFpZtFsBIxRvhO07+UgVA9m0i/O1w==} + '@esbuild/android-arm64@0.25.9': + resolution: {integrity: sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==} engines: {node: '>=18'} cpu: [arm64] os: [android] @@ -1642,8 +1633,8 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-arm@0.25.8': - resolution: {integrity: sha512-RONsAvGCz5oWyePVnLdZY/HHwA++nxYWIX1atInlaW6SEkwq6XkP3+cb825EUcRs5Vss/lGh/2YxAb5xqc07Uw==} + '@esbuild/android-arm@0.25.9': + resolution: {integrity: sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==} engines: {node: '>=18'} cpu: [arm] os: [android] @@ -1672,8 +1663,8 @@ packages: cpu: [x64] os: [android] - '@esbuild/android-x64@0.25.8': - resolution: {integrity: sha512-yJAVPklM5+4+9dTeKwHOaA+LQkmrKFX96BM0A/2zQrbS6ENCmxc4OVoBs5dPkCCak2roAD+jKCdnmOqKszPkjA==} + '@esbuild/android-x64@0.25.9': + resolution: {integrity: sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==} engines: {node: '>=18'} cpu: [x64] os: [android] @@ -1702,8 +1693,8 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.25.8': - resolution: {integrity: sha512-Jw0mxgIaYX6R8ODrdkLLPwBqHTtYHJSmzzd+QeytSugzQ0Vg4c5rDky5VgkoowbZQahCbsv1rT1KW72MPIkevw==} + '@esbuild/darwin-arm64@0.25.9': + resolution: {integrity: sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] @@ -1732,8 +1723,8 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.25.8': - resolution: {integrity: sha512-Vh2gLxxHnuoQ+GjPNvDSDRpoBCUzY4Pu0kBqMBDlK4fuWbKgGtmDIeEC081xi26PPjn+1tct+Bh8FjyLlw1Zlg==} + '@esbuild/darwin-x64@0.25.9': + resolution: {integrity: sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==} engines: {node: '>=18'} cpu: [x64] os: [darwin] @@ -1762,8 +1753,8 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.25.8': - resolution: {integrity: sha512-YPJ7hDQ9DnNe5vxOm6jaie9QsTwcKedPvizTVlqWG9GBSq+BuyWEDazlGaDTC5NGU4QJd666V0yqCBL2oWKPfA==} + '@esbuild/freebsd-arm64@0.25.9': + resolution: {integrity: sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] @@ -1792,8 +1783,8 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.8': - resolution: {integrity: sha512-MmaEXxQRdXNFsRN/KcIimLnSJrk2r5H8v+WVafRWz5xdSVmWLoITZQXcgehI2ZE6gioE6HirAEToM/RvFBeuhw==} + '@esbuild/freebsd-x64@0.25.9': + resolution: {integrity: sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] @@ -1822,8 +1813,8 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.25.8': - resolution: {integrity: sha512-WIgg00ARWv/uYLU7lsuDK00d/hHSfES5BzdWAdAig1ioV5kaFNrtK8EqGcUBJhYqotlUByUKz5Qo6u8tt7iD/w==} + '@esbuild/linux-arm64@0.25.9': + resolution: {integrity: sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==} engines: {node: '>=18'} cpu: [arm64] os: [linux] @@ -1852,8 +1843,8 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.25.8': - resolution: {integrity: sha512-FuzEP9BixzZohl1kLf76KEVOsxtIBFwCaLupVuk4eFVnOZfU+Wsn+x5Ryam7nILV2pkq2TqQM9EZPsOBuMC+kg==} + '@esbuild/linux-arm@0.25.9': + resolution: {integrity: sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==} engines: {node: '>=18'} cpu: [arm] os: [linux] @@ -1882,8 +1873,8 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.25.8': - resolution: {integrity: sha512-A1D9YzRX1i+1AJZuFFUMP1E9fMaYY+GnSQil9Tlw05utlE86EKTUA7RjwHDkEitmLYiFsRd9HwKBPEftNdBfjg==} + '@esbuild/linux-ia32@0.25.9': + resolution: {integrity: sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==} engines: {node: '>=18'} cpu: [ia32] os: [linux] @@ -1912,8 +1903,8 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.25.8': - resolution: {integrity: sha512-O7k1J/dwHkY1RMVvglFHl1HzutGEFFZ3kNiDMSOyUrB7WcoHGf96Sh+64nTRT26l3GMbCW01Ekh/ThKM5iI7hQ==} + '@esbuild/linux-loong64@0.25.9': + resolution: {integrity: sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==} engines: {node: '>=18'} cpu: [loong64] os: [linux] @@ -1942,8 +1933,8 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.25.8': - resolution: {integrity: sha512-uv+dqfRazte3BzfMp8PAQXmdGHQt2oC/y2ovwpTteqrMx2lwaksiFZ/bdkXJC19ttTvNXBuWH53zy/aTj1FgGw==} + '@esbuild/linux-mips64el@0.25.9': + resolution: {integrity: sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] @@ -1972,8 +1963,8 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.25.8': - resolution: {integrity: sha512-GyG0KcMi1GBavP5JgAkkstMGyMholMDybAf8wF5A70CALlDM2p/f7YFE7H92eDeH/VBtFJA5MT4nRPDGg4JuzQ==} + '@esbuild/linux-ppc64@0.25.9': + resolution: {integrity: sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] @@ -2002,8 +1993,8 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.25.8': - resolution: {integrity: sha512-rAqDYFv3yzMrq7GIcen3XP7TUEG/4LK86LUPMIz6RT8A6pRIDn0sDcvjudVZBiiTcZCY9y2SgYX2lgK3AF+1eg==} + '@esbuild/linux-riscv64@0.25.9': + resolution: {integrity: sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] @@ -2032,8 +2023,8 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.25.8': - resolution: {integrity: sha512-Xutvh6VjlbcHpsIIbwY8GVRbwoviWT19tFhgdA7DlenLGC/mbc3lBoVb7jxj9Z+eyGqvcnSyIltYUrkKzWqSvg==} + '@esbuild/linux-s390x@0.25.9': + resolution: {integrity: sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==} engines: {node: '>=18'} cpu: [s390x] os: [linux] @@ -2062,14 +2053,14 @@ packages: cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.25.8': - resolution: {integrity: sha512-ASFQhgY4ElXh3nDcOMTkQero4b1lgubskNlhIfJrsH5OKZXDpUAKBlNS0Kx81jwOBp+HCeZqmoJuihTv57/jvQ==} + '@esbuild/linux-x64@0.25.9': + resolution: {integrity: sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.25.8': - resolution: {integrity: sha512-d1KfruIeohqAi6SA+gENMuObDbEjn22olAR7egqnkCD9DGBG0wsEARotkLgXDu6c4ncgWTZJtN5vcgxzWRMzcw==} + '@esbuild/netbsd-arm64@0.25.9': + resolution: {integrity: sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] @@ -2098,14 +2089,14 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.25.8': - resolution: {integrity: sha512-nVDCkrvx2ua+XQNyfrujIG38+YGyuy2Ru9kKVNyh5jAys6n+l44tTtToqHjino2My8VAY6Lw9H7RI73XFi66Cg==} + '@esbuild/netbsd-x64@0.25.9': + resolution: {integrity: sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.25.8': - resolution: {integrity: sha512-j8HgrDuSJFAujkivSMSfPQSAa5Fxbvk4rgNAS5i3K+r8s1X0p1uOO2Hl2xNsGFppOeHOLAVgYwDVlmxhq5h+SQ==} + '@esbuild/openbsd-arm64@0.25.9': + resolution: {integrity: sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] @@ -2134,14 +2125,14 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.8': - resolution: {integrity: sha512-1h8MUAwa0VhNCDp6Af0HToI2TJFAn1uqT9Al6DJVzdIBAd21m/G0Yfc77KDM3uF3T/YaOgQq3qTJHPbTOInaIQ==} + '@esbuild/openbsd-x64@0.25.9': + resolution: {integrity: sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/openharmony-arm64@0.25.8': - resolution: {integrity: sha512-r2nVa5SIK9tSWd0kJd9HCffnDHKchTGikb//9c7HX+r+wHYCpQrSgxhlY6KWV1nFo1l4KFbsMlHk+L6fekLsUg==} + '@esbuild/openharmony-arm64@0.25.9': + resolution: {integrity: sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] @@ -2170,8 +2161,8 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.25.8': - resolution: {integrity: sha512-zUlaP2S12YhQ2UzUfcCuMDHQFJyKABkAjvO5YSndMiIkMimPmxA+BYSBikWgsRpvyxuRnow4nS5NPnf9fpv41w==} + '@esbuild/sunos-x64@0.25.9': + resolution: {integrity: sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==} engines: {node: '>=18'} cpu: [x64] os: [sunos] @@ -2200,8 +2191,8 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.25.8': - resolution: {integrity: sha512-YEGFFWESlPva8hGL+zvj2z/SaK+pH0SwOM0Nc/d+rVnW7GSTFlLBGzZkuSU9kFIGIo8q9X3ucpZhu8PDN5A2sQ==} + '@esbuild/win32-arm64@0.25.9': + resolution: {integrity: sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==} engines: {node: '>=18'} cpu: [arm64] os: [win32] @@ -2230,8 +2221,8 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.25.8': - resolution: {integrity: sha512-hiGgGC6KZ5LZz58OL/+qVVoZiuZlUYlYHNAmczOm7bs2oE1XriPFi5ZHHrS8ACpV5EjySrnoCKmcbQMN+ojnHg==} + '@esbuild/win32-ia32@0.25.9': + resolution: {integrity: sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==} engines: {node: '>=18'} cpu: [ia32] os: [win32] @@ -2260,8 +2251,8 @@ packages: cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.25.8': - resolution: {integrity: sha512-cn3Yr7+OaaZq1c+2pe+8yxC8E144SReCQjN6/2ynubzYjvyqZjTXfQJpAcQpsdJq3My7XADANiYGHoFC69pLQw==} + '@esbuild/win32-x64@0.25.9': + resolution: {integrity: sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -2438,14 +2429,6 @@ packages: resolution: {integrity: sha512-XvJRx+2KR3YXyYtPUUy+qd9i7p+GO9Ko6VIIpWlBrpWwXDv8WLFeHTxz35CfQFUiBMLXlGHhGzys7lqit9gWag==} engines: {node: '>=18'} - '@isaacs/balanced-match@4.0.1': - resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} - engines: {node: 20 || >=22} - - '@isaacs/brace-expansion@5.0.0': - resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==} - engines: {node: 20 || >=22} - '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -2704,22 +2687,6 @@ packages: '@types/react': optional: true - '@mui/system@5.9.1': - resolution: {integrity: sha512-ZixTmc2+sYp++avoYJ38eM70nfwwudN06vYCU4kfwa4nQPiH+bhLYZnfYkcXRKiDR/hfT0dptbOOfQGZqBYczQ==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@emotion/react': ^11.5.0 - '@emotion/styled': ^11.3.0 - '@types/react': ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@emotion/react': - optional: true - '@emotion/styled': - optional: true - '@types/react': - optional: true - '@mui/types@7.2.24': resolution: {integrity: sha512-3c8tRt/CbWZ+pEg7QpSwbdxOk36EfmhbKf6AGZsD1EcLDLTSZoxxJ86FVtcjxvjuhdyBiWKSTGZFaXCnidO2kw==} peerDependencies: @@ -5673,8 +5640,8 @@ packages: engines: {node: '>=12'} hasBin: true - esbuild@0.25.8: - resolution: {integrity: sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q==} + esbuild@0.25.9: + resolution: {integrity: sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==} engines: {node: '>=18'} hasBin: true @@ -6208,11 +6175,6 @@ packages: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true - glob@11.0.3: - resolution: {integrity: sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==} - engines: {node: 20 || >=22} - hasBin: true - glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported @@ -6944,10 +6906,6 @@ packages: jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - jackspeak@4.1.1: - resolution: {integrity: sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==} - engines: {node: 20 || >=22} - jake@10.9.2: resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==} engines: {node: '>=10'} @@ -7452,10 +7410,6 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - lru-cache@11.1.0: - resolution: {integrity: sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==} - engines: {node: 20 || >=22} - lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -7742,10 +7696,6 @@ packages: minimalistic-crypto-utils@1.0.1: resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} - minimatch@10.0.3: - resolution: {integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==} - engines: {node: 20 || >=22} - minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -8164,10 +8114,6 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} - path-scurry@2.0.0: - resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} - engines: {node: 20 || >=22} - path-to-regexp@0.1.12: resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} @@ -9467,11 +9413,6 @@ packages: engines: {node: '>=14'} hasBin: true - rimraf@6.0.1: - resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==} - engines: {node: 20 || >=22} - hasBin: true - ripemd160@2.0.2: resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==} @@ -10955,7 +10896,7 @@ snapshots: '@ant-design/cssinjs@1.17.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 '@emotion/hash': 0.8.0 '@emotion/unitless': 0.7.5 classnames: 2.5.1 @@ -10975,7 +10916,7 @@ snapshots: dependencies: '@ant-design/colors': 6.0.0 '@ant-design/icons-svg': 4.4.2 - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 classnames: 2.5.1 lodash: 4.17.21 rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -10986,7 +10927,7 @@ snapshots: dependencies: '@ant-design/colors': 7.2.0 '@ant-design/icons-svg': 4.4.2 - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 classnames: 2.5.1 rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 @@ -11002,7 +10943,7 @@ snapshots: '@ant-design/react-slick@1.0.2(react@18.3.1)': dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 classnames: 2.5.1 json2mq: 0.2.0 react: 18.3.1 @@ -12342,7 +12283,7 @@ snapshots: '@esbuild/aix-ppc64@0.21.5': optional: true - '@esbuild/aix-ppc64@0.25.8': + '@esbuild/aix-ppc64@0.25.9': optional: true '@esbuild/android-arm64@0.17.19': @@ -12357,7 +12298,7 @@ snapshots: '@esbuild/android-arm64@0.21.5': optional: true - '@esbuild/android-arm64@0.25.8': + '@esbuild/android-arm64@0.25.9': optional: true '@esbuild/android-arm@0.17.19': @@ -12372,7 +12313,7 @@ snapshots: '@esbuild/android-arm@0.21.5': optional: true - '@esbuild/android-arm@0.25.8': + '@esbuild/android-arm@0.25.9': optional: true '@esbuild/android-x64@0.17.19': @@ -12387,7 +12328,7 @@ snapshots: '@esbuild/android-x64@0.21.5': optional: true - '@esbuild/android-x64@0.25.8': + '@esbuild/android-x64@0.25.9': optional: true '@esbuild/darwin-arm64@0.17.19': @@ -12402,7 +12343,7 @@ snapshots: '@esbuild/darwin-arm64@0.21.5': optional: true - '@esbuild/darwin-arm64@0.25.8': + '@esbuild/darwin-arm64@0.25.9': optional: true '@esbuild/darwin-x64@0.17.19': @@ -12417,7 +12358,7 @@ snapshots: '@esbuild/darwin-x64@0.21.5': optional: true - '@esbuild/darwin-x64@0.25.8': + '@esbuild/darwin-x64@0.25.9': optional: true '@esbuild/freebsd-arm64@0.17.19': @@ -12432,7 +12373,7 @@ snapshots: '@esbuild/freebsd-arm64@0.21.5': optional: true - '@esbuild/freebsd-arm64@0.25.8': + '@esbuild/freebsd-arm64@0.25.9': optional: true '@esbuild/freebsd-x64@0.17.19': @@ -12447,7 +12388,7 @@ snapshots: '@esbuild/freebsd-x64@0.21.5': optional: true - '@esbuild/freebsd-x64@0.25.8': + '@esbuild/freebsd-x64@0.25.9': optional: true '@esbuild/linux-arm64@0.17.19': @@ -12462,7 +12403,7 @@ snapshots: '@esbuild/linux-arm64@0.21.5': optional: true - '@esbuild/linux-arm64@0.25.8': + '@esbuild/linux-arm64@0.25.9': optional: true '@esbuild/linux-arm@0.17.19': @@ -12477,7 +12418,7 @@ snapshots: '@esbuild/linux-arm@0.21.5': optional: true - '@esbuild/linux-arm@0.25.8': + '@esbuild/linux-arm@0.25.9': optional: true '@esbuild/linux-ia32@0.17.19': @@ -12492,7 +12433,7 @@ snapshots: '@esbuild/linux-ia32@0.21.5': optional: true - '@esbuild/linux-ia32@0.25.8': + '@esbuild/linux-ia32@0.25.9': optional: true '@esbuild/linux-loong64@0.17.19': @@ -12507,7 +12448,7 @@ snapshots: '@esbuild/linux-loong64@0.21.5': optional: true - '@esbuild/linux-loong64@0.25.8': + '@esbuild/linux-loong64@0.25.9': optional: true '@esbuild/linux-mips64el@0.17.19': @@ -12522,7 +12463,7 @@ snapshots: '@esbuild/linux-mips64el@0.21.5': optional: true - '@esbuild/linux-mips64el@0.25.8': + '@esbuild/linux-mips64el@0.25.9': optional: true '@esbuild/linux-ppc64@0.17.19': @@ -12537,7 +12478,7 @@ snapshots: '@esbuild/linux-ppc64@0.21.5': optional: true - '@esbuild/linux-ppc64@0.25.8': + '@esbuild/linux-ppc64@0.25.9': optional: true '@esbuild/linux-riscv64@0.17.19': @@ -12552,7 +12493,7 @@ snapshots: '@esbuild/linux-riscv64@0.21.5': optional: true - '@esbuild/linux-riscv64@0.25.8': + '@esbuild/linux-riscv64@0.25.9': optional: true '@esbuild/linux-s390x@0.17.19': @@ -12567,7 +12508,7 @@ snapshots: '@esbuild/linux-s390x@0.21.5': optional: true - '@esbuild/linux-s390x@0.25.8': + '@esbuild/linux-s390x@0.25.9': optional: true '@esbuild/linux-x64@0.17.19': @@ -12582,10 +12523,10 @@ snapshots: '@esbuild/linux-x64@0.21.5': optional: true - '@esbuild/linux-x64@0.25.8': + '@esbuild/linux-x64@0.25.9': optional: true - '@esbuild/netbsd-arm64@0.25.8': + '@esbuild/netbsd-arm64@0.25.9': optional: true '@esbuild/netbsd-x64@0.17.19': @@ -12600,10 +12541,10 @@ snapshots: '@esbuild/netbsd-x64@0.21.5': optional: true - '@esbuild/netbsd-x64@0.25.8': + '@esbuild/netbsd-x64@0.25.9': optional: true - '@esbuild/openbsd-arm64@0.25.8': + '@esbuild/openbsd-arm64@0.25.9': optional: true '@esbuild/openbsd-x64@0.17.19': @@ -12618,10 +12559,10 @@ snapshots: '@esbuild/openbsd-x64@0.21.5': optional: true - '@esbuild/openbsd-x64@0.25.8': + '@esbuild/openbsd-x64@0.25.9': optional: true - '@esbuild/openharmony-arm64@0.25.8': + '@esbuild/openharmony-arm64@0.25.9': optional: true '@esbuild/sunos-x64@0.17.19': @@ -12636,7 +12577,7 @@ snapshots: '@esbuild/sunos-x64@0.21.5': optional: true - '@esbuild/sunos-x64@0.25.8': + '@esbuild/sunos-x64@0.25.9': optional: true '@esbuild/win32-arm64@0.17.19': @@ -12651,7 +12592,7 @@ snapshots: '@esbuild/win32-arm64@0.21.5': optional: true - '@esbuild/win32-arm64@0.25.8': + '@esbuild/win32-arm64@0.25.9': optional: true '@esbuild/win32-ia32@0.17.19': @@ -12666,7 +12607,7 @@ snapshots: '@esbuild/win32-ia32@0.21.5': optional: true - '@esbuild/win32-ia32@0.25.8': + '@esbuild/win32-ia32@0.25.9': optional: true '@esbuild/win32-x64@0.17.19': @@ -12681,7 +12622,7 @@ snapshots: '@esbuild/win32-x64@0.21.5': optional: true - '@esbuild/win32-x64@0.25.8': + '@esbuild/win32-x64@0.25.9': optional: true '@eslint-community/eslint-utils@4.5.1(eslint@9.23.0)': @@ -12927,12 +12868,6 @@ snapshots: dependencies: mute-stream: 1.0.0 - '@isaacs/balanced-match@4.0.1': {} - - '@isaacs/brace-expansion@5.0.0': - dependencies: - '@isaacs/balanced-match': 4.0.1 - '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -13353,29 +13288,13 @@ snapshots: '@emotion/styled': 11.14.0(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1) '@types/react': 18.3.20 - '@mui/system@5.9.1(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1)': - dependencies: - '@babel/runtime': 7.28.2 - '@mui/private-theming': 5.17.1(@types/react@18.3.20)(react@18.3.1) - '@mui/styled-engine': 5.16.14(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1))(react@18.3.1) - '@mui/types': 7.2.24(@types/react@18.3.20) - '@mui/utils': 5.17.1(@types/react@18.3.20)(react@18.3.1) - clsx: 1.2.1 - csstype: 3.1.3 - prop-types: 15.8.1 - react: 18.3.1 - optionalDependencies: - '@emotion/react': 11.14.0(@types/react@18.3.20)(react@18.3.1) - '@emotion/styled': 11.14.0(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1) - '@types/react': 18.3.20 - '@mui/types@7.2.24(@types/react@18.3.20)': optionalDependencies: '@types/react': 18.3.20 '@mui/utils@5.17.1(@types/react@18.3.20)(react@18.3.1)': dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 '@mui/types': 7.2.24(@types/react@18.3.20) '@types/prop-types': 15.7.14 clsx: 2.1.1 @@ -13548,7 +13467,7 @@ snapshots: '@rc-component/color-picker@1.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 '@ctrl/tinycolor': 3.6.1 classnames: 2.5.1 rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -13568,7 +13487,7 @@ snapshots: '@rc-component/mutate-observer@1.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 classnames: 2.5.1 rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 @@ -13584,7 +13503,7 @@ snapshots: '@rc-component/tour@1.8.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 '@rc-component/portal': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@rc-component/trigger': 1.18.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) classnames: 2.5.1 @@ -13594,7 +13513,7 @@ snapshots: '@rc-component/trigger@1.18.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 '@rc-component/portal': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) classnames: 2.5.1 rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -15739,9 +15658,9 @@ snapshots: dependencies: run-applescript: 5.0.0 - bundle-require@5.1.0(esbuild@0.25.8): + bundle-require@5.1.0(esbuild@0.25.9): dependencies: - esbuild: 0.25.8 + esbuild: 0.25.9 load-tsconfig: 0.2.5 bytes@3.1.2: {} @@ -17117,34 +17036,34 @@ snapshots: '@esbuild/win32-ia32': 0.21.5 '@esbuild/win32-x64': 0.21.5 - esbuild@0.25.8: + esbuild@0.25.9: optionalDependencies: - '@esbuild/aix-ppc64': 0.25.8 - '@esbuild/android-arm': 0.25.8 - '@esbuild/android-arm64': 0.25.8 - '@esbuild/android-x64': 0.25.8 - '@esbuild/darwin-arm64': 0.25.8 - '@esbuild/darwin-x64': 0.25.8 - '@esbuild/freebsd-arm64': 0.25.8 - '@esbuild/freebsd-x64': 0.25.8 - '@esbuild/linux-arm': 0.25.8 - '@esbuild/linux-arm64': 0.25.8 - '@esbuild/linux-ia32': 0.25.8 - '@esbuild/linux-loong64': 0.25.8 - '@esbuild/linux-mips64el': 0.25.8 - '@esbuild/linux-ppc64': 0.25.8 - '@esbuild/linux-riscv64': 0.25.8 - '@esbuild/linux-s390x': 0.25.8 - '@esbuild/linux-x64': 0.25.8 - '@esbuild/netbsd-arm64': 0.25.8 - '@esbuild/netbsd-x64': 0.25.8 - '@esbuild/openbsd-arm64': 0.25.8 - '@esbuild/openbsd-x64': 0.25.8 - '@esbuild/openharmony-arm64': 0.25.8 - '@esbuild/sunos-x64': 0.25.8 - '@esbuild/win32-arm64': 0.25.8 - '@esbuild/win32-ia32': 0.25.8 - '@esbuild/win32-x64': 0.25.8 + '@esbuild/aix-ppc64': 0.25.9 + '@esbuild/android-arm': 0.25.9 + '@esbuild/android-arm64': 0.25.9 + '@esbuild/android-x64': 0.25.9 + '@esbuild/darwin-arm64': 0.25.9 + '@esbuild/darwin-x64': 0.25.9 + '@esbuild/freebsd-arm64': 0.25.9 + '@esbuild/freebsd-x64': 0.25.9 + '@esbuild/linux-arm': 0.25.9 + '@esbuild/linux-arm64': 0.25.9 + '@esbuild/linux-ia32': 0.25.9 + '@esbuild/linux-loong64': 0.25.9 + '@esbuild/linux-mips64el': 0.25.9 + '@esbuild/linux-ppc64': 0.25.9 + '@esbuild/linux-riscv64': 0.25.9 + '@esbuild/linux-s390x': 0.25.9 + '@esbuild/linux-x64': 0.25.9 + '@esbuild/netbsd-arm64': 0.25.9 + '@esbuild/netbsd-x64': 0.25.9 + '@esbuild/openbsd-arm64': 0.25.9 + '@esbuild/openbsd-x64': 0.25.9 + '@esbuild/openharmony-arm64': 0.25.9 + '@esbuild/sunos-x64': 0.25.9 + '@esbuild/win32-arm64': 0.25.9 + '@esbuild/win32-ia32': 0.25.9 + '@esbuild/win32-x64': 0.25.9 escalade@3.2.0: {} @@ -17847,15 +17766,6 @@ snapshots: package-json-from-dist: 1.0.1 path-scurry: 1.11.1 - glob@11.0.3: - dependencies: - foreground-child: 3.3.1 - jackspeak: 4.1.1 - minimatch: 10.0.3 - minipass: 7.1.2 - package-json-from-dist: 1.0.1 - path-scurry: 2.0.0 - glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -18346,7 +18256,7 @@ snapshots: i18next@23.16.8: dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 iconv-lite@0.4.24: dependencies: @@ -18749,10 +18659,6 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 - jackspeak@4.1.1: - dependencies: - '@isaacs/cliui': 8.0.2 - jake@10.9.2: dependencies: async: 3.2.6 @@ -19516,8 +19422,6 @@ snapshots: lru-cache@10.4.3: {} - lru-cache@11.1.0: {} - lru-cache@5.1.1: dependencies: yallist: 3.1.1 @@ -20003,10 +19907,6 @@ snapshots: minimalistic-crypto-utils@1.0.1: {} - minimatch@10.0.3: - dependencies: - '@isaacs/brace-expansion': 5.0.0 - minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 @@ -20520,11 +20420,6 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 - path-scurry@2.0.0: - dependencies: - lru-cache: 11.1.0 - minipass: 7.1.2 - path-to-regexp@0.1.12: {} path-to-regexp@1.7.0: @@ -21064,7 +20959,7 @@ snapshots: rc-cascader@3.12.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 array-tree-filter: 2.1.0 classnames: 2.5.1 rc-select: 14.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -21075,7 +20970,7 @@ snapshots: rc-checkbox@3.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 classnames: 2.5.1 rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 @@ -21083,7 +20978,7 @@ snapshots: rc-collapse@3.7.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 classnames: 2.5.1 rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -21092,7 +20987,7 @@ snapshots: rc-dialog@9.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 '@rc-component/portal': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) classnames: 2.5.1 rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -21102,7 +20997,7 @@ snapshots: rc-drawer@6.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 '@rc-component/portal': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) classnames: 2.5.1 rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -21112,7 +21007,7 @@ snapshots: rc-dropdown@4.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 '@rc-component/trigger': 1.18.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) classnames: 2.5.1 rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -21121,7 +21016,7 @@ snapshots: rc-field-form@1.34.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 async-validator: 4.2.5 rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 @@ -21129,7 +21024,7 @@ snapshots: rc-image@7.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 '@rc-component/portal': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) classnames: 2.5.1 rc-dialog: 9.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -21150,7 +21045,7 @@ snapshots: rc-input@1.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 classnames: 2.5.1 rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 @@ -21158,7 +21053,7 @@ snapshots: rc-mentions@2.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 '@rc-component/trigger': 1.18.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) classnames: 2.5.1 rc-input: 1.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -21170,7 +21065,7 @@ snapshots: rc-menu@9.10.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 '@rc-component/trigger': 1.18.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) classnames: 2.5.1 rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -21200,7 +21095,7 @@ snapshots: rc-notification@5.0.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 classnames: 2.5.1 rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -21218,7 +21113,7 @@ snapshots: rc-pagination@3.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 classnames: 2.5.1 rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 @@ -21226,7 +21121,7 @@ snapshots: rc-picker@3.10.0(dayjs@1.11.13)(luxon@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 '@rc-component/trigger': 1.18.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) classnames: 2.5.1 rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -21238,7 +21133,7 @@ snapshots: rc-progress@3.4.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 classnames: 2.5.1 rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 @@ -21246,7 +21141,7 @@ snapshots: rc-rate@2.12.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 classnames: 2.5.1 rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 @@ -21254,7 +21149,7 @@ snapshots: rc-resize-observer@1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 classnames: 2.5.1 rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 @@ -21263,7 +21158,7 @@ snapshots: rc-segmented@2.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 classnames: 2.5.1 rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -21272,7 +21167,7 @@ snapshots: rc-select@14.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 '@rc-component/trigger': 1.18.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) classnames: 2.5.1 rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -21284,7 +21179,7 @@ snapshots: rc-slider@10.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 classnames: 2.5.1 rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 @@ -21292,7 +21187,7 @@ snapshots: rc-steps@6.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 classnames: 2.5.1 rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 @@ -21300,7 +21195,7 @@ snapshots: rc-switch@4.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 classnames: 2.5.1 rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 @@ -21308,7 +21203,7 @@ snapshots: rc-table@7.32.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 '@rc-component/context': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) classnames: 2.5.1 rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -21330,7 +21225,7 @@ snapshots: rc-tabs@12.9.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 classnames: 2.5.1 rc-dropdown: 4.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) rc-menu: 9.10.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -21342,7 +21237,7 @@ snapshots: rc-textarea@1.3.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 classnames: 2.5.1 rc-input: 1.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -21352,7 +21247,7 @@ snapshots: rc-tooltip@6.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 '@rc-component/trigger': 1.18.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) classnames: 2.5.1 react: 18.3.1 @@ -21389,7 +21284,7 @@ snapshots: rc-tree@5.7.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 classnames: 2.5.1 rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -21399,7 +21294,7 @@ snapshots: rc-upload@4.3.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 classnames: 2.5.1 rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 @@ -21725,7 +21620,7 @@ snapshots: redux@4.2.1: dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 reflect.getprototypeof@1.0.10: dependencies: @@ -21993,11 +21888,6 @@ snapshots: dependencies: glob: 10.4.5 - rimraf@6.0.1: - dependencies: - glob: 11.0.3 - package-json-from-dist: 1.0.1 - ripemd160@2.0.2: dependencies: hash-base: 3.0.5 @@ -23050,12 +22940,12 @@ snapshots: tsup@8.5.0(@microsoft/api-extractor@7.39.1(@types/node@22.13.14))(@swc/core@1.9.2(@swc/helpers@0.5.1))(postcss@8.5.3)(typescript@5.8.2): dependencies: - bundle-require: 5.1.0(esbuild@0.25.8) + bundle-require: 5.1.0(esbuild@0.25.9) cac: 6.7.14 chokidar: 4.0.3 consola: 3.4.2 debug: 4.4.0 - esbuild: 0.25.8 + esbuild: 0.25.9 fix-dts-default-cjs-exports: 1.0.1 joycon: 3.1.1 picocolors: 1.1.1 From a08b7c8613731ae8458cffee3bc3d2c7e68a2594 Mon Sep 17 00:00:00 2001 From: LZS911 <932177767@qq.com> Date: Fri, 15 Aug 2025 16:11:30 +0800 Subject: [PATCH 09/43] =?UTF-8?q?feat(shared=E3=80=81icons):=20refactor=20?= =?UTF-8?q?publish=20pipeline=20to=20build=20in=20temp=20dir=20with=20pre-?= =?UTF-8?q?publish=20confirmation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/icons/.fatherrc.ts | 8 +- packages/icons/package.json | 1 + packages/icons/package_publish.json | 13 +- packages/icons/publish-icons.mjs | 265 ++++++++++++++++++ packages/shared/.npmrc | 2 + packages/shared/PUBLISH.md | 91 ++++-- packages/shared/lib/providers/theme.tsx | 2 +- packages/shared/lib/publish-entry.ts | 2 + packages/shared/package.json | 22 -- packages/shared/package_publish.json | 26 +- packages/shared/publish-shared.mjs | 210 +++++++++++--- packages/shared/tsconfig.build.json | 2 +- .../shared/{tsup.config.ts => tsup.config.js} | 11 +- pnpm-lock.yaml | 159 ++++++----- 14 files changed, 641 insertions(+), 173 deletions(-) create mode 100755 packages/icons/publish-icons.mjs create mode 100644 packages/shared/.npmrc rename packages/shared/{tsup.config.ts => tsup.config.js} (91%) diff --git a/packages/icons/.fatherrc.ts b/packages/icons/.fatherrc.ts index 1ed741aab..2f79af84a 100644 --- a/packages/icons/.fatherrc.ts +++ b/packages/icons/.fatherrc.ts @@ -6,6 +6,10 @@ export default defineConfig({ output: 'es' }, cjs: { - output: 'dist' - }, + output: 'dist', + transformer: 'babel', + extraBabelPresets: [ + ['@babel/preset-react', { runtime: 'automatic', importSource: 'react' }] + ] + } }); diff --git a/packages/icons/package.json b/packages/icons/package.json index c431c0f5c..48cf230af 100644 --- a/packages/icons/package.json +++ b/packages/icons/package.json @@ -16,6 +16,7 @@ "author": "", "license": "ISC", "devDependencies": { + "@babel/preset-react": "^7.24.7", "@svgr/cli": "^8.1.0", "dumi": "^2.3.8", "father": "^4.1.0" diff --git a/packages/icons/package_publish.json b/packages/icons/package_publish.json index 77adcde2d..112a4072d 100644 --- a/packages/icons/package_publish.json +++ b/packages/icons/package_publish.json @@ -1,11 +1,10 @@ { "name": "@actiontech/icons", - "version": "0.0.1-rc.1", + "version": "0.0.1-rc.7", "description": "", "main": "./dist/index.js", "module": "./es/index.js", "types": "./es/index.d.ts", - "type": "module", "exports": { ".": { "import": { @@ -39,8 +38,12 @@ "author": "", "license": "ISC", "devDependencies": { - "@svgr/cli": "^8.1.0", - "dumi": "^2.3.8", - "father": "^4.1.0" + "@svgr/cli": "8.1.0", + "@babel/preset-react": "^7.24.7", + "dumi": "2.3.8", + "father": "4.1.0" + }, + "peerDependencies": { + "react": ">=17" } } \ No newline at end of file diff --git a/packages/icons/publish-icons.mjs b/packages/icons/publish-icons.mjs new file mode 100755 index 000000000..793ae5089 --- /dev/null +++ b/packages/icons/publish-icons.mjs @@ -0,0 +1,265 @@ +#!/usr/bin/env node +import fs from 'node:fs'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { spawnSync } from 'node:child_process'; +import readline from 'node:readline'; + +function parseArgs(argv) { + const args = { version: '', skipConfirm: false }; + for (let i = 2; i < argv.length; i += 1) { + const key = argv[i]; + const val = argv[i + 1]; + if (key === '--version' || key === '-v') { + args.version = val || ''; + i += 1; + } else if (key === '--skip-confirm' || key === '-y') { + args.skipConfirm = true; + } + } + return args; +} + +function readJson(filePath) { + const raw = fs.readFileSync(filePath, 'utf8'); + return JSON.parse(raw); +} + +function writeJson(filePath, obj) { + const content = JSON.stringify(obj, null, 2) + '\n'; + fs.writeFileSync(filePath, content, 'utf8'); +} + +function ensureFileExists(filePath, desc) { + if (!fs.existsSync(filePath)) { + throw new Error(`${desc} 不存在: ${filePath}`); + } +} + +function runCmd(cmd, args, cwd) { + const res = spawnSync(cmd, args, { + stdio: 'inherit', + cwd, + env: process.env, + shell: process.platform === 'win32' + }); + if (res.status !== 0) { + throw new Error(`${cmd} ${args.join(' ')} 执行失败,退出码 ${res.status}`); + } +} + +function copyDirSync(src, dest, options = {}) { + const { filter = (p) => true, dereference = false } = options; + + const statFn = dereference ? fs.statSync : fs.lstatSync; + + const copyItem = (from, to) => { + if (!filter(from)) return; + const stat = statFn(from); + if (stat.isDirectory()) { + if (!fs.existsSync(to)) fs.mkdirSync(to, { recursive: true }); + const entries = fs.readdirSync(from); + for (const entry of entries) { + copyItem(path.join(from, entry), path.join(to, entry)); + } + } else if (stat.isSymbolicLink()) { + const real = fs.readlinkSync(from); + fs.symlinkSync(real, to); + } else if (stat.isFile()) { + fs.copyFileSync(from, to); + } + }; + + copyItem(src, dest); +} + +function showPackageStructure(tmpDir) { + console.log('\n📦 发包产物结构预览:'); + console.log('='.repeat(50)); + + function listDir(dir, prefix = '', maxDepth = 3, currentDepth = 0) { + if (currentDepth >= maxDepth) return; + + try { + const entries = fs.readdirSync(dir, { withFileTypes: true }); + const sortedEntries = entries.sort((a, b) => { + // 目录在前,文件在后 + if (a.isDirectory() && !b.isDirectory()) return -1; + if (!a.isDirectory() && b.isDirectory()) return 1; + return a.name.localeCompare(b.name); + }); + + for (const entry of sortedEntries) { + const fullPath = path.join(dir, entry.name); + const relativePath = path.relative(tmpDir, fullPath); + const icon = entry.isDirectory() ? '📁' : '📄'; + console.log(`${prefix}${icon} ${relativePath}`); + + if (entry.isDirectory() && currentDepth < maxDepth - 1) { + listDir(fullPath, prefix + ' ', maxDepth, currentDepth + 1); + } + } + } catch (err) { + console.log(`${prefix}❌ 无法读取目录: ${err.message}`); + } + } + + listDir(tmpDir); + console.log('='.repeat(50)); +} + +async function confirmPublish() { + const rl = readline.createInterface({ + input: process.stdin, + output: process.stdout + }); + + return new Promise((resolve) => { + rl.question('\n❓ 确认要发布这个包吗?(y/N): ', (answer) => { + rl.close(); + const confirmed = + answer.toLowerCase() === 'y' || answer.toLowerCase() === 'yes'; + resolve(confirmed); + }); + }); +} + +function updatePackagePublishVersion(iconsDir, version) { + const pubPkgPath = path.join(iconsDir, 'package_publish.json'); + try { + const pubPkgContent = readJson(pubPkgPath); + pubPkgContent.version = version; + writeJson(pubPkgPath, pubPkgContent); + console.log(`✅ 已更新 package_publish.json 版本号为: ${version}`); + } catch (err) { + console.warn(`⚠️ 更新 package_publish.json 版本号失败: ${err.message}`); + } +} + +async function main() { + const { version, skipConfirm } = parseArgs(process.argv); + if (!version) { + console.error('请通过 --version 或 -v 指定版本号,例如:'); + console.error( + ' node packages/icons/publish-icons.mjs --version 0.0.1-rc.3' + ); + process.exit(1); + } + + const __filename = fileURLToPath(import.meta.url); + const __dirname = path.dirname(__filename); + const iconsDir = __dirname; + + const pubPkg = path.join(iconsDir, 'package_publish.json'); + ensureFileExists(pubPkg, '发布用 package_publish.json'); + + // 保存原始版本号,用于后续还原 + const originalPubPkgContent = readJson(pubPkg); + const originalVersion = originalPubPkgContent.version; + + const tmpBase = path.join(__dirname, '..'); + const tmpDir = fs.mkdtempSync( + path.join(tmpBase, 'actiontech-icons-publish-') + ); + + try { + console.log(`[1/7] 创建临时目录: ${tmpDir}`); + + console.log('[2/7] 复制整个 icons 包到临时目录'); + // 复制整个包目录,但排除一些不需要的文件 + const excludeTopLevel = new Set([ + 'node_modules', + 'dist', + 'es', + '.git', + '.github', + 'coverage', + '.nyc_output' + ]); + + const filter = (filePath) => { + const relativePath = path.relative(iconsDir, filePath); + if (!relativePath) return true; // 根目录 + const segments = relativePath.split(path.sep); + const top = segments[0]; + if (excludeTopLevel.has(top)) return false; + const base = path.basename(filePath); + if (base === '.DS_Store') return false; + if (base.endsWith('.log')) return false; + return true; + }; + + copyDirSync(iconsDir, tmpDir, { filter }); + + console.log('[3/7] 调整 package.json 配置'); + // 将 package_publish.json 重命名为 package.json + const tmpPkgJson = path.join(tmpDir, 'package.json'); + const pubPkgContent = readJson(pubPkg); + + // 更新版本号 + pubPkgContent.version = version; + + // 移除 prepublishOnly 脚本,避免在临时目录触发构建 + if (pubPkgContent.scripts) { + delete pubPkgContent.scripts.prepublishOnly; + delete pubPkgContent.scripts.prepare; + } + + writeJson(tmpPkgJson, pubPkgContent); + + console.log('[4/7] 安装依赖: pnpm install'); + runCmd('pnpm', ['install'], tmpDir); + + console.log('[5/7] 执行构建: pnpm build'); + runCmd('pnpm', ['build'], tmpDir); + + // 显示产物结构预览 + showPackageStructure(tmpDir); + + // 用户确认发包 + if (!skipConfirm) { + const confirmed = await confirmPublish(); + if (!confirmed) { + console.log('❌ 用户取消发布'); + console.log('[7/7] 清理临时目录'); + fs.rmSync(tmpDir, { recursive: true, force: true }); + return; + } + } + + console.log('[6/7] 执行发布: npm publish'); + runCmd('npm', ['publish'], tmpDir); + + console.log('[7/7] 更新 package_publish.json 版本号'); + updatePackagePublishVersion(iconsDir, version); + + console.log('✅ 发布完成'); + } catch (err) { + console.error('❌ 发布流程发生错误:', err?.message || err); + process.exitCode = 1; + + // 还原原始版本号 + try { + const pubPkgPath = path.join(iconsDir, 'package_publish.json'); + originalPubPkgContent.version = originalVersion; + writeJson(pubPkgPath, originalPubPkgContent); + console.log( + `🔄 已还原 package_publish.json 版本号为: ${originalVersion}` + ); + } catch (restoreErr) { + console.warn(`⚠️ 还原版本号失败: ${restoreErr.message}`); + } + } finally { + console.log('[8/7] 清理临时目录'); + try { + if (fs.existsSync(tmpDir)) { + fs.rmSync(tmpDir, { recursive: true, force: true }); + console.log('✅ 已清理临时目录'); + } + } catch (cleanupErr) { + console.warn(`⚠️ 清理临时目录失败: ${cleanupErr.message}`); + } + } +} + +main(); diff --git a/packages/shared/.npmrc b/packages/shared/.npmrc new file mode 100644 index 000000000..0757ca96e --- /dev/null +++ b/packages/shared/.npmrc @@ -0,0 +1,2 @@ +registry=https://registry.npmmirror.com +@actiontech:registry=http://10.186.18.19:4873/ diff --git a/packages/shared/PUBLISH.md b/packages/shared/PUBLISH.md index 751081714..08285e122 100644 --- a/packages/shared/PUBLISH.md +++ b/packages/shared/PUBLISH.md @@ -4,7 +4,7 @@ 在工作区内直接将 `package_publish.json` 改名为 `package.json` 再构建/发布,会影响同一 monorepo 里的其他包(如 `base`)对 `@actiontech/shared` 的类型解析:此时 `types` 指向 `./dist/index.d.ts`,但构建尚未产出 `dist`,从而触发 IDE/tsc 报错。 -为消除对工作区的干扰,采用“临时目录发布”:构建在工作区完成,发布动作在系统临时目录执行,工作区不进行任何切换。 +为消除对工作区的干扰,采用"临时目录发布":**先在临时目录中复制整个包,然后安装依赖、构建,最后发布**,工作区不进行任何切换,构建过程完全隔离。 ### 目录与关键文件 @@ -21,28 +21,65 @@ ### 发布步骤(脚本自动化完成) -1. 在工作区执行构建(产出 `dist`) -2. 在系统临时目录创建发布用目录,仅复制 `dist` 与必要文件(如 `README.md`、`LICENSE`) -3. 将 `package_publish.json` 复制为临时目录内的 `package.json`,写入指定版本号 -4. 在临时目录执行 `npm publish` -5. 清理临时目录 - -整个过程不修改工作区的 `package.json`,不会影响其它包/IDE 的类型解析。 +1. **创建临时目录**:在项目上级目录创建唯一的发布目录 +2. **复制整个包**:将 shared 包复制到临时目录,智能排除不需要的文件(`node_modules`、`dist`、`.git` 等) +3. **调整配置**:将 `package_publish.json` 转换为 `package.json`,更新版本号,移除生命周期脚本 +4. **安装依赖**:在临时目录中执行 `pnpm install` +5. **执行构建**:在临时目录中执行 `pnpm build`,产出 `dist` 目录 +6. **目录结构调整**: + - 重命名 `publish-entry.*` 为 `index.*` + - 移除 `lib` 目录(原始源码) + - 将 `dist` 重命名为 `lib`(符合发布包结构) +7. **产物预览**:显示完整的发包产物结构,供用户确认 +8. **用户确认**:提示用户确认是否发包(可跳过) +9. **执行发布**:在临时目录执行 `npm publish` +10. **版本号更新**:发包成功后自动更新 `package_publish.json` 的版本号 +11. **清理资源**:删除临时目录 + +整个过程不修改工作区的 `package.json`,不会影响其它包/IDE 的类型解析,构建过程完全在隔离环境中进行。 ### 使用方法 -- 正常发布: +- **正常发布**: ```bash node packages/shared/publish-shared.mjs --version 0.0.1-rc.9 ``` -- 演练(不真正发布,建议先试): +- **跳过确认直接发布**: + +```bash +node packages/shared/publish-shared.mjs --version 0.0.1-rc.9 --skip-confirm +# 或使用简写 +node packages/shared/publish-shared.mjs --version 0.0.1-rc.9 -y +``` + +- **演练(不真正发布,建议先试)**: ```bash npm_config_dry_run=true node packages/shared/publish-shared.mjs --version 0.0.0-test.0 ``` +### 新增功能特性 + +#### 🎯 **发包前确认机制** + +- **产物结构预览**:发包前显示完整的目录结构,让用户确认产物内容 +- **交互式确认**:提示用户输入确认发包,避免误操作 +- **跳过确认选项**:支持 `--skip-confirm` 或 `-y` 参数,适用于自动化场景 + +#### 🔄 **智能版本号管理** + +- **发包成功后**:自动更新 `package_publish.json` 的版本号为发包版本 +- **发包失败时**:自动还原 `package_publish.json` 的版本号为原始版本 +- **版本号持久化**:确保发包成功后版本号得到正确更新 + +#### 🏗️ **优化的构建流程** + +- **完全隔离**:构建过程在临时目录中进行,不影响工作区 +- **依赖管理**:在临时目录中安装依赖,避免工作区依赖冲突 +- **智能文件过滤**:自动排除 `node_modules`、`dist`、`.git` 等不需要的文件 + ### 版本号建议 - 遵循 semver:`MAJOR.MINOR.PATCH[-PRERELEASE]` @@ -50,34 +87,38 @@ npm_config_dry_run=true node packages/shared/publish-shared.mjs --version 0.0.0- ### 常见问题(FAQ) -- 为什么之前会出现 “Could not find a declaration file for module '@actiontech/shared'”? +- **为什么之前会出现 "Could not find a declaration file for module '@actiontech/shared'"?** - 旧流程在工作区切换为发布版 `package.json` 时,`types` 指向未产出的 `dist`,导致消费者包的 IDE/tsc 找不到类型声明而报错。现在改为临时目录发布,工作区不切换,问题消除。 -- 我在 `tsconfig.build.json` 里 `exclude` 了相关目录,为什么仍有类型报错? +- **我在 `tsconfig.build.json` 里 `exclude` 了相关目录,为什么仍有类型报错?** - `exclude` 仅作用于以该 tsconfig 为入口的 tsc 编译;对 tsup 的 dts 生成(基于入口追踪)和其他包/IDE 的类型解析不生效。根因是工作区被切换为发布形态导致解析到未产出的 `dist`,与 `exclude` 无关。 -- 发布后包内为何不能使用 `@actiontech/shared/lib/...` 深路径导入? +- **发布后包内为何不能使用 `@actiontech/shared/lib/...` 深路径导入?** - 发布包通常只包含 `dist`,不存在 `lib` 源码路径。请统一从包顶层导出使用(`import { X } from '@actiontech/shared'`),并确保在 `lib/publish-entry.ts` 中导出所需符号。 -### 最佳实践 +- **新增的确认机制会影响自动化发布吗?** + - 不会。可以使用 `--skip-confirm` 或 `-y` 参数跳过确认,适用于 CI/CD 等自动化场景。 -- 统一从包顶层导出,避免 `@actiontech/shared/lib/...` 深路径导入 -- 确保 `package_publish.json` 正确指向 `dist`: - - `main`, `module`, `types` 与 `exports` 的 `types`/`default` - - `files` 仅包含需要发布的目录(建议只包含 `dist`) - - `publishConfig` 指向正确的 registry,`access` 设置符合私库/公库需求 -- 如需更稳健的类型生成,可在 `tsconfig.build.json` 明确覆盖: - - `"noEmit": false` - - `"isolatedModules": false` +- **版本号管理是如何工作的?** + - 发包成功后,脚本会自动更新 `package_publish.json` 的版本号;如果发包失败,会自动还原为原始版本号,确保版本号的一致性。 ### 触发命令示例(CI/CD) ```bash # 假设已在仓库根目录 +# 自动化发布(跳过确认) +node packages/shared/publish-shared.mjs --version "$VERSION" --skip-confirm + +# 手动发布(需要确认) node packages/shared/publish-shared.mjs --version "$VERSION" ``` -### 备注 +### 遗留事项 + +- **组件导出暂存(与 react-router 强关联)**: + - 目前在 `lib/publish-entry.ts` 依然导出了 `TypedRouter`、`ActionButton`、`ActiontechTable` 等与 `react-router` 依赖强关联的组件。 + - 原因:部分组件依赖 `ActiontechTable` 文件中提供的工具方法;同时 `ActiontechTable` 本身需要导出。考虑到本次不做较大重构,故临时保留相关导出。 + - 后续计划:将 `ActiontechTable` 中的通用工具方法拆分为独立模块,逐步去除对 `react-router` 强耦合组件的顶层导出。 -- 发布脚本会在临时目录禁用可能触发二次构建的生命周期脚本(如 `prepublish/prepare/build`) -- 失败时会打印错误并清理临时目录;如清理失败需手动检查 +- **README 遗留**: + - 发布包内的 README 仍为遗留项,后续补充使用说明、导出清单、迁移指南等文档。 diff --git a/packages/shared/lib/providers/theme.tsx b/packages/shared/lib/providers/theme.tsx index 70f668f08..a35e64a93 100644 --- a/packages/shared/lib/providers/theme.tsx +++ b/packages/shared/lib/providers/theme.tsx @@ -17,7 +17,7 @@ const DEFAULT_THEME_DATA = { export interface ThemeProviderProps { children: ReactNode; themeData?: typeof DEFAULT_THEME_DATA; - theme?: SupportTheme + theme?: SupportTheme; } export const ThemeProvider: React.FC = ({ diff --git a/packages/shared/lib/publish-entry.ts b/packages/shared/lib/publish-entry.ts index 9e14f91e7..22174fd31 100644 --- a/packages/shared/lib/publish-entry.ts +++ b/packages/shared/lib/publish-entry.ts @@ -17,6 +17,7 @@ export * from './data/common'; export * from './data/routePaths'; export * from './locale'; +export * from './components/ActionButton'; export * from './components/ActiontechTable'; export * from './components/BasicButton'; export * from './components/BasicDatePicker'; @@ -60,6 +61,7 @@ export * from './components/SpinIndicator'; export * from './components/SystemConfigurationHub'; export * from './components/TestDatabaseConnectButton'; export * from './components/ToggleTokens'; +export * from './components/TypedRouter'; export * from './components/VerificationCodeInput'; export * from './providers'; diff --git a/packages/shared/package.json b/packages/shared/package.json index a8e0c17e3..1990ce031 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -12,28 +12,6 @@ "dependencies": { "@actiontech/icons": "workspace:^" }, - "peerDependencies": { - "@actiontech/icons": "0.0.1-rc.1", - "@ant-design/cssinjs": "^1.17.0", - "@ant-design/icons": "^4.7.0", - "@emotion/react": "^11.14.0", - "@emotion/styled": "^11.14.0", - "@mui/material": "^5.11.16", - "@mui/styles": "^5.11.16", - "@mui/system": "^5.9.1", - "ahooks": "^3.7.0", - "antd": ">=5.7.3", - "axios": "^1", - "classnames": "^2.3.0", - "dayjs": "^1", - "i18next": "^23.0.0", - "rc-input-number": "~8.0.2", - "rc-tree-select": "~5.9.0", - "react": ">=17", - "react-dom": ">=17", - "react-i18next": "^15.0.0", - "typescript": ">=5.0.2" - }, "devDependencies": { "tsup": "^8.5.0" } diff --git a/packages/shared/package_publish.json b/packages/shared/package_publish.json index 9d213ac41..39b3ee7a9 100644 --- a/packages/shared/package_publish.json +++ b/packages/shared/package_publish.json @@ -1,6 +1,6 @@ { "name": "@actiontech/dms-kit", - "version": "0.0.1-rc.10", + "version": "0.0.1-rc.26", "description": "dms kit", "main": "./lib/index.js", "module": "./lib/index.mjs", @@ -25,35 +25,39 @@ "access": "restricted" }, "scripts": { + "build": "tsup", "prepublish": "pnpm build" }, "dependencies": { - "@actiontech/icons": "workspace:*" + "@actiontech/shared": "workspace:*" }, "devDependencies": { "tsup": "^8.5.0" }, "peerDependencies": { - "@actiontech/icons": "0.0.1-rc.1", + "@actiontech/icons": "^0.0.1-rc.7", "@ant-design/cssinjs": "^1.17.0", + "@ant-design/icons": "^4.7.0", + "@emotion/react": "^11.14.0", + "@emotion/styled": "^11.14.0", "@mui/material": "^5.11.16", "@mui/styles": "^5.11.16", "@mui/system": "^5.9.1", "ahooks": "^3.7.0", "antd": ">=5.7.3", - "axios": "^1", + "axios": ">=0.27.2", "classnames": "^2.3.0", "dayjs": "^1", "i18next": "^23.0.0", + "rc-input-number": "~8.0.2", + "rc-tree-select": "~5.9.0", "react": ">=17", "react-dom": ">=17", "react-i18next": "^15.0.0", - "typescript": ">=5.0.2", - "@emotion/react": "^11.14.0", - "@emotion/styled": "^11.14.0", - "rc-input-number": "~8.0.2", - "rc-tree-select": "~5.9.0", - "@ant-design/icons": "^4.7.0" + "typescript": "^5.0.2", + "sql-formatter": "^12.2.4", + "nprogress": "^0.2.0", + "react-router-dom": "^6.10.0" }, "license": "MIT" -} \ No newline at end of file +} diff --git a/packages/shared/publish-shared.mjs b/packages/shared/publish-shared.mjs index 60396324a..79244c5d7 100644 --- a/packages/shared/publish-shared.mjs +++ b/packages/shared/publish-shared.mjs @@ -3,16 +3,18 @@ import fs from 'node:fs'; import path from 'node:path'; import { fileURLToPath } from 'node:url'; import { spawnSync } from 'node:child_process'; -import os from 'node:os'; +import readline from 'node:readline'; function parseArgs(argv) { - const args = { version: '' }; + const args = { version: '', skipConfirm: false }; for (let i = 2; i < argv.length; i += 1) { const key = argv[i]; const val = argv[i + 1]; if (key === '--version' || key === '-v') { args.version = val || ''; i += 1; + } else if (key === '--skip-confirm' || key === '-y') { + args.skipConfirm = true; } } return args; @@ -96,8 +98,71 @@ function renameRootPublishEntryToIndex(distRoot) { } } -function main() { - const { version } = parseArgs(process.argv); +function showPackageStructure(tmpDir) { + console.log('\n📦 发包产物结构预览:'); + console.log('='.repeat(50)); + + function listDir(dir, prefix = '', maxDepth = 3, currentDepth = 0) { + if (currentDepth >= maxDepth) return; + + try { + const entries = fs.readdirSync(dir, { withFileTypes: true }); + const sortedEntries = entries.sort((a, b) => { + // 目录在前,文件在后 + if (a.isDirectory() && !b.isDirectory()) return -1; + if (!a.isDirectory() && b.isDirectory()) return 1; + return a.name.localeCompare(b.name); + }); + + for (const entry of sortedEntries) { + const fullPath = path.join(dir, entry.name); + const relativePath = path.relative(tmpDir, fullPath); + const icon = entry.isDirectory() ? '📁' : '📄'; + console.log(`${prefix}${icon} ${relativePath}`); + + if (entry.isDirectory() && currentDepth < maxDepth - 1) { + listDir(fullPath, prefix + ' ', maxDepth, currentDepth + 1); + } + } + } catch (err) { + console.log(`${prefix}❌ 无法读取目录: ${err.message}`); + } + } + + listDir(tmpDir); + console.log('='.repeat(50)); +} + +async function confirmPublish() { + const rl = readline.createInterface({ + input: process.stdin, + output: process.stdout + }); + + return new Promise((resolve) => { + rl.question('\n❓ 确认要发布这个包吗?(y/N): ', (answer) => { + rl.close(); + const confirmed = + answer.toLowerCase() === 'y' || answer.toLowerCase() === 'yes'; + resolve(confirmed); + }); + }); +} + +function updatePackagePublishVersion(sharedDir, version) { + const pubPkgPath = path.join(sharedDir, 'package_publish.json'); + try { + const pubPkgContent = readJson(pubPkgPath); + pubPkgContent.version = version; + writeJson(pubPkgPath, pubPkgContent); + console.log(`✅ 已更新 package_publish.json 版本号为: ${version}`); + } catch (err) { + console.warn(`⚠️ 更新 package_publish.json 版本号失败: ${err.message}`); + } +} + +async function main() { + const { version, skipConfirm } = parseArgs(process.argv); if (!version) { console.error('请通过 --version 或 -v 指定版本号,例如:'); console.error( @@ -113,39 +178,78 @@ function main() { const pubPkg = path.join(sharedDir, 'package_publish.json'); ensureFileExists(pubPkg, '发布用 package_publish.json'); - const distDir = path.join(sharedDir, 'dist'); + // 保存原始版本号,用于后续还原 + const originalPubPkgContent = readJson(pubPkg); + const originalVersion = originalPubPkgContent.version; - const tmpBase = os.tmpdir(); + const tmpBase = path.join(__dirname, '..'); const tmpDir = fs.mkdtempSync( path.join(tmpBase, 'actiontech-shared-publish-') ); try { - console.log('[1/8] 在工作区内执行构建: pnpm build'); - runCmd('pnpm', ['build'], sharedDir); - ensureFileExists(distDir, '构建产物 dist 目录'); - - console.log(`[2/8] 将 dist 复制到临时目录: ${tmpDir}`); - const tmpDist = path.join(tmpDir, 'lib'); - copyDirSync(distDir, tmpDist); - - console.log('[3/7] 根入口对齐:publish-entry.* -> index.*'); - renameRootPublishEntryToIndex(tmpDist); - - const tmpDevPkg = path.join(tmpDir, 'package.json'); - console.log('[4/7] 生成发布 package.json'); - fs.copyFileSync(pubPkg, tmpDevPkg); - - console.log(`[5/7] 更新版本号: ${version}`); - const nextPkgJson = readJson(tmpDevPkg); - nextPkgJson.version = version; - // 避免在临时目录触发 prepublish/build 等生命周期脚本 - if (nextPkgJson.scripts) { - delete nextPkgJson.scripts.prepublish; - delete nextPkgJson.scripts.prepare; - delete nextPkgJson.scripts.build; + console.log(`[1/9] 创建临时目录: ${tmpDir}`); + + console.log('[2/9] 复制整个 shared 包到临时目录'); + // 复制整个包目录,但排除一些不需要的文件 + const excludePatterns = [ + 'node_modules', + 'dist', + '.git', + '.github', + 'coverage', + '.nyc_output', + '.DS_Store', + '*.log' + ]; + + const filter = (filePath) => { + const relativePath = path.relative(sharedDir, filePath); + return !excludePatterns.some((pattern) => { + if (pattern.includes('*')) { + const regex = new RegExp(pattern.replace('*', '.*')); + return regex.test(relativePath); + } + return relativePath.includes(pattern); + }); + }; + + copyDirSync(sharedDir, tmpDir, { filter }); + + console.log('[3/9] 调整 package.json 配置'); + // 将 package_publish.json 重命名为 package.json + const tmpPkgJson = path.join(tmpDir, 'package.json'); + const pubPkgContent = readJson(pubPkg); + + // 更新版本号 + pubPkgContent.version = version; + + // 移除 prepublish 脚本,避免在临时目录触发构建 + if (pubPkgContent.scripts) { + delete pubPkgContent.scripts.prepublish; + delete pubPkgContent.scripts.prepare; } - writeJson(tmpDevPkg, nextPkgJson); + + writeJson(tmpPkgJson, pubPkgContent); + + console.log('[4/9] 安装依赖: pnpm install'); + runCmd('pnpm', ['install'], tmpDir); + + console.log('[5/9] 执行构建: pnpm build'); + runCmd('pnpm', ['build'], tmpDir); + + // 验证构建产物 + const tmpDistDir = path.join(tmpDir, 'dist'); + const tmpLibDir = path.join(tmpDir, 'lib'); + ensureFileExists(tmpDistDir, '构建产物 dist 目录'); + ensureFileExists(tmpLibDir, '原始资源代码目录'); + console.log('[6-3/9] 根入口对齐:publish-entry.* -> index.*'); + renameRootPublishEntryToIndex(tmpDistDir); + + console.log('[6-1/9] 移除 lib 目录'); + fs.rmSync(tmpLibDir, { recursive: true, force: true }); + console.log('[6-2/9] 重命名 dist 目录为 lib'); + fs.renameSync(tmpDistDir, tmpLibDir); // 可选: 附带 README/LICENCE const maybeFiles = ['README.md', 'LICENSE', 'LICENSE.md']; @@ -156,19 +260,55 @@ function main() { } } - console.log('[6/7] 执行发布: npm publish'); + // 显示产物结构预览 + showPackageStructure(tmpDir); + + // 移除 @actiontech/shared 依赖 + if (pubPkgContent.dependencies['@actiontech/shared']) { + delete pubPkgContent.dependencies['@actiontech/shared']; + writeJson(tmpPkgJson, pubPkgContent); + } + + // 用户确认发包 + if (!skipConfirm) { + const confirmed = await confirmPublish(); + if (!confirmed) { + console.log('❌ 用户取消发布'); + console.log('[9/9] 清理临时目录'); + fs.rmSync(tmpDir, { recursive: true, force: true }); + return; + } + } + + console.log('[7/9] 执行发布: npm publish'); runCmd('npm', ['publish'], tmpDir); - console.log('[7/7] 清理临时目录'); + console.log('[8/9] 更新 package_publish.json 版本号'); + updatePackagePublishVersion(sharedDir, version); + + console.log('[9/9] 清理临时目录'); fs.rmSync(tmpDir, { recursive: true, force: true }); - console.log('发布完成'); + console.log('✅ 发布完成'); } catch (err) { - console.error('发布流程发生错误:', err?.message || err); + console.error('❌ 发布流程发生错误:', err?.message || err); process.exitCode = 1; + + // 还原原始版本号 + try { + const pubPkgPath = path.join(sharedDir, 'package_publish.json'); + originalPubPkgContent.version = originalVersion; + writeJson(pubPkgPath, originalPubPkgContent); + console.log( + `🔄 已还原 package_publish.json 版本号为: ${originalVersion}` + ); + } catch (restoreErr) { + console.warn(`⚠️ 还原版本号失败: ${restoreErr.message}`); + } + try { if (fs.existsSync(tmpDir)) { - console.log('清理临时目录'); + console.log('🧹 清理临时目录'); fs.rmSync(tmpDir, { recursive: true, force: true }); } } catch {} diff --git a/packages/shared/tsconfig.build.json b/packages/shared/tsconfig.build.json index 487ad1f95..db25feffb 100644 --- a/packages/shared/tsconfig.build.json +++ b/packages/shared/tsconfig.build.json @@ -4,6 +4,6 @@ "outDir": "./dist", "declarationDir": "./dist" }, - "include": ["lib/publish-entry.ts"], + "include": ["lib"], "exclude": ["node_modules", "dist"] } diff --git a/packages/shared/tsup.config.ts b/packages/shared/tsup.config.js similarity index 91% rename from packages/shared/tsup.config.ts rename to packages/shared/tsup.config.js index 4e6a1f6d2..538b26b10 100644 --- a/packages/shared/tsup.config.ts +++ b/packages/shared/tsup.config.js @@ -2,7 +2,7 @@ import { defineConfig } from 'tsup'; import fs from 'node:fs'; import path from 'node:path'; -function generateEntriesFromPublishEntry(): string[] { +function generateEntriesFromPublishEntry() { const projectRoot = process.cwd(); const publishEntryPath = path.resolve(projectRoot, 'lib', 'publish-entry.ts'); let content = ''; @@ -14,12 +14,12 @@ function generateEntriesFromPublishEntry(): string[] { const exportPathRegex = /export\s+(?:type\s+)?(?:\*|\{[^}]*\})\s+from\s+['"](.+?)['"];?/g; - const includes = new Set(); + const includes = new Set(); // 始终保留根入口 includes.add('./lib/publish-entry.ts'); - let match: RegExpExecArray | null; + let match = null; while ((match = exportPathRegex.exec(content)) !== null) { const rel = match[1]; if (!rel || !rel.startsWith('./')) continue; @@ -49,7 +49,6 @@ function generateEntriesFromPublishEntry(): string[] { } case 'types': { includes.add(`./lib/${normalized}.ts`); - includes.add(`./lib/${normalized}.tsx`); break; } default: { @@ -81,8 +80,8 @@ function generateEntriesFromPublishEntry(): string[] { '!./lib/**/*.stories.ts', '!./lib/**/*.stories.tsx', '!./lib/**/*.md', - '!./lib/**/*.types.ts', - '!./lib/**/*.type.ts', + '!./lib/components/**/*.types.ts', + '!./lib/components/**/*.type.ts', '!./lib/**/test/**' ]; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0b6320fc0..d09abe526 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -257,7 +257,7 @@ importers: version: 3.0.5 msw: specifier: ^0.45.0 - version: 0.45.0(typescript@5.8.2) + version: 0.45.0(encoding@0.1.13)(typescript@5.8.2) postcss-less: specifier: ^6.0.0 version: 6.0.0(postcss@8.5.3) @@ -304,38 +304,14 @@ importers: specifier: ^3.2.2 version: 3.2.2(vite@5.4.15(@types/node@18.19.84)(less@4.2.2)(lightningcss@1.22.1)(sass@1.86.0)(terser@5.39.0)) - packages/base: + packages/actiontech-shared-publish-Cd4LUR: dependencies: '@actiontech/icons': - specifier: workspace:^ - version: link:../icons + specifier: ^0.0.1-rc.7 + version: 0.0.1-rc.7(react@18.3.1) '@actiontech/shared': - specifier: workspace:^ + specifier: workspace:* version: link:../shared - babel-preset-react-app: - specifier: ^10.0.1 - version: 10.1.0 - sqle: - specifier: workspace:^ - version: link:../sqle - - packages/icons: - devDependencies: - '@svgr/cli': - specifier: ^8.1.0 - version: 8.1.0(typescript@5.3.3) - dumi: - specifier: ^2.3.8 - version: 2.4.18(@babel/core@7.26.10)(@swc/helpers@0.5.1)(@types/node@22.13.14)(@types/react@18.3.20)(eslint@9.23.0)(jest@29.1.2(@types/node@22.13.14)(babel-plugin-macros@3.1.0))(lightningcss@1.22.1)(postcss-less@6.0.0(postcss@8.5.3))(prettier@3.5.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@3.29.5)(stylelint@15.11.0(typescript@5.3.3))(terser@5.39.0)(type-fest@1.4.0)(typescript@5.3.3)(webpack@5.98.0) - father: - specifier: ^4.1.0 - version: 4.5.2(@babel/core@7.26.10)(@types/node@22.13.14)(styled-components@6.1.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(type-fest@1.4.0)(webpack@5.98.0) - - packages/shared: - dependencies: - '@actiontech/icons': - specifier: workspace:^ - version: link:../icons '@ant-design/cssinjs': specifier: 1.17.0 version: 1.17.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -364,8 +340,8 @@ importers: specifier: '>=5.7.3' version: 5.7.3(luxon@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) axios: - specifier: ^1 - version: 1.11.0 + specifier: '>=0.27.2' + version: 0.27.2 classnames: specifier: ^2.3.0 version: 2.5.1 @@ -375,6 +351,9 @@ importers: i18next: specifier: ^23.0.0 version: 23.16.8 + nprogress: + specifier: ^0.2.0 + version: 0.2.0 rc-input-number: specifier: ~8.0.2 version: 8.0.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -390,14 +369,60 @@ importers: react-i18next: specifier: ^15.0.0 version: 15.6.1(i18next@23.16.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2) + react-router-dom: + specifier: ^6.10.0 + version: 6.10.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + sql-formatter: + specifier: ^12.2.4 + version: 12.2.4 typescript: - specifier: '>=5.0.2' + specifier: ^5.0.2 version: 5.8.2 devDependencies: tsup: specifier: ^8.5.0 version: 8.5.0(@microsoft/api-extractor@7.39.1(@types/node@22.13.14))(@swc/core@1.9.2(@swc/helpers@0.5.1))(postcss@8.5.3)(typescript@5.8.2) + packages/base: + dependencies: + '@actiontech/icons': + specifier: workspace:^ + version: link:../icons + '@actiontech/shared': + specifier: workspace:^ + version: link:../shared + babel-preset-react-app: + specifier: ^10.0.1 + version: 10.1.0 + sqle: + specifier: workspace:^ + version: link:../sqle + + packages/icons: + devDependencies: + '@babel/preset-react': + specifier: ^7.24.7 + version: 7.26.3(@babel/core@7.26.10) + '@svgr/cli': + specifier: ^8.1.0 + version: 8.1.0(typescript@5.3.3) + dumi: + specifier: ^2.3.8 + version: 2.4.18(@babel/core@7.26.10)(@swc/helpers@0.5.1)(@types/node@22.13.14)(@types/react@18.3.20)(eslint@9.23.0)(jest@29.1.2(@types/node@22.13.14)(babel-plugin-macros@3.1.0))(lightningcss@1.22.1)(postcss-less@6.0.0(postcss@8.5.3))(prettier@3.5.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@3.29.5)(stylelint@15.11.0(typescript@5.3.3))(terser@5.39.0)(type-fest@1.4.0)(typescript@5.3.3)(webpack@5.98.0) + father: + specifier: ^4.1.0 + version: 4.5.2(@babel/core@7.26.10)(@types/node@22.13.14)(styled-components@6.1.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(type-fest@1.4.0)(webpack@5.98.0) + + packages/shared: + dependencies: + '@actiontech/icons': + specifier: workspace:^ + version: link:../icons + devDependencies: + tsup: + specifier: ^8.5.0 + version: 8.5.0(@microsoft/api-extractor@7.39.1(@types/node@22.13.14))(@swc/core@1.9.2(@swc/helpers@0.5.1))(postcss@8.5.3)(typescript@5.8.2) + packages/sqle: dependencies: '@actiontech/icons': @@ -504,6 +529,11 @@ importers: packages: + '@actiontech/icons@0.0.1-rc.7': + resolution: {integrity: sha512-Jt3qHlhMhGBt8B523ftokV6kQpE4mT9oAb/DWOPLwvsv6BnSw1P1APweF4sRvy/IBsPxaS4beFkeANfjjJ4KuQ==} + peerDependencies: + react: '>=17' + '@adobe/css-tools@4.4.2': resolution: {integrity: sha512-baYZExFpsdkBNuvGKTKWCwKH57HRZLVtycZS05WTQNVOiXVSeAki3nU35zlRbToeMW8aHlJfyS+1C4BOv27q0A==} @@ -4388,9 +4418,6 @@ packages: axios@0.27.2: resolution: {integrity: sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==} - axios@1.11.0: - resolution: {integrity: sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==} - babel-jest@29.7.0: resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -5526,6 +5553,9 @@ packages: resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} engines: {node: '>= 0.8'} + encoding@0.1.13: + resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} + end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} @@ -5934,8 +5964,9 @@ packages: fb-watchman@2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} - fdir@6.4.6: - resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==} + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: @@ -8582,9 +8613,6 @@ packages: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} - proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - prr@1.0.1: resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} @@ -10879,6 +10907,10 @@ packages: snapshots: + '@actiontech/icons@0.0.1-rc.7(react@18.3.1)': + dependencies: + react: 18.3.1 + '@adobe/css-tools@4.4.2': {} '@ampproject/remapping@2.3.0': @@ -13210,7 +13242,7 @@ snapshots: '@mui/material@5.11.16(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.28.2 + '@babel/runtime': 7.27.0 '@mui/base': 5.0.0-alpha.124(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/core-downloads-tracker': 5.17.1 '@mui/system': 5.17.1(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1) @@ -13231,7 +13263,7 @@ snapshots: '@mui/private-theming@5.17.1(@types/react@18.3.20)(react@18.3.1)': dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 '@mui/utils': 5.17.1(@types/react@18.3.20)(react@18.3.1) prop-types: 15.8.1 react: 18.3.1 @@ -13240,7 +13272,7 @@ snapshots: '@mui/styled-engine@5.16.14(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.20)(react@18.3.1))(@types/react@18.3.20)(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 '@emotion/cache': 11.14.0 csstype: 3.1.3 prop-types: 15.8.1 @@ -13251,7 +13283,7 @@ snapshots: '@mui/styles@5.11.16(@types/react@18.3.20)(react@18.3.1)': dependencies: - '@babel/runtime': 7.28.2 + '@babel/runtime': 7.27.0 '@emotion/hash': 0.9.2 '@mui/private-theming': 5.17.1(@types/react@18.3.20)(react@18.3.1) '@mui/types': 7.2.24(@types/react@18.3.20) @@ -15039,7 +15071,7 @@ snapshots: ahooks@3.8.4(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 dayjs: 1.11.13 intersection-observer: 0.12.2 js-cookie: 3.0.5 @@ -15347,14 +15379,6 @@ snapshots: transitivePeerDependencies: - debug - axios@1.11.0: - dependencies: - follow-redirects: 1.15.9 - form-data: 4.0.4 - proxy-from-env: 1.1.0 - transitivePeerDependencies: - - debug - babel-jest@29.7.0(@babel/core@7.26.10): dependencies: '@babel/core': 7.26.10 @@ -15391,7 +15415,7 @@ snapshots: babel-plugin-macros@3.1.0: dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 cosmiconfig: 7.1.0 resolve: 1.22.10 @@ -16744,6 +16768,11 @@ snapshots: encodeurl@2.0.0: {} + encoding@0.1.13: + dependencies: + iconv-lite: 0.6.3 + optional: true + end-of-stream@1.4.4: dependencies: once: 1.4.0 @@ -17493,7 +17522,7 @@ snapshots: dependencies: bser: 2.1.1 - fdir@6.4.6(picomatch@4.0.3): + fdir@6.5.0(picomatch@4.0.3): optionalDependencies: picomatch: 4.0.3 @@ -19125,7 +19154,7 @@ snapshots: decimal.js: 10.5.0 domexception: 4.0.0 escodegen: 2.1.0 - form-data: 4.0.2 + form-data: 4.0.4 html-encoding-sniffer: 3.0.0 http-proxy-agent: 5.0.0 https-proxy-agent: 5.0.1 @@ -19971,7 +20000,7 @@ snapshots: ms@2.1.3: {} - msw@0.45.0(typescript@5.8.2): + msw@0.45.0(encoding@0.1.13)(typescript@5.8.2): dependencies: '@mswjs/cookies': 0.2.2 '@mswjs/interceptors': 0.17.10 @@ -19985,7 +20014,7 @@ snapshots: inquirer: 8.2.6 is-node-process: 1.2.0 js-levenshtein: 1.1.6 - node-fetch: 2.7.0 + node-fetch: 2.7.0(encoding@0.1.13) outvariant: 1.4.3 path-to-regexp: 6.3.0 statuses: 2.0.1 @@ -20051,9 +20080,11 @@ snapshots: node-domexception@1.0.0: {} - node-fetch@2.7.0: + node-fetch@2.7.0(encoding@0.1.13): dependencies: whatwg-url: 5.0.0 + optionalDependencies: + encoding: 0.1.13 node-fetch@3.3.2: dependencies: @@ -20852,8 +20883,6 @@ snapshots: forwarded: 0.2.0 ipaddr.js: 1.9.1 - proxy-from-env@1.1.0: {} - prr@1.0.1: optional: true @@ -21087,7 +21116,7 @@ snapshots: rc-motion@2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 classnames: 2.5.1 rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 @@ -21302,7 +21331,7 @@ snapshots: rc-util@5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-is: 18.3.1 @@ -21341,7 +21370,7 @@ snapshots: react-error-boundary@3.1.4(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.2 react: 18.3.1 react-error-boundary@4.1.2(react@18.3.1): @@ -22840,7 +22869,7 @@ snapshots: tinyglobby@0.2.14: dependencies: - fdir: 6.4.6(picomatch@4.0.3) + fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 titleize@3.0.0: {} From d3e671117bb288f0b5fff128296741784302d460 Mon Sep 17 00:00:00 2001 From: tianzuzhao Date: Mon, 25 Aug 2025 10:34:16 +0800 Subject: [PATCH 10/43] dms-kit --- .gitignore | 1 + jest-setup.ts | 2 +- packages/base/package.json | 1 + packages/base/src/App.ce.test.tsx | 2 +- packages/base/src/App.test.tsx | 10 +- packages/base/src/App.tsx | 53 +- .../src/components/ProjectTagList/index.tsx | 25 +- .../__tests__/index.test.tsx | 2 +- .../components/SystemRoleTagList/index.tsx | 16 +- .../useBrowserVersionTips/index.test.tsx | 2 +- .../src/hooks/useBrowserVersionTips/index.tsx | 4 +- .../base/src/hooks/useBusinessTag/index.tsx | 2 +- .../base/src/hooks/useDbService/index.tsx | 14 +- .../base/src/hooks/useMemberTips/index.tsx | 9 +- .../base/src/hooks/useOpPermission/index.tsx | 2 +- .../base/src/hooks/useProjectTips/index.ts | 2 +- .../__tests__/index.test.tsx | 8 +- .../hooks/useRecentlySelectedZone/index.ts | 4 +- packages/base/src/hooks/useRole/index.tsx | 9 +- .../base/src/hooks/useSessionUser/index.tsx | 2 +- .../useSyncDmsCloudBeaverChannel/index.ts | 4 +- .../src/hooks/useSystemConfig/index.test.tsx | 2 +- .../base/src/hooks/useSystemConfig/index.tsx | 2 +- .../base/src/hooks/useTaskSource/index.tsx | 12 +- .../base/src/hooks/useUserGroup/index.tsx | 2 +- packages/base/src/hooks/useUsername/index.tsx | 2 +- packages/base/src/locale/index.ts | 14 +- .../PersonalSMS/components/ConfigField.tsx | 18 +- .../src/page/Account/PersonalSMS/index.tsx | 4 +- .../AccessToken/GenerateTokenModal.tsx | 16 +- .../Account/components/AccessToken/index.tsx | 14 +- .../Account/components/AccessToken/style.ts | 4 +- .../Account/components/UpdatePassword.tsx | 18 +- .../src/page/Account/components/UserEmail.tsx | 15 +- .../src/page/Account/components/UserPhone.tsx | 14 +- .../page/Account/components/UserWechat.tsx | 13 +- packages/base/src/page/Account/index.tsx | 11 +- .../AvailabilityZoneWrapper/index.tsx | 13 +- .../AvailabilityZone/Drawer/Create/index.tsx | 14 +- .../AvailabilityZone/Drawer/Form/index.tsx | 17 +- .../AvailabilityZone/Drawer/Update/index.tsx | 15 +- .../src/page/AvailabilityZone/List/action.tsx | 2 - .../src/page/AvailabilityZone/List/index.tsx | 23 +- .../base/src/page/BindUser/index.ce.test.tsx | 6 +- .../base/src/page/BindUser/index.test.tsx | 10 +- packages/base/src/page/BindUser/index.tsx | 47 +- .../base/src/page/CloudBeaver/List/column.tsx | 11 +- .../src/page/CloudBeaver/List/index.test.tsx | 2 +- .../components/OperationStatistics.tsx | 2 +- .../CloudBeaver/hooks/useCBOperationTips.ts | 2 +- .../src/page/CloudBeaver/index.ce.test.tsx | 2 +- .../base/src/page/CloudBeaver/index.test.tsx | 2 +- packages/base/src/page/CloudBeaver/index.tsx | 19 +- .../Common/AuditResultList/index.tsx | 12 +- .../Common/BackToWorkflowList/index.tsx | 15 +- .../Common/BasicInfoWrapper/index.tsx | 4 +- .../BaseInfoForm/BaseInfoFormItem.tsx | 13 +- .../CreateTask/BaseInfoForm/index.tsx | 4 +- .../CreateTask/ExportFormAction/index.tsx | 6 +- .../ExportMethodForm/ExportMethodFormItem.tsx | 15 +- .../CreateTask/ExportMethodForm/index.tsx | 4 +- .../ExportSourceForm/ExportSourceFormItem.tsx | 18 +- .../CreateTask/ExportSourceForm/index.tsx | 8 +- .../CreateTask/ExportSourceForm/style.ts | 2 +- .../Create/components/CreateTask/index.tsx | 15 +- .../Create/components/SubmitResult/index.tsx | 12 +- .../SubmitWorkflowButton/index.tsx | 12 +- .../UpdateInfoDrawer/BaseInfoTag.tsx | 4 +- .../SubmitWorkflow/UpdateInfoDrawer/index.tsx | 35 +- .../SubmitWorkflow/UpdateInfoDrawer/style.ts | 2 +- .../components/SubmitWorkflow/index.tsx | 18 +- .../useCreateExportTaskForm.test.tsx | 2 +- .../Create/hooks/useCreateExportTaskForm.ts | 4 +- .../ResultCard/AuditResultTag.tsx | 14 +- .../ResultCard/AuditResultTree.tsx | 2 +- .../ResultCard/__tests__/index.test.tsx | 2 +- .../ExportTaskList/ResultCard/index.tsx | 10 +- .../ExportDetail/OverviewList/column.tsx | 7 +- .../Detail/components/ExportDetail/index.tsx | 11 +- .../components/PageHeaderAction/actions.tsx | 4 - .../components/PageHeaderAction/index.tsx | 9 +- .../RejectWorkflowModal/index.tsx | 13 +- .../WorkflowRecordInfo/WorkflowBasicInfo.tsx | 5 +- .../WorkflowRecordInfo/WorkflowSteps.tsx | 32 +- .../components/WorkflowRecordInfo/index.tsx | 2 +- .../Detail/hooks/useExportDetailAction.ts | 2 +- .../Detail/hooks/useInitDataWithRequest.ts | 4 +- .../DataExportManagement/Detail/index.tsx | 8 +- .../List/__tests__/index.test.tsx | 2 +- .../DataExportManagement/List/actions.tsx | 8 +- .../page/DataExportManagement/List/column.tsx | 14 +- .../List/components/WorkflowStatusFilter.tsx | 4 +- .../page/DataExportManagement/List/index.tsx | 71 ++- .../src/page/DataExportManagement/index.tsx | 5 +- .../components/AddDataSource/index.tsx | 22 +- .../BatchImportDataSource/index.tsx | 27 +- .../Form/EnvironmentField/index.tsx | 21 +- .../components/Form/FormItem/index.tsx | 21 +- .../MaintenanceTimePicker.tsx | 12 +- .../Form/SqlAuditFields/ConfirmSwitch.tsx | 10 +- .../components/Form/SqlAuditFields/index.tsx | 15 +- .../page/DataSource/components/Form/index.tsx | 77 ++- .../List/ConnectionResultColumn.tsx | 26 +- .../DataSource/components/List/actions.tsx | 16 +- .../DataSource/components/List/columns.tsx | 10 +- .../components/List/index.ce.test.tsx | 2 +- .../DataSource/components/List/index.test.tsx | 2 +- .../page/DataSource/components/List/index.tsx | 88 +-- .../page/DataSource/components/List/style.ts | 3 +- .../components/UpdateDataSource/index.tsx | 33 +- .../DataSource/hooks/useCheckConnectable.ts | 2 +- .../src/page/DataSourceManagement/action.tsx | 15 +- .../src/page/DataSourceManagement/index.tsx | 25 +- .../BatchImportDataSource/index.tsx | 24 +- .../List/__tests__/index.test.tsx | 2 +- .../page/GlobalDataSource/List/columns.tsx | 12 +- .../src/page/GlobalDataSource/List/index.tsx | 6 +- .../hooks/useGlobalDataSourceType/index.tsx | 9 +- .../DefaultScene/__tests__/index.ce.test.tsx | 2 +- .../DefaultScene/__tests__/index.test.tsx | 2 +- .../components/NotFoundProject/index.tsx | 2 +- .../components/StepItems/base.tsx | 4 +- .../components/StepItems/index.data.tsx | 4 +- .../components/StepItems/sqle.tsx | 2 +- .../src/page/Home/DefaultScene/index.ce.tsx | 2 +- packages/base/src/page/Home/index.tsx | 5 +- .../src/page/Login/components/LoginForm.tsx | 26 +- .../Login/components/VerificationCodeForm.tsx | 15 +- packages/base/src/page/Login/index.test.tsx | 8 +- packages/base/src/page/Login/index.tsx | 23 +- .../page/Member/Drawer/Member/AddMember.tsx | 15 +- .../page/Member/Drawer/Member/MemberForm.tsx | 12 +- .../Member/Drawer/Member/UpdateMember.tsx | 10 +- .../Drawer/MemberGroup/AddMemberGroup.tsx | 9 +- .../Drawer/MemberGroup/MemberGroupForm.tsx | 11 +- .../Drawer/MemberGroup/UpdateMemberGroup.tsx | 16 +- .../src/page/Member/List/MemberGroupList.tsx | 2 +- .../base/src/page/Member/List/MemberList.tsx | 2 +- .../List/__tests__/MemberGroupList.test.tsx | 2 +- .../Member/List/__tests__/MemberList.test.tsx | 2 +- .../base/src/page/Member/List/actions.tsx | 2 +- packages/base/src/page/Member/List/column.tsx | 12 +- .../Member/Modal/Member/ManageMemberGroup.tsx | 20 +- .../src/page/Member/__tests__/index.test.tsx | 2 +- packages/base/src/page/Member/actions.tsx | 1 - .../Member/components/PermissionFields.tsx | 34 +- .../components/ProjectManagePermissions.tsx | 24 +- .../components/ProjectOpPermissions.tsx | 20 +- packages/base/src/page/Member/index.tsx | 17 +- packages/base/src/page/Member/style.ts | 7 +- .../__tests__/index.test.tsx | 2 +- .../AvailabilityZoneSelector/index.tsx | 16 +- .../page/Nav/SideMenu/MenuList/index.test.tsx | 2 +- .../page/Nav/SideMenu/MenuList/menus/base.tsx | 2 +- .../page/Nav/SideMenu/MenuList/menus/sqle.tsx | 2 +- .../ProjectSelector/MockSelectItemOptions.tsx | 2 +- .../Nav/SideMenu/ProjectSelector/index.tsx | 22 +- .../SideMenu/ProjectSelector/index.type.ts | 2 +- .../Nav/SideMenu/ProjectSelector/style.ts | 4 +- .../page/Nav/SideMenu/ProjectTitle/index.tsx | 2 +- .../QuickActions/__tests__/index.test.tsx | 4 +- .../page/Nav/SideMenu/QuickActions/index.tsx | 18 +- .../Modal/CompanyNoticeModal/actions.tsx | 1 - .../Modal/CompanyNoticeModal/index.test.tsx | 2 +- .../Modal/CompanyNoticeModal/index.tsx | 44 +- .../Modal/VersionModal/BasicVersionModal.tsx | 9 +- .../UserMenu/components/ContextMenu/index.tsx | 2 +- .../UserMenu/components/UserNavigate.tsx | 11 +- .../__tests__/UserNavigate.ce.test.tsx | 4 +- .../__tests__/UserNavigate.test.tsx | 4 +- .../Nav/SideMenu/UserMenu/index.ce.test.tsx | 2 +- .../page/Nav/SideMenu/UserMenu/index.test.tsx | 2 +- .../page/Nav/SideMenu/UserMenu/index.type.ts | 2 +- .../useRecentlyOpenedProjects.test.ts | 4 +- .../base/src/page/Nav/SideMenu/index.ce.tsx | 7 +- packages/base/src/page/Nav/SideMenu/index.tsx | 53 +- packages/base/src/page/Nav/SideMenu/style.ts | 8 +- .../Nav/SideMenu/useRecentlyOpenedProjects.ts | 4 +- packages/base/src/page/Nav/index.tsx | 2 +- .../ConnectableErrorModal/index.tsx | 8 +- .../UploadForm/FileUpload.tsx | 21 +- .../UploadForm/index.tsx | 9 +- .../hooks/useBatchCheckConnectable.ts | 2 +- .../hooks/useBatchImportDataSource.ts | 11 +- .../Project/BatchImportDataSource/index.tsx | 27 +- .../ProjectSelectorModal.tsx | 8 +- .../base/src/page/Project/Detail/index.ce.tsx | 6 +- .../base/src/page/Project/Detail/index.ee.tsx | 2 +- .../src/page/Project/Drawer/AddProject.tsx | 13 +- .../ProjectForm/BusinessField/index.tsx | 21 +- .../Drawer/ProjectForm/ProjectForm.tsx | 7 +- .../src/page/Project/Drawer/UpdateProject.tsx | 14 +- .../Drawer/__tests__/AddProject.test.tsx | 2 +- .../ImportProject/FileUpload/index.tsx | 13 +- .../src/page/Project/ImportProject/index.tsx | 33 +- .../base/src/page/Project/List/columns.tsx | 6 +- .../base/src/page/Project/List/index.test.tsx | 2 +- packages/base/src/page/Project/List/index.tsx | 2 +- packages/base/src/page/Project/List/style.ts | 3 +- packages/base/src/page/Project/action.tsx | 3 +- packages/base/src/page/Project/index.test.tsx | 2 +- packages/base/src/page/Project/index.tsx | 25 +- .../ResourceDetail/ResourceTopology/index.tsx | 12 +- .../components/ResourceDetail/columns.tsx | 6 +- .../components/ResourceDetail/index.tsx | 2 +- .../components/Statistic/BaseInfo/index.tsx | 2 +- .../Statistic/DistributionChart/index.tsx | 8 +- .../base/src/page/ResourceOverview/index.tsx | 2 +- .../src/page/SyncDataSource/AddPage/index.tsx | 19 +- .../src/page/SyncDataSource/Form/index.tsx | 41 +- .../src/page/SyncDataSource/List/action.ts | 2 +- .../src/page/SyncDataSource/List/column.tsx | 8 +- .../page/SyncDataSource/List/index.test.tsx | 2 +- .../src/page/SyncDataSource/List/index.tsx | 2 +- .../page/SyncDataSource/UpdatePage/index.tsx | 30 +- .../page/System/GitSSHConfig/index.test.tsx | 2 +- .../src/page/System/GitSSHConfig/index.tsx | 12 +- .../CBOperationLogsExpiredHours.tsx | 11 +- .../OperationRecordExpiredHours.tsx | 10 +- .../components/UrlAddressPrefixTips.tsx | 10 +- .../components/useValidatorNumber.ts | 2 +- .../src/page/System/GlobalSetting/index.tsx | 5 +- .../System/License/Modal/ImportLicense.tsx | 19 +- .../base/src/page/System/License/action.tsx | 5 +- .../base/src/page/System/License/index.tsx | 2 +- .../LDAPSetting/components/ConfigField.tsx | 29 +- .../LoginConnection/LDAPSetting/index.tsx | 4 +- .../LoginBasicSetting/index.tsx | 19 +- .../Oauth/components/ConfigField.tsx | 12 +- .../System/LoginConnection/Oauth/index.tsx | 27 +- .../SMSSetting/__tests__/index.test.tsx | 2 +- .../components/ConfigExtraButtons.tsx | 34 +- .../SMSSetting/components/ConfigField.tsx | 23 +- .../LoginConnection/SMSSetting/index.tsx | 4 +- .../System/PersonalizeSetting/index.test.tsx | 2 +- .../page/System/PersonalizeSetting/index.tsx | 30 +- .../CodingSetting/__tests__/index.test.tsx | 2 +- .../components/ConfigExtraButtons.tsx | 34 +- .../CodingSetting/components/ConfigField.tsx | 20 +- .../ProcessConnection/CodingSetting/index.tsx | 6 +- .../components/ConfigExtraButtons.tsx | 13 +- .../components/ConfigField.tsx | 20 +- .../DingTalkSetting/index.tsx | 6 +- .../components/ConfigExtraButtons.tsx | 39 +- .../components/ConfigField.tsx | 18 +- .../LarkAuditSetting/index.ee.tsx | 6 +- .../components/ConfigExtraButtons.tsx | 33 +- .../components/ConfigField.tsx | 20 +- .../WechatAuditSetting/index.tsx | 6 +- .../conponents/ConfigExtraButtons.tsx | 36 +- .../LarkSetting/conponents/ConfigField.tsx | 20 +- .../PushNotification/LarkSetting/index.tsx | 4 +- .../components/ConfigExtraButtons.tsx | 31 +- .../SMTPSetting/components/ConfigField.tsx | 12 +- .../PushNotification/SMTPSetting/index.tsx | 21 +- .../components/ConfigExtraButtons.tsx | 17 +- .../WebhookSetting/components/ConfigField.tsx | 8 +- .../PushNotification/WebhookSetting/index.tsx | 4 +- .../Wechat/components/ConfigExtraButtons.tsx | 32 +- .../Wechat/components/ConfigField.tsx | 8 +- .../System/PushNotification/Wechat/index.tsx | 4 +- .../System/components/BasicTitle/index.tsx | 6 +- .../base/src/page/System/index.ce.test.tsx | 2 +- packages/base/src/page/System/index.test.tsx | 2 +- packages/base/src/page/System/index.tsx | 13 +- packages/base/src/page/Transit/index.tsx | 50 +- .../UserCenter/Drawer/Role/AddRole/index.tsx | 14 +- .../Drawer/Role/CloneRole/index.tsx | 16 +- .../UserCenter/Drawer/Role/RoleForm/index.tsx | 14 +- .../Drawer/Role/UpdateRole/index.tsx | 16 +- .../UserCenter/Drawer/User/AddUser/index.tsx | 14 +- .../Drawer/User/UpdateUser/index.tsx | 20 +- .../UserCenter/Drawer/User/UserForm/index.tsx | 11 +- .../page/UserCenter/__tests__/index.test.tsx | 2 +- packages/base/src/page/UserCenter/action.tsx | 1 - .../UserCenter/components/RoleList/List.tsx | 2 +- .../UserCenter/components/RoleList/column.tsx | 2 +- .../UserCenter/components/UserList/List.tsx | 2 +- .../UserList/__tests__/UserList.test.tsx | 2 +- .../UserCenter/components/UserList/action.ts | 2 +- .../UserCenter/components/UserList/column.tsx | 4 +- packages/base/src/page/UserCenter/index.tsx | 18 +- .../src/page/UserCenter/utils/generateTag.tsx | 3 +- packages/base/src/router/router.base.tsx | 2 +- packages/base/src/router/router.tsx | 2 +- .../base/src/store/availabilityZone/index.ts | 2 +- packages/base/src/store/cloudBeaver/index.ts | 2 +- packages/base/src/store/common/index.test.ts | 2 +- packages/base/src/store/common/index.ts | 2 +- packages/base/src/store/dataExport/index.ts | 2 +- packages/base/src/store/index.ts | 2 +- packages/base/src/store/member/index.ts | 2 +- packages/base/src/store/nav/index.ts | 2 +- packages/base/src/store/permission/index.ts | 2 +- packages/base/src/store/project/index.ts | 2 +- packages/base/src/store/system/index.test.ts | 2 +- packages/base/src/store/system/index.ts | 4 +- packages/base/src/store/user/index.test.ts | 4 +- packages/base/src/store/user/index.ts | 6 +- packages/base/src/store/userCenter/index.ts | 2 +- packages/base/src/testUtils/superRender.tsx | 2 +- packages/base/src/theme/dark/dataExport.ts | 2 +- packages/base/src/theme/dark/guidance.ts | 2 +- packages/base/src/theme/dark/sideMenu.ts | 2 +- packages/base/src/theme/dark/system.ts | 2 +- packages/base/src/theme/index.ts | 8 +- packages/base/src/theme/light/dataExport.ts | 2 +- packages/base/src/theme/light/guidance.ts | 2 +- packages/base/src/theme/light/sideMenu.ts | 2 +- packages/base/src/theme/light/system.ts | 2 +- packages/base/src/utils/EventEmitter.ts | 2 +- packages/base/tsconfig.json | 3 +- packages/base/vite.config.mts | 3 +- packages/dms-kit/.fatherrc.ts | 12 + packages/dms-kit/.npmrc | 2 + packages/dms-kit/README.md | 61 ++ packages/dms-kit/package.json | 48 ++ .../components/ActiontechTable/index.type.ts | 232 ++++++++ .../src/components/ActiontechTable/style.tsx | 171 ++++++ .../components/ActiontechTable/utils/index.ts | 75 +++ .../BasicButton/BasicButton.test.tsx | 0 .../components/BasicButton/BasicButton.tsx | 0 .../BasicButton/BasicButton.types.ts | 0 .../src}/components/BasicButton/README.md | 0 .../__snapshots__/BasicButton.test.tsx.snap | 0 .../src}/components/BasicButton/index.ts | 0 .../src}/components/BasicButton/style.ts | 0 .../BasicDatePicker/BasicDatePicker.test.tsx | 0 .../BasicDatePicker/BasicDatePicker.tsx | 0 .../BasicDatePicker/BasicDatePicker.types.ts | 0 .../src}/components/BasicDatePicker/README.md | 0 .../BasicDatePicker.test.tsx.snap | 0 .../src}/components/BasicDatePicker/index.ts | 0 .../src}/components/BasicDatePicker/style.ts | 0 .../BasicDrawer/BasicDrawer.test.tsx | 0 .../components/BasicDrawer/BasicDrawer.tsx | 0 .../BasicDrawer/BasicDrawer.types.ts | 0 .../src}/components/BasicDrawer/README.md | 0 .../__snapshots__/BasicDrawer.test.tsx.snap | 0 .../src}/components/BasicDrawer/index.ts | 0 .../src}/components/BasicDrawer/style.ts | 0 .../components/BasicEmpty/BasicEmpty.test.tsx | 0 .../src}/components/BasicEmpty/BasicEmpty.tsx | 0 .../components/BasicEmpty/BasicEmpty.types.ts | 0 .../src}/components/BasicEmpty/README.md | 0 .../__snapshots__/BasicEmpty.test.tsx.snap | 0 .../src}/components/BasicEmpty/index.ts | 0 .../src}/components/BasicEmpty/style.ts | 0 .../BasicInfoList/BasicInfoList.test.tsx | 0 .../BasicInfoList/BasicInfoList.tsx | 0 .../BasicInfoList/BasicInfoList.types.ts | 0 .../src}/components/BasicInfoList/README.md | 0 .../__snapshots__/BasicInfoList.test.tsx.snap | 0 .../src}/components/BasicInfoList/index.ts | 0 .../src}/components/BasicInfoList/style.ts | 0 .../src}/components/BasicInput/Input.tsx | 0 .../src}/components/BasicInput/Password.tsx | 0 .../src}/components/BasicInput/README.md | 0 .../src}/components/BasicInput/TextArea.tsx | 0 .../BasicInput/__tests__/Input.test.tsx | 0 .../BasicInput/__tests__/Password.test.tsx | 0 .../BasicInput/__tests__/TextArea.test.tsx | 0 .../__snapshots__/Input.test.tsx.snap | 0 .../__snapshots__/Password.test.tsx.snap | 0 .../__snapshots__/TextArea.test.tsx.snap | 0 .../src}/components/BasicInput/index.tsx | 0 .../src}/components/BasicInput/style.ts | 0 .../BasicInputNumber.test.tsx | 0 .../BasicInputNumber/BasicInputNumber.tsx | 0 .../BasicInputNumber.types.ts | 0 .../components/BasicInputNumber/README.md | 0 .../BasicInputNumber.test.tsx.snap | 0 .../src}/components/BasicInputNumber/index.ts | 0 .../src}/components/BasicInputNumber/style.ts | 16 +- .../components/BasicModal/BasicModal.test.tsx | 0 .../src}/components/BasicModal/BasicModal.tsx | 0 .../components/BasicModal/BasicModal.types.ts | 0 .../src}/components/BasicModal/README.md | 0 .../__snapshots__/BasicModal.test.tsx.snap | 0 .../src}/components/BasicModal/index.ts | 0 .../src}/components/BasicModal/style.ts | 0 .../BasicRangePicker.test.tsx | 0 .../BasicRangePicker/BasicRangePicker.tsx | 0 .../BasicRangePicker.types.ts | 0 .../components/BasicRangePicker/README.md | 0 .../BasicRangePicker.test.tsx.snap | 0 .../src}/components/BasicRangePicker/index.ts | 0 .../src}/components/BasicRangePicker/style.ts | 0 .../BasicResult/BasicResult.test.tsx | 0 .../components/BasicResult/BasicResult.tsx | 0 .../BasicResult/BasicResult.types.ts | 0 .../src}/components/BasicResult/README.md | 0 .../components/BasicResult/ResultIcon.tsx | 0 .../__snapshots__/BasicResult.test.tsx.snap | 0 .../src}/components/BasicResult/index.ts | 0 .../src}/components/BasicResult/style.ts | 0 .../BasicSegmented/BasicSegmented.test.tsx | 0 .../BasicSegmented/BasicSegmented.tsx | 0 .../BasicSegmented/BasicSegmented.types.ts | 0 .../src}/components/BasicSegmented/README.md | 0 .../BasicSegmented.test.tsx.snap | 0 .../src}/components/BasicSegmented/index.ts | 0 .../src}/components/BasicSegmented/style.ts | 0 .../BasicSelect/BasicSelect.test.tsx | 0 .../components/BasicSelect/BasicSelect.tsx | 0 .../BasicSelect/BasicSelect.types.ts | 0 .../src}/components/BasicSelect/README.md | 0 .../__snapshots__/BasicSelect.test.tsx.snap | 0 .../src}/components/BasicSelect/index.ts | 0 .../src}/components/BasicSelect/style.ts | 0 .../components/BasicSelect/utils/index.ts | 0 .../BasicSwitch/BasicSwitch.test.tsx | 0 .../components/BasicSwitch/BasicSwitch.tsx | 0 .../BasicSwitch/BasicSwitch.types.ts | 0 .../src}/components/BasicSwitch/README.md | 0 .../__snapshots__/BasicSwitch.test.tsx.snap | 0 .../src}/components/BasicSwitch/index.ts | 0 .../src}/components/BasicSwitch/style.ts | 0 .../components/BasicTable/BasicTable.test.tsx | 0 .../src}/components/BasicTable/BasicTable.tsx | 0 .../components/BasicTable/BasicTable.types.ts | 0 .../src}/components/BasicTable/README.md | 0 .../__snapshots__/BasicTable.test.tsx.snap | 0 .../src}/components/BasicTable/index.ts | 0 .../components/BasicTag/BasicTag.test.tsx | 0 .../src}/components/BasicTag/BasicTag.tsx | 0 .../components/BasicTag/BasicTag.types.ts | 0 .../src}/components/BasicTag/README.md | 0 .../__snapshots__/BasicTag.test.tsx.snap | 0 .../src}/components/BasicTag/index.ts | 0 .../src}/components/BasicTag/style.ts | 0 .../BasicToolTip/BasicToolTip.test.tsx | 0 .../components/BasicToolTip/BasicToolTip.tsx | 0 .../BasicToolTip/BasicToolTip.types.ts | 0 .../src}/components/BasicToolTip/README.md | 0 .../__snapshots__/BasicToolTip.test.tsx.snap | 0 .../src}/components/BasicToolTip/index.ts | 0 .../src}/components/BasicToolTip/style.ts | 0 .../components/BasicToolTip/utils/index.tsx | 0 .../BasicTreeSelect/BasicTreeSelect.test.tsx | 0 .../BasicTreeSelect/BasicTreeSelect.tsx | 0 .../BasicTreeSelect/BasicTreeSelect.types.ts | 0 .../src}/components/BasicTreeSelect/README.md | 0 .../BasicTreeSelect.test.tsx.snap | 0 .../src}/components/BasicTreeSelect/index.ts | 0 .../src}/components/BasicTreeSelect/style.ts | 18 +- .../src}/components/ConfigItem/ConfigItem.tsx | 0 .../components/ConfigItem/ConfigItem.types.ts | 0 .../src}/components/ConfigItem/README.md | 0 .../ConfigItem/__tests__/ConfigItem.test.tsx | 0 .../ConfigItem/__tests__/EditInput.test.tsx | 0 .../__tests__/EditInputNumber.test.tsx | 0 .../__tests__/ImageUploader.test.tsx | 0 .../__tests__/LabelContent.test.tsx | 0 .../__snapshots__/ConfigItem.test.tsx.snap | 0 .../__snapshots__/EditInput.test.tsx.snap | 0 .../EditInputNumber.test.tsx.snap | 0 .../__snapshots__/ImageUploader.test.tsx.snap | 0 .../__snapshots__/LabelContent.test.tsx.snap | 0 .../ConfigItem/components/EditInput.tsx | 0 .../ConfigItem/components/EditInputNumber.tsx | 0 .../ConfigItem/components/ImageUploader.tsx | 0 .../ConfigItem/components/LabelContent.tsx | 0 .../hooks/useHideConfigInputNode.tsx | 0 .../src}/components/ConfigItem/index.ts | 0 .../src}/components/ConfigItem/style.ts | 0 .../components/CopyIcon/CopyIcon.test.tsx | 0 .../src}/components/CopyIcon/CopyIcon.tsx | 0 .../components/CopyIcon/CopyIcon.types.ts | 0 .../src}/components/CopyIcon/README.md | 0 .../__snapshots__/CopyIcon.test.tsx.snap | 0 .../src}/components/CopyIcon/index.tsx | 0 .../src}/components/CopyIcon/style.ts | 0 .../components/CronInput/CronInput.data.ts | 0 .../components/CronInput/CronInput.enum.ts | 0 .../components/CronInput/CronInput.test.tsx | 0 .../src}/components/CronInput/CronInput.tsx | 0 .../components/CronInput/CronInput.types.ts | 0 .../src}/components/CronInput/README.md | 0 .../__snapshots__/CronInput.test.tsx.snap | 0 .../src}/components/CronInput/index.ts | 0 .../src}/components/CronInput/style.ts | 0 .../CronInput/useCron/cron.tool.test.ts | 0 .../components/CronInput/useCron/cron.tool.ts | 0 .../CronInput/useCron/index.test.tsx | 0 .../components/CronInput/useCron/index.tsx | 0 .../CronInput/useCron/index.type.ts | 0 .../CustomAvatar/CustomAvatar.test.tsx | 0 .../components/CustomAvatar/CustomAvatar.tsx | 0 .../CustomAvatar/CustomAvatar.types.ts | 0 .../src}/components/CustomAvatar/README.md | 0 .../__snapshots__/CustomAvatar.test.tsx.snap | 0 .../src}/components/CustomAvatar/index.ts | 0 .../src}/components/CustomAvatar/style.ts | 0 .../CustomDraggerUpload.test.tsx | 0 .../CustomDraggerUpload.tsx | 0 .../CustomDraggerUpload.types.ts | 0 .../components/CustomDraggerUpload/README.md | 0 .../CustomDraggerUpload.test.tsx.snap | 0 .../components/CustomDraggerUpload/index.ts | 0 .../components/CustomDraggerUpload/style.ts | 0 .../FormItem/CustomLabelContent.tsx | 0 .../FormItem/FormInputBotBorder.tsx | 0 .../CustomForm/FormItem/FormItem.types.ts | 0 .../CustomForm/FormItem/FormItemLabel.tsx | 0 .../CustomForm/FormItem/FormItemNoLabel.tsx | 0 .../__tests__/CustomLabelContent.test.tsx | 0 .../__tests__/FormInputBotBorder.test.tsx | 0 .../FormItem/__tests__/FormItemLabel.test.tsx | 0 .../__tests__/FormItemNoLabel.test.tsx | 0 .../CustomLabelContent.test.tsx.snap | 0 .../FormInputBotBorder.test.tsx.snap | 0 .../__snapshots__/FormItemLabel.test.tsx.snap | 0 .../FormItemNoLabel.test.tsx.snap | 0 .../components/CustomForm/FormItem/style.ts | 0 .../FormItemTitle/FormItemBigTitle.tsx | 0 .../FormItemTitle/FormItemSubTitle.tsx | 0 .../FormItemTitle/FormItemTitle.types.ts | 0 .../__tests__/FormItemBigTitle.test.tsx | 0 .../__tests__/FormItemSubTitle.test.tsx | 0 .../FormItemBigTitle.test.tsx.snap | 0 .../FormItemSubTitle.test.tsx.snap | 0 .../CustomForm/FormItemTitle/style.ts | 0 .../src}/components/CustomForm/README.md | 0 .../src}/components/CustomForm/index.ts | 0 .../src}/components/CustomForm/style.ts | 0 .../CustomInput/CustomInput.test.tsx | 0 .../components/CustomInput/CustomInput.tsx | 0 .../CustomInput/CustomInput.types.ts | 0 .../src}/components/CustomInput/README.md | 0 .../__snapshots__/CustomInput.test.tsx.snap | 0 .../src}/components/CustomInput/index.ts | 0 .../src}/components/CustomInput/style.ts | 0 .../CustomSegmentedFilter.tsx | 0 .../CustomSegmentedFilter.types.ts | 0 .../CustomSegmentedFilter/README.md | 0 .../__tests__/CustomSegmentedFilter.test.tsx | 0 .../CustomSegmentedFilter.test.tsx.snap | 0 .../components/CustomSegmentedFilter/index.ts | 0 .../CustomSelect/CustomOptionLabel.tsx | 0 .../CustomSelect/CustomPlaceholder.tsx | 0 .../components/CustomSelect/CustomSelect.tsx | 0 .../CustomSelect/CustomSelect.types.ts | 0 .../CustomSelect/CustomSelectSearchInput.tsx | 0 .../src}/components/CustomSelect/README.md | 0 .../__tests__/CustomOptionLabel.test.tsx | 0 .../__tests__/CustomPlaceholder.test.tsx | 0 .../__tests__/CustomSelect.test.tsx | 0 .../CustomSelectSearchInput.test.tsx | 0 .../CustomOptionLabel.test.tsx.snap | 0 .../CustomPlaceholder.test.tsx.snap | 0 .../__snapshots__/CustomSelect.test.tsx.snap | 0 .../CustomSelectSearchInput.test.tsx.snap | 0 .../src}/components/CustomSelect/index.ts | 0 .../src}/components/CustomSelect/style.ts | 0 .../DatabaseTypeLogo.test.tsx | 0 .../DatabaseTypeLogo/DatabaseTypeLogo.tsx | 0 .../DatabaseTypeLogo.types.ts | 0 .../components/DatabaseTypeLogo/README.md | 0 .../DatabaseTypeLogo.test.tsx.snap | 0 .../src}/components/DatabaseTypeLogo/index.ts | 0 .../src}/components/DatabaseTypeLogo/style.ts | 0 .../components/EditText/EditText.test.tsx | 0 .../src}/components/EditText/EditText.tsx | 0 .../components/EditText/EditText.types.ts | 0 .../src}/components/EditText/README.md | 0 .../__snapshots__/EditText.test.tsx.snap | 0 .../src}/components/EditText/index.ts | 0 .../src}/components/EditText/style.ts | 0 .../EditableSelect/EditableSelect.tsx | 0 .../__tests__/EditableSelect.test.tsx | 0 .../EditableSelect.test.tsx.snap | 0 .../src}/components/EditableSelect/index.ts | 0 .../components/EditableSelect/index.type.ts | 0 .../src}/components/EditableSelect/style.ts | 0 .../components/EmptyBox/EmptyBox.test.tsx | 0 .../src}/components/EmptyBox/EmptyBox.tsx | 0 .../components/EmptyBox/EmptyBox.types.ts | 0 .../src}/components/EmptyBox/README.md | 0 .../src}/components/EmptyBox/index.ts | 0 .../HeaderProgress/HeaderProgress.test.tsx | 0 .../HeaderProgress/HeaderProgress.tsx | 0 .../src}/components/HeaderProgress/README.md | 0 .../src}/components/HeaderProgress/index.ts | 0 .../LazyLoadComponent/LazyLoadComponent.tsx | 0 .../LazyLoadComponent.types.ts | 0 .../components/LazyLoadComponent/README.md | 0 .../__tests__/index.test.tsx | 0 .../components/LazyLoadComponent/index.ts | 0 .../components/LazyLoadComponent/style.ts | 0 .../ModeSwitcher/ModeSwitcher.test.tsx | 0 .../components/ModeSwitcher/ModeSwitcher.tsx | 0 .../ModeSwitcher/ModeSwitcher.types.ts | 0 .../src}/components/ModeSwitcher/README.md | 0 .../__snapshots__/ModeSwitcher.test.tsx.snap | 0 .../src}/components/ModeSwitcher/index.ts | 0 .../src}/components/ModeSwitcher/style.ts | 0 .../components/PageHeader/PageHeader.test.tsx | 0 .../src}/components/PageHeader/PageHeader.tsx | 0 .../components/PageHeader/PageHeader.types.ts | 0 .../src}/components/PageHeader/README.md | 0 .../__snapshots__/PageHeader.test.tsx.snap | 0 .../src}/components/PageHeader/index.ts | 0 .../src}/components/PageHeader/style.ts | 0 .../components/ReminderInformation/README.md | 0 .../ReminderInformation.tsx | 0 .../ReminderInformation.types.ts | 0 .../__tests__/ReminderInformation.test.tsx | 0 .../ReminderInformation.test.tsx.snap | 0 .../components/ReminderInformation/index.ts | 0 .../components/ReminderInformation/style.ts | 0 .../src}/components/SegmentedTabs/README.md | 0 .../SegmentedTabs/SegmentedTabs.test.tsx | 0 .../SegmentedTabs/SegmentedTabs.tsx | 0 .../SegmentedTabs/SegmentedTabs.types.ts | 0 .../__snapshots__/SegmentedTabs.test.tsx.snap | 0 .../src}/components/SegmentedTabs/index.ts | 0 .../components/SensitiveDisplay/README.md | 0 .../SensitiveDisplay.test.tsx | 0 .../SensitiveDisplay/SensitiveDisplay.tsx | 0 .../SensitiveDisplay.types.ts | 0 .../SensitiveDisplay.test.tsx.snap | 0 .../src}/components/SensitiveDisplay/index.ts | 0 .../src}/components/SensitiveDisplay/style.ts | 0 .../src}/components/SpinIndicator/README.md | 0 .../SpinIndicator/SpinIndicator.test.tsx | 0 .../SpinIndicator/SpinIndicator.tsx | 0 .../SpinIndicator/SpinIndicator.types.ts | 0 .../__snapshots__/SpinIndicator.test.tsx.snap | 0 .../src}/components/SpinIndicator/index.ts | 0 .../SystemConfigurationHub/README.md | 0 .../__snapshots__/index.test.tsx.snap | 0 .../components/ConfigModifyBtn/index.test.tsx | 4 +- .../components/ConfigModifyBtn/index.tsx | 0 .../components/ConfigModifyBtn/style.ts | 0 .../__snapshots__/index.test.tsx.snap | 0 .../ConfigSubmitButtonField/index.test.tsx | 0 .../ConfigSubmitButtonField/index.tsx | 0 .../components/ConfigSwitch/index.test.tsx | 0 .../components/ConfigSwitch/index.tsx | 5 +- .../__snapshots__/index.test.tsx.snap | 0 .../components/ConfigTestBtn/index.test.tsx | 0 .../components/ConfigTestBtn/index.tsx | 0 .../__snapshots__/index.test.tsx.snap | 0 .../ConfigTestPopoverForm/index.test.tsx | 0 .../ConfigTestPopoverForm/index.tsx | 0 .../useConfigRender.test.tsx.snap | 0 .../useConfigSwitchControls.test.tsx.snap | 0 .../hooks/__tests__/useConfigRender.test.tsx | 0 .../useConfigSwitchControls.test.tsx | 0 .../hooks/useConfigRender.tsx | 0 .../hooks/useConfigSwitchControls.ts | 0 .../SystemConfigurationHub/index.ts | 0 .../SystemConfigurationHub/style.ts | 0 .../TestDatabaseConnectButton/README.md | 0 .../TestDatabaseConnectButton.test.tsx | 0 .../TestDatabaseConnectButton.tsx | 0 .../TestDatabaseConnectButton.types.ts | 0 .../TestDatabaseConnectButton.test.tsx.snap | 0 .../TestDatabaseConnectButton/index.ts | 0 .../TestDatabaseConnectButton/style.ts | 0 .../src}/components/ToggleTokens/README.md | 0 .../ToggleTokens/ToggleTokens.test.tsx | 0 .../components/ToggleTokens/ToggleTokens.tsx | 0 .../ToggleTokens/ToggleTokens.types.ts | 0 .../__snapshots__/ToggleTokens.test.tsx.snap | 0 .../src}/components/ToggleTokens/index.ts | 0 .../src}/components/ToggleTokens/style.ts | 0 .../VerificationCodeInput.tsx | 0 .../__tests__/VerificationCodeInput.test.tsx | 0 .../VerificationCodeInput.test.tsx.snap | 0 .../VerificationCodeInput/index.tsx | 0 .../components/VerificationCodeInput/style.ts | 0 .../lib => dms-kit/src}/data/EmitterKey.ts | 0 .../lib => dms-kit/src}/data/common.ts | 0 .../lib => dms-kit/src}/data/routePaths.ts | 0 .../{shared/lib => dms-kit/src}/enum/index.ts | 0 .../publish-entry.ts => dms-kit/src/index.ts} | 10 +- .../src}/locale/en-US/common.ts | 0 .../lib => dms-kit/src}/locale/en-US/index.ts | 0 .../lib => dms-kit/src}/locale/index.ts | 0 .../src}/locale/zh-CN/common.ts | 0 .../lib => dms-kit/src}/locale/zh-CN/index.ts | 0 .../lib => dms-kit/src}/providers/index.tsx | 0 .../lib => dms-kit/src}/providers/locale.tsx | 0 .../lib => dms-kit/src}/providers/theme.tsx | 0 .../src}/styleWrapper/element.ts | 0 .../lib => dms-kit/src}/styleWrapper/nav.ts | 0 packages/dms-kit/src/testUtil/common.tsx | 62 ++ packages/dms-kit/src/testUtil/customQuery.ts | 139 +++++ packages/dms-kit/src/testUtil/index.ts | 3 + packages/dms-kit/src/testUtil/superRender.tsx | 101 ++++ .../lib => dms-kit/src}/theme/dark/basic.ts | 0 .../src}/theme/dark/components/button.ts | 0 .../src}/theme/dark/components/chart.ts | 0 .../theme/dark/components/columnsSetting.ts | 0 .../src}/theme/dark/components/configItem.ts | 0 .../theme/dark/components/customFilter.ts | 0 .../theme/dark/components/customSelect.ts | 0 .../theme/dark/components/draggerUpload.ts | 0 .../src}/theme/dark/components/drawer.ts | 0 .../src}/theme/dark/components/empty.ts | 0 .../theme/dark/components/filterContainer.ts | 0 .../src}/theme/dark/components/index.ts | 0 .../src}/theme/dark/components/infoList.ts | 0 .../src}/theme/dark/components/input.ts | 0 .../src}/theme/dark/components/modal.ts | 0 .../theme/dark/components/monacoEditor.ts | 0 .../src}/theme/dark/components/pageHeader.ts | 0 .../src}/theme/dark/components/rangePicker.ts | 0 .../src}/theme/dark/components/result.ts | 0 .../theme/dark/components/ruleComponent.ts | 0 .../src}/theme/dark/components/searchInput.ts | 0 .../src}/theme/dark/components/segmented.ts | 0 .../src}/theme/dark/components/select.ts | 0 .../src}/theme/dark/components/table.ts | 0 .../src}/theme/dark/components/tag.ts | 0 .../src}/theme/dark/components/toolbar.ts | 0 .../lib => dms-kit/src}/theme/dark/index.ts | 0 .../lib => dms-kit/src}/theme/dark/nav.ts | 0 .../lib => dms-kit/src}/theme/light/basic.ts | 0 .../src}/theme/light/components/button.ts | 0 .../src}/theme/light/components/chart.ts | 0 .../theme/light/components/columnsSetting.ts | 0 .../src}/theme/light/components/configItem.ts | 0 .../theme/light/components/customFilter.ts | 0 .../theme/light/components/customSelect.ts | 0 .../theme/light/components/draggerUpload.ts | 0 .../src}/theme/light/components/drawer.ts | 0 .../src}/theme/light/components/empty.ts | 0 .../theme/light/components/filterContainer.ts | 0 .../src}/theme/light/components/index.ts | 0 .../src}/theme/light/components/infoList.ts | 0 .../src}/theme/light/components/input.ts | 0 .../src}/theme/light/components/modal.ts | 0 .../theme/light/components/monacoEditor.ts | 0 .../src}/theme/light/components/pageHeader.ts | 0 .../theme/light/components/rangePicker.ts | 0 .../src}/theme/light/components/result.ts | 0 .../theme/light/components/ruleComponent.ts | 0 .../theme/light/components/searchInput.ts | 0 .../src}/theme/light/components/segmented.ts | 0 .../src}/theme/light/components/select.ts | 0 .../src}/theme/light/components/table.ts | 0 .../src}/theme/light/components/tag.ts | 0 .../src}/theme/light/components/toolbar.ts | 0 .../lib => dms-kit/src}/theme/light/index.ts | 0 .../lib => dms-kit/src}/theme/light/nav.ts | 0 .../lib => dms-kit/src}/theme/theme.type.ts | 0 packages/dms-kit/src/types/common.type.ts | 45 ++ packages/dms-kit/src/types/theme.type.ts | 86 +++ .../lib => dms-kit/src}/utils/Common.ts | 0 .../{shared/lib => dms-kit/src}/utils/Copy.ts | 0 .../lib => dms-kit/src}/utils/Download.ts | 0 .../lib => dms-kit/src}/utils/EventEmitter.ts | 0 .../lib => dms-kit/src}/utils/FormRule.ts | 0 .../lib => dms-kit/src}/utils/FormatterSQL.ts | 0 .../src}/utils/HighlightCode.ts | 0 .../src}/utils/LocalStorageWrapper.ts | 0 .../{shared/lib => dms-kit/src}/utils/Math.ts | 0 .../{shared/lib => dms-kit/src}/utils/Tool.ts | 0 .../src}/utils/__tests__/Common.test.ts | 0 .../src}/utils/__tests__/Copy.test.ts | 0 .../src}/utils/__tests__/Download.test.ts | 0 .../src}/utils/__tests__/EventEmitter.test.ts | 0 .../src}/utils/__tests__/FormRule.test.ts | 0 .../src}/utils/__tests__/FormatSQL.test.ts | 0 .../__tests__/LocalStorageWrapper.test.tsx | 0 .../src}/utils/__tests__/Math.test.ts | 0 .../src}/utils/__tests__/Tool.test.ts | 0 .../__tests__/__snapshots__/Copy.test.ts.snap | 0 .../__snapshots__/FormatSQL.test.ts.snap | 0 .../lib => dms-kit/src}/utils/index.ts | 0 packages/dms-kit/tsconfig.json | 22 + packages/shared/PUBLISH.md | 124 ---- .../lib/api/common/ApiBase/index.test.ts | 6 +- .../shared/lib/api/common/ApiBase/index.ts | 12 +- .../lib/api/common/authInvalid/index.test.tsx | 8 +- .../lib/api/common/authInvalid/index.ts | 13 +- packages/shared/lib/api/sqle/utils/Api.ts | 2 +- .../components/ActionButton/ActionButton.tsx | 8 +- .../ActionButton/ActionButton.types.ts | 3 +- .../components/ColumnsItems.tsx | 2 +- .../components/ColumnsSetting.tsx | 6 +- .../components/FilterButton.tsx | 2 +- .../components/RefreshButton.tsx | 2 +- .../ActiontechTable/components/style.ts | 3 +- .../components/test/ColumnsSetting.test.tsx | 4 +- .../hooks/test/useCustomFilter.test.tsx | 2 +- .../hooks/test/useTableSettings.test.tsx | 6 +- .../ActiontechTable/hooks/useCustomFilter.tsx | 7 +- .../ActiontechTable/hooks/useTableAction.tsx | 3 +- .../hooks/useTableRequestError.tsx | 2 +- .../hooks/useTableSettings.tsx | 6 +- .../components/ActiontechTable/index.type.ts | 8 +- .../lib/components/BackButton/BackButton.tsx | 2 +- .../components/BasicChart/BasicChart.test.tsx | 10 +- .../lib/components/BasicChart/BasicChart.tsx | 2 +- .../BasicTypographyEllipsis.tsx | 2 +- .../EnterpriseFeatureDisplay.tsx | 8 +- .../EnterpriseFeatureDisplay.types.ts | 3 +- .../components/VersionComparison.tsx | 3 +- .../EnterpriseFeatureDisplay/style.ts | 2 +- .../SQLRenderer/__tests__/Snippet.test.tsx | 2 +- .../SQLRenderer/component/Snippet.tsx | 3 +- .../SQLRenderer/hooks/useRenderCopyIcon.tsx | 3 +- .../hooks/useRenderSQLTemplate.tsx | 2 +- packages/shared/lib/components/index.ts | 48 +- .../features/useChangeTheme/index.test.tsx | 2 +- .../lib/features/useChangeTheme/index.ts | 2 +- .../features/useCurrentProject/index.test.ts | 2 +- .../lib/features/useCurrentUser/index.test.ts | 2 +- .../lib/features/useCurrentUser/index.ts | 2 +- .../lib/features/useDbServiceDriver/index.tsx | 3 +- .../usePermission/__tests__/index.test.ts | 2 +- .../usePermission/permissionManifest.ts | 2 +- .../shared/lib/features/useUserInfo/index.ts | 10 +- .../useNotificationContext/index.test.tsx | 5 +- .../hooks/useNotificationContext/index.tsx | 4 +- packages/shared/lib/index.ts | 1 - packages/shared/lib/testUtil/common.tsx | 66 +-- packages/shared/lib/testUtil/customQuery.ts | 152 +---- .../lib/testUtil/mockApi/base/global/data.ts | 2 +- .../testUtil/mockApi/base/project/index.ts | 2 +- .../mockApi/sqle/execWorkflow/index.ts | 2 +- .../mockApi/sqle/rule_template/index.ts | 2 +- .../shared/lib/testUtil/mockHook/data.tsx | 10 +- packages/shared/lib/testUtil/superRender.tsx | 39 +- packages/shared/lib/types/common.type.ts | 55 +- packages/shared/lib/types/theme.type.ts | 2 +- packages/shared/package.json | 3 +- packages/shared/package_publish.json | 63 -- packages/shared/publish-shared.mjs | 318 ---------- packages/shared/tsconfig.build.json | 9 - packages/shared/tsup.config.js | 108 ---- packages/sqle/package.json | 1 + .../components/AuditResultMessage/index.tsx | 9 +- .../components/AuditResultMessage/style.ts | 7 +- .../BackendForm/AutoCreatedFormItemByApi.tsx | 21 +- .../FormPasswordWithPlaceholder.tsx | 8 +- .../ChartCom/ChartTooltip/index.tsx | 2 +- .../ChartCom/ChartWrapper/index.tsx | 6 +- .../ChartCom/TableTopList/index.tsx | 6 +- .../src/components/ReportDrawer/index.tsx | 12 +- .../sqle/src/components/RuleDetail/index.tsx | 20 +- .../sqle/src/components/RuleDetail/style.ts | 2 +- .../RuleList/RuleDetailModal/RuleBaseInfo.tsx | 11 +- .../RuleList/RuleDetailModal/index.tsx | 10 +- .../RuleFilterCommonFields/index.tsx | 9 +- .../sqle/src/components/RuleList/RuleList.tsx | 23 +- .../sqle/src/components/RuleList/style.ts | 21 +- .../OverallRewrittenSuggestion.test.tsx | 2 +- .../RewriteProgressDisplay.test.tsx | 2 +- .../RewrittenSuggestionDetails.test.tsx | 2 +- .../BusinessRewrittenDetails.tsx | 7 +- .../Common/RewrittenSqlCommonEditor/index.tsx | 6 +- .../components/Common/actions.tsx | 9 +- .../CustomLoadingIndicator/index.tsx | 4 +- .../DependDatabaseStructure/index.tsx | 6 +- .../OverallRewrittenItem.tsx | 5 +- .../OverallRewrittenSuggestion/index.tsx | 12 +- .../hooks/useAsyncRewriteProgress.ts | 4 +- .../hooks/useAsyncRewriteProgress.utils.ts | 2 +- .../RewriteProgressDisplay/index.tsx | 40 +- .../RewrittenSuggestionItem.tsx | 16 +- .../SqlRewrittenDrawer/index.ce.tsx | 6 +- .../SqlRewrittenDrawer/index.ee.tsx | 13 +- packages/sqle/src/data/common.ts | 11 +- .../useBackendTable/useBackendTable.test.tsx | 2 +- .../hooks/useBackendTable/useBackendTable.tsx | 2 +- .../sqle/src/hooks/useDatabaseType/index.tsx | 9 +- packages/sqle/src/hooks/useInstance/index.tsx | 13 +- .../src/hooks/useRuleCategories/index.tsx | 2 +- .../useRuleTemplateForm/useBackToListPage.ts | 2 +- .../useImportRuleTemplateForm.ts | 4 +- .../src/hooks/useRuleVersionTips/index.tsx | 4 +- .../src/hooks/useSQLAuditRecordTag/index.tsx | 15 +- .../src/hooks/useSQLVersionTips/index.tsx | 2 +- .../src/hooks/useServiceEnvironment/index.ts | 2 +- packages/sqle/src/locale/index.ts | 14 +- .../CustomRule/CreateCustomRule/index.tsx | 12 +- .../CustomRuleForm/BaseInfoForm.tsx | 25 +- .../CustomRuleForm/CustomRuleForm.tsx | 4 +- .../CustomRuleForm/EditRuleScript.tsx | 4 +- .../CustomRuleList/CustomRuleList.tsx | 29 +- .../useCustomRuleFilterForm.tsx | 2 +- .../CustomRule/UpdateCustomRule/index.tsx | 25 +- .../hooks/useCustomRuleTemplateForm.tsx | 2 +- .../__tests__/ComparisonTreeNode.test.tsx | 2 +- .../ComparisonEntry/actions.tsx | 20 +- .../ComparisonDetailDrawer/index.tsx | 30 +- .../ComparisonDetailDrawer/style.ts | 2 +- .../component/EnvironmentSelector/index.tsx | 9 +- .../ModifiedSqlAuditResult/index.tsx | 9 +- .../component/ModifiedSqlDrawer/index.tsx | 7 +- .../component/SqlAuditResult/index.tsx | 18 +- .../hooks/useComparisonResultTree.tsx | 15 +- .../hooks/useDataSourceSelectorTree.tsx | 31 +- .../ComparisonEntry/index.tsx | 46 +- .../ComparisonEntry/style.ts | 2 +- .../src/page/DataSourceComparison/index.tsx | 5 +- .../__tests__/index.test.tsx | 2 +- .../List/InitiatedWorkOrder/index.tsx | 2 +- .../List/PendingSql/PendingSqlList.tsx | 2 +- .../List/PendingSql/column.tsx | 4 +- .../PendingWorkOrder/__tests__/index.test.tsx | 2 +- .../List/PendingWorkOrder/column.tsx | 14 +- .../List/PendingWorkOrder/index.tsx | 2 +- .../components/TableFilter/index.tsx | 2 +- .../hooks/useDashboardFilter.ts | 4 +- .../sqle/src/page/GlobalDashboard/index.tsx | 14 +- .../CloneRuleTemplateModal/index.tsx | 15 +- .../CreateRuleTemplate/index.tsx | 20 +- .../ExportRuleTemplate/index.tsx | 24 +- .../ImportRuleTemplate/index.test.tsx | 2 +- .../ImportRuleTemplate/index.tsx | 33 +- .../Drawer/CloneRuleTemplate/index.tsx | 2 +- .../RuleTemplateList/action.tsx | 2 +- .../RuleTemplateList/column.tsx | 116 ++-- .../RuleTemplateList/index.tsx | 2 +- .../UpdateRuleTemplate/index.tsx | 30 +- .../page/Home/AuditPlanRiskList/columns.tsx | 4 +- .../sqle/src/page/Home/CommonTable/column.tsx | 19 +- .../sqle/src/page/Home/DBAPanel/index.tsx | 16 +- .../sqle/src/page/Home/DEVPanel/index.tsx | 17 +- packages/sqle/src/page/Home/index.tsx | 8 +- .../TagSelectorBar/index.tsx | 15 +- .../Common/KnowledgeSearchBar/index.tsx | 19 +- .../Graph/components/NodePopover.tsx | 2 +- .../RefineResults/__tests__/index.test.tsx | 2 +- .../page/Knowledge/RefineResults/index.tsx | 22 +- packages/sqle/src/page/Knowledge/index.ee.tsx | 17 +- .../src/page/OperationRecord/List/column.tsx | 2 +- .../src/page/OperationRecord/List/index.tsx | 23 +- .../components/OperationStatus.tsx | 2 +- .../sqle/src/page/OperationRecord/index.tsx | 6 +- .../Common/BackToList/index.tsx | 8 +- .../PipelineNodeField/NodeModal/index.tsx | 54 +- .../PipelineNodeField/index.tsx | 32 +- .../usePipelineConfigurationFormState.ts | 2 +- .../Common/ConfigurationForm/index.tsx | 27 +- .../PipelineConfiguration/Common/style.ts | 5 +- .../PipelineConfiguration/Create/index.tsx | 14 +- .../Drawer/PipelineDetailDrawer/column.tsx | 7 +- .../Drawer/PipelineDetailDrawer/index.tsx | 56 +- .../PipelineConfiguration/List/actions.tsx | 2 +- .../PipelineConfiguration/List/column.tsx | 9 +- .../page/PipelineConfiguration/List/index.tsx | 40 +- .../PipelineConfiguration/Update/index.tsx | 22 +- .../src/page/PluginAudit/List/columns.tsx | 7 +- .../src/page/PluginAudit/List/index.test.tsx | 2 +- .../sqle/src/page/PluginAudit/List/index.tsx | 41 +- .../PluginAudit/components/DefaultPrompts.tsx | 12 +- packages/sqle/src/page/PluginAudit/index.tsx | 5 +- .../DataSourceCount/ToolTipCustomContent.tsx | 4 +- .../component/DataSourceCount/index.tsx | 29 +- .../DataSourcePerformance/index.data.tsx | 4 +- .../OptimizationDistribution/index.data.tsx | 2 +- .../OptimizationDistribution/index.tsx | 22 +- .../component/OrderRiskList/index.tsx | 39 +- .../component/OrderStatus/actions.tsx | 7 +- .../component/OrderStatus/index.tsx | 2 +- .../component/ProjectScore/index.tsx | 2 +- .../component/ScanRiskList/index.tsx | 20 +- .../ScanTask/charts/TaskDetail/index.data.tsx | 4 +- .../ScanTask/charts/TaskDetail/index.tsx | 2 +- .../ScanTask/charts/TaskList/index.data.tsx | 2 +- .../ScanTask/charts/TaskList/index.test.tsx | 2 +- .../component/ScanTask/index.tsx | 14 +- .../component/SqlCount/index.tsx | 4 +- .../hooks/useChatsDataByAPI.ts | 2 +- .../sqle/src/page/ProjectOverview/index.tsx | 16 +- .../SqlManagementIssuePush/ConfigFields.tsx | 15 +- .../__tests__/index.test.tsx | 2 +- .../SqlManagementIssuePush/index.tsx | 35 +- .../__tests__/index.test.tsx | 2 +- .../WorkflowUpdateNotifier/index.tsx | 22 +- .../src/page/PushRuleConfiguration/index.tsx | 8 +- .../component/cardNumberShow/index.tsx | 6 +- .../charts/DatabaseSourceOrder/index.tsx | 6 +- .../charts/DatabaseTypeOrder/index.tsx | 6 +- .../charts/LicenseStatistics/index.tsx | 2 +- .../LicenseStatistics/licenseColumn.tsx | 4 +- .../charts/OrderQuantityTrend/index.tsx | 32 +- .../component/charts/WorkOrderState/index.tsx | 4 +- .../charts/WorkOrderState/useOrderStateBar.ts | 2 +- .../topList/ColumnProgress/index.tsx | 2 +- .../topList/DiffOrderReject/index.tsx | 2 +- .../topList/SqlOnLineSpendTime/index.tsx | 2 +- .../EEIndex/hooks/usePanelCommonRequest.ts | 2 +- .../page/ReportStatistics/EEIndex/index.tsx | 8 +- .../sqle/src/page/ReportStatistics/index.tsx | 8 +- .../Rule/RuleListFilter/CustomSelectField.tsx | 5 +- .../src/page/Rule/RuleListFilter/hooks.ts | 2 +- .../src/page/Rule/RuleListFilter/index.tsx | 4 +- packages/sqle/src/page/Rule/index.test.tsx | 46 +- packages/sqle/src/page/Rule/index.tsx | 20 +- .../MarkdownPreview/components/style.ts | 6 +- .../RuleKnowledge/RuleUnderstand/index.tsx | 12 +- .../sqle/src/page/RuleKnowledge/actions.tsx | 1 - .../PageHeaderExtraAction/index.tsx | 6 +- .../src/page/RuleKnowledge/index.test.tsx | 2 +- .../sqle/src/page/RuleKnowledge/index.tsx | 23 +- .../page/RuleManager/__tests__/index.test.tsx | 2 +- packages/sqle/src/page/RuleManager/action.tsx | 15 +- packages/sqle/src/page/RuleManager/index.tsx | 13 +- .../RuleTemplate/CloneRuleTemplate/index.tsx | 4 +- .../RuleTemplate/CreateRuleTemplate/index.tsx | 16 +- .../RuleTemplate/EditRuleTemplate/index.tsx | 10 +- .../DownloadTemplateModal/index.tsx | 21 +- .../ImportRuleTemplate/FileUpload/index.tsx | 13 +- .../ImportRuleTemplate/index.test.tsx | 2 +- .../RuleTemplate/ImportRuleTemplate/index.tsx | 31 +- .../RuleTemplateForm/BaseInfoForm/index.tsx | 27 +- .../RuleTemplateForm/RuleSelect/index.tsx | 16 +- .../RuleTemplate/RuleTemplateForm/index.tsx | 4 +- .../RuleTemplateList/ProjectTable/index.tsx | 4 +- .../RuleTemplate/RuleTemplateList/actions.tsx | 12 +- .../RuleTemplate/RuleTemplateList/columns.tsx | 12 +- .../RuleTemplateList/index.test.tsx | 2 +- .../RuleTemplate/RuleTemplateList/index.tsx | 9 +- .../RuleTemplate/UpdateRuleTemplate/index.tsx | 28 +- .../SqlAnalyze/ManagementConf/index.test.tsx | 2 +- .../page/SqlAnalyze/ManagementConf/index.tsx | 2 +- .../SqlAnalyze/ExecPlanCostChart/index.tsx | 23 +- .../SqlAnalyze/ProcessListCom/index.tsx | 25 +- .../page/SqlAnalyze/SqlAnalyze/SqlAnalyze.tsx | 26 +- .../SqlAnalyze/SqlAnalyze/useSQLExecPlan.tsx | 27 +- .../SqlAnalyze/SqlAnalyze/useTableSchema.tsx | 22 +- .../page/SqlAnalyze/SqlManage/index.test.tsx | 2 +- .../src/page/SqlAnalyze/SqlManage/index.tsx | 2 +- .../src/page/SqlAnalyze/Workflow/index.tsx | 2 +- .../__tests__/useSqlExecPlanCost.test.tsx | 4 +- .../SqlAnalyze/hooks/useSqlExecPlanCost.ts | 6 +- .../SqlAudit/Create/BaseInfoForm/index.tsx | 40 +- .../Create/SQLInfoForm/DatabaseInfo.tsx | 48 +- .../Create/SQLInfoForm/SQLInfoFormItem.tsx | 37 +- .../SqlAudit/Create/SQLInfoForm/index.tsx | 4 +- .../page/SqlAudit/Create/SQLInfoForm/style.ts | 2 +- .../hooks/useRepositoryConnection.ts | 2 +- .../components/RepositoryConfig/index.tsx | 31 +- .../components/SqlUploadCont/index.tsx | 17 +- .../Create/SQLStatementForm/index.data.tsx | 2 +- .../Create/SQLStatementForm/index.tsx | 25 +- .../src/page/SqlAudit/Create/index.test.tsx | 2 +- .../sqle/src/page/SqlAudit/Create/index.tsx | 31 +- .../Detail/BasicInfoWrapper/index.tsx | 7 +- .../sqle/src/page/SqlAudit/Detail/index.tsx | 20 +- .../sqle/src/page/SqlAudit/List/actions.tsx | 7 +- .../sqle/src/page/SqlAudit/List/column.tsx | 19 +- .../component/SqlAuditStatusFilter/index.tsx | 4 +- .../component/SqlAuditStatusTag/index.tsx | 7 +- .../List/component/SqlAuditTags/index.tsx | 40 +- .../sqle/src/page/SqlAudit/List/index.tsx | 30 +- .../AuditResultFilterContainer/index.tsx | 15 +- .../AuditResultFilterContainer/index.type.ts | 2 +- .../Table/AuditResultDrawer.tsx | 5 +- .../Table/SwitchSqlBackupStrategyModal.tsx | 21 +- .../Common/AuditResultList/Table/column.tsx | 11 +- .../Common/AuditResultList/Table/index.tsx | 30 +- .../Common/AuditResultList/index.tsx | 28 +- .../Common/BackToList/index.tsx | 12 +- .../Common/BasicInfoWrapper/index.tsx | 9 +- .../Common/DownloadRecord/index.tsx | 17 +- .../SqlFormatterAndSubmitter.test.tsx | 4 +- .../__tests__/index.test.tsx | 2 +- .../components/SqlBackupSwitcher.tsx | 36 +- .../components/SqlExecModeSelector.tsx | 31 +- .../components/SqlFormatterAndSubmitter.tsx | 19 +- .../components/SqlUploadContent.tsx | 16 +- .../components/SwitchField.tsx | 6 +- .../SqlStatementFormItem/index.data.tsx | 2 +- .../SqlStatementFormItem/index.tsx | 17 +- .../SqlStatementFormController/index.tsx | 15 +- .../Common/SubmitWorkflowButton/index.tsx | 16 +- .../Create/__tests__/index.test.tsx | 2 +- .../BatchSwitchBackupStrategyModal/index.tsx | 22 +- .../UpdateFormDrawer/BaseInfoTag.tsx | 4 +- .../UpdateFormDrawer/index.tsx | 22 +- .../components/AuditResultStep/index.tsx | 17 +- .../components/CreateResultStep/index.tsx | 13 +- .../BaseInfoForm/BaseInfoFormItem.tsx | 114 ++-- .../FormStep/BaseInfoForm/index.tsx | 4 +- .../__tests__/index.test.tsx | 2 +- .../hooks/useRenderDatabaseSelectionItems.tsx | 38 +- ...seSetFormValuesWithGenModifiedSqlParams.ts | 6 +- .../hooks/useTestDatabaseConnect.tsx | 14 +- .../DatabaseSelectionItems/index.tsx | 39 +- .../SqlAuditInfoFormItem/index.tsx | 21 +- .../FormStep/SqlAuditInfoForm/index.tsx | 4 +- .../Create/components/FormStep/index.tsx | 15 +- .../Create/components/FormStep/style.ts | 2 +- .../Create/hooks/useAuditWorkflow.tsx | 2 +- .../Create/hooks/useCreationMode.ts | 2 +- .../src/page/SqlExecWorkflow/Create/index.tsx | 28 +- .../ListLayoutSelector/index.tsx | 7 +- .../ConfirmationSettingForm.test.tsx | 2 +- .../components/ConfirmationSettingForm.tsx | 55 +- .../components/index.type.ts | 2 +- .../ScheduleTimeModal/components/style.ts | 2 +- .../OverviewList/ScheduleTimeModal/index.tsx | 29 +- .../OverviewList/column.tsx | 15 +- .../SortableSqlFilesModal/columns.tsx | 4 +- .../SortableSqlFilesModal/index.tsx | 30 +- .../Common/FileModeHeader/index.tsx | 9 +- .../Common/ResultCard/FileMode.tsx | 2 +- .../Common/ResultCard/SqlMode.tsx | 24 +- .../ResultCard/__tests__/SqlMode.test.tsx | 2 +- .../components/AuditExceptionTree.tsx | 2 +- .../ResultCard/components/AuditResultTag.tsx | 10 +- .../ResultCard/components/AuditResultTree.tsx | 6 +- .../ResultCard/components/ExecStatusTag.tsx | 8 +- .../ResultCard/components/ResultDescribe.tsx | 9 +- .../components/RollbackWorkflowEntry.tsx | 22 +- .../SqlStatementResultTable/columns.tsx | 3 +- .../Common/SqlStatementResultTable/index.tsx | 11 +- .../SqlStatementResultTable/index.type.ts | 2 +- .../SqlFileStatementOverview/index.tsx | 27 +- .../hooks/useOverviewActions.ts | 2 +- .../components/AuditExecResultPanel/index.tsx | 18 +- .../components/ModifySqlStatement/index.tsx | 29 +- .../components/ModifySqlStatement/style.ts | 2 +- .../RejectWorkflowModal/index.tsx | 6 +- .../PageHeaderExtra/__test__/index.test.tsx | 2 +- .../components/PageHeaderExtra/action.tsx | 10 - .../hooks/useWorkflowDetailAction.tsx | 2 +- .../components/PageHeaderExtra/index.tsx | 12 +- .../AssociatedRollbackWorkflows.tsx | 2 +- .../components/AssociatedWorkflows.tsx | 2 +- .../components/WorkflowBasicInfo.tsx | 7 +- .../components/WorkflowHistorySteps.tsx | 5 +- .../RecordInfo/components/WorkflowSteps.tsx | 26 +- .../Detail/components/RecordInfo/index.tsx | 7 +- .../Detail/components/RejectReason/index.tsx | 28 +- .../components/SqlRollback/TableTransfer.tsx | 14 +- .../Detail/components/SqlRollback/columns.tsx | 12 +- .../Detail/components/SqlRollback/index.tsx | 64 +- .../hooks/useAuditExecResultPanelSetup.ts | 2 +- .../Detail/hooks/useCloneExecWorkflowInfo.ts | 8 +- .../Detail/hooks/useInitDataWithRequest.ts | 4 +- .../src/page/SqlExecWorkflow/Detail/index.tsx | 12 +- .../src/page/SqlExecWorkflow/List/action.tsx | 9 +- .../src/page/SqlExecWorkflow/List/column.tsx | 23 +- .../components/ExportWorkflowButton/index.tsx | 2 +- .../src/page/SqlExecWorkflow/List/index.tsx | 60 +- .../sqle/src/page/SqlInsights/SqlInsights.tsx | 38 +- .../page/SqlInsights/__tests__/index.test.tsx | 4 +- .../components/ActiveSessionTrend/index.tsx | 4 +- .../DataSourcePerformanceTrend/index.tsx | 4 +- .../SqlRelatedTransactionDrawer/index.tsx | 16 +- .../SqlExecutionCostTrendChart.tsx | 2 +- .../components/RelatedSqlList/index.tsx | 20 +- .../components/SlowSqlTrend/index.tsx | 4 +- .../__tests__/useChartEvent.test.tsx | 4 +- .../hooks/useChartEvent.ts | 4 +- .../components/SqlInsightsLineChart/index.tsx | 6 +- .../components/TaskEnabledTips/index.tsx | 7 +- .../components/TopSqlTrend/index.tsx | 4 +- .../__test__/ActiveSessionTrend.test.tsx | 4 +- .../DataSourcePerformanceTrend.test.tsx | 4 +- .../components/__test__/SlowSqlTrend.test.tsx | 4 +- .../components/__test__/TopSqlTrend.test.tsx | 4 +- .../hooks/__tests__/useOpenScanTask.test.tsx | 2 +- .../page/SqlInsights/hooks/useOpenScanTask.ts | 4 +- .../SqlInsights/hooks/useSqlInsightsMetric.ts | 4 +- packages/sqle/src/page/SqlInsights/index.tsx | 6 +- .../SQLEEIndex/AbnormalInstance/index.tsx | 4 +- .../Modals/AssignmentBatch/index.tsx | 14 +- .../Modals/AssignmentForm/index.tsx | 14 +- .../Modals/AssignmentSingle/index.tsx | 15 +- .../Modals/ChangePriority/index.tsx | 26 +- .../SQLEEIndex/Modals/ChangeStatus/index.tsx | 26 +- .../SQLEEIndex/Modals/PushToCoding/index.tsx | 27 +- .../SQLEEIndex/Modals/StatusDrawer/index.tsx | 12 +- .../component/SQLEEIndex/StatusFilter.tsx | 7 +- .../component/SQLEEIndex/StatusTag/index.tsx | 10 +- .../component/SQLEEIndex/actions.tsx | 2 +- .../component/SQLEEIndex/column.tsx | 43 +- .../__tests__/useGetTableFilterInfo.test.ts | 2 +- .../SQLEEIndex/hooks/useBatchIgnoreOrSolve.ts | 2 +- .../SQLEEIndex/hooks/useGetTableFilterInfo.ts | 2 +- .../SQLEEIndex/hooks/useRuleTips.tsx | 10 +- .../SQLEEIndex/hooks/useSqlManagementRedux.ts | 2 +- .../component/SQLEEIndex/index.test.tsx | 4 +- .../component/SQLEEIndex/index.tsx | 65 +- .../component/SQLStatistics/index.tsx | 2 +- .../sqle/src/page/SqlManagement/index.tsx | 5 +- .../Common/BackToConf/index.tsx | 8 +- .../ConfForm/DataSourceSelection/index.tsx | 37 +- .../AuditTemplate/index.tsx | 14 +- .../HighPriorityConditions/index.tsx | 21 +- .../HighPriorityConditions/style.ts | 3 +- .../ConfForm/ScanTypesDynamicParams/index.tsx | 29 +- .../ConfForm/ScanTypesSelection/index.tsx | 16 +- .../ConfForm/ScanTypesSelection/style.ts | 4 +- .../Common/ConfForm/__tests__/index.test.tsx | 2 +- .../Common/ConfForm/index.tsx | 4 +- .../Create/CreationResult/index.tsx | 13 +- .../page/SqlManagementConf/Create/index.tsx | 21 +- .../Detail/Overview/column.tsx | 11 +- .../Detail/Overview/index.tsx | 2 +- .../Detail/ScanTypeSqlCollection/indx.tsx | 45 +- .../page/SqlManagementConf/Detail/action.tsx | 2 - .../page/SqlManagementConf/Detail/index.tsx | 42 +- .../List/ScanTypeTagsCell/index.tsx | 29 +- .../List/TableTaskTypeFilter/index.tsx | 2 +- .../page/SqlManagementConf/List/action.tsx | 8 +- .../page/SqlManagementConf/List/column.tsx | 19 +- .../List/hooks/useTableAction.ts | 4 +- .../src/page/SqlManagementConf/List/index.tsx | 30 +- .../page/SqlManagementConf/Update/index.tsx | 37 +- .../Common/Form/index.tsx | 22 +- .../Drawer/Create/index.tsx | 31 +- .../Drawer/Update/index.tsx | 26 +- .../List/__tests__/index.test.tsx | 2 +- .../SqlManagementException/List/actions.tsx | 6 +- .../SqlManagementException/List/column.tsx | 2 +- .../SqlManagementException/List/index.tsx | 34 +- .../src/page/SqlManagementException/index.tsx | 6 +- .../Create/BaseInfoForm/BaseInfoFormItem.tsx | 4 +- .../Create/BaseInfoForm/index.tsx | 4 +- .../Create/SQLInfoForm/DatabaseInfo.tsx | 54 +- .../Create/SQLInfoForm/SQLInfoFormItem.tsx | 14 +- .../Create/SQLInfoForm/index.tsx | 4 +- .../Create/SQLInfoForm/style.ts | 2 +- .../SQLStatementForm/SqlUploadFileCont.tsx | 19 +- .../Create/SQLStatementForm/index.data.tsx | 2 +- .../Create/SQLStatementForm/index.tsx | 31 +- .../SqlOptimization/Create/index.test.tsx | 2 +- .../src/page/SqlOptimization/Create/index.tsx | 30 +- .../src/page/SqlOptimization/Detail/index.tsx | 19 +- .../src/page/SqlOptimization/List/columns.tsx | 15 +- .../src/page/SqlOptimization/List/index.tsx | 31 +- .../Overview/OptimizationSqlList/columns.tsx | 2 +- .../Overview/OptimizationSqlList/index.tsx | 2 +- .../page/SqlOptimization/Overview/index.tsx | 26 +- .../SqlOptimization/components/CodeBlock.tsx | 8 +- .../components/RecommendIndex.tsx | 12 +- .../sqle/src/page/SqlOptimization/index.tsx | 5 +- .../Common/BackToList/index.tsx | 8 +- .../Common/VersionForm/BaseInfo/index.tsx | 17 +- .../VersionForm/DeploymentConf/index.tsx | 58 +- .../Common/VersionForm/index.tsx | 4 +- .../Common/VersionForm/style.ts | 2 +- .../page/VersionManagement/Create/index.tsx | 20 +- .../WorkflowTableField/index.tsx | 8 +- .../Modals/AssociateWorkflowDrawer/index.tsx | 38 +- .../Detail/Modals/BatchExecuteModal/index.tsx | 34 +- .../Detail/Modals/OfflineExecModal/index.tsx | 39 +- .../ReleaseDrawer/DataSourceField/index.tsx | 37 +- .../ReleaseDrawer/__tests__/index.test.tsx | 2 +- .../ReleaseDrawer/hooks/useTestConnection.tsx | 25 +- .../Detail/Modals/ReleaseDrawer/index.tsx | 41 +- .../Detail/__tests__/index.test.tsx | 2 +- .../components/CustomActionNode/index.tsx | 6 +- .../Detail/components/CustomEdge/index.tsx | 6 +- .../Detail/components/StageNode/index.tsx | 16 +- .../page/VersionManagement/Detail/index.tsx | 94 ++- .../page/VersionManagement/Detail/style.ts | 2 +- .../page/VersionManagement/List/action.tsx | 12 +- .../page/VersionManagement/List/column.tsx | 4 +- .../src/page/VersionManagement/List/index.tsx | 31 +- .../page/VersionManagement/Update/index.tsx | 23 +- .../sqle/src/page/VersionManagement/index.tsx | 6 +- .../page/Whitelist/Drawer/AddWhitelist.tsx | 29 +- .../page/Whitelist/Drawer/UpdateWhitelist.tsx | 11 +- .../page/Whitelist/Drawer/WhitelistForm.tsx | 14 +- .../sqle/src/page/Whitelist/List/actions.tsx | 6 +- .../sqle/src/page/Whitelist/List/columns.tsx | 2 +- .../src/page/Whitelist/List/index.test.tsx | 2 +- .../sqle/src/page/Whitelist/List/index.tsx | 33 +- packages/sqle/src/page/Whitelist/index.tsx | 6 +- .../components/BasicInfo/index.tsx | 10 +- .../components/ReviewNodeInfo/index.tsx | 28 +- .../components/StepButton/index.tsx | 5 +- .../UpdateWorkflowTemplate/index.tsx | 53 +- .../UpdateWorkflowTemplate/style.ts | 7 +- .../WorkflowTemplateDetail/actions.tsx | 3 +- .../WorkflowTemplateAuthInfo/index.tsx | 2 +- .../WorkflowTemplateDetail/index.test.tsx | 2 +- .../WorkflowTemplateDetail/index.tsx | 16 +- .../components/StepCard/style.ts | 7 +- .../components/UserAvatar/style.ts | 4 +- packages/sqle/src/router/config.tsx | 2 +- packages/sqle/src/store/auditPlan/index.tsx | 2 +- packages/sqle/src/store/common/index.test.ts | 2 +- packages/sqle/src/store/common/index.ts | 2 +- .../src/store/globalRuleTemplate/index.tsx | 2 +- packages/sqle/src/store/pipeline/index.ts | 2 +- packages/sqle/src/store/pluginAudit/index.ts | 2 +- .../sqle/src/store/ruleTemplate/index.tsx | 2 +- packages/sqle/src/store/sqlInsights/index.ts | 2 +- .../sqle/src/store/sqlManagement/index.tsx | 2 +- .../src/store/sqlManagementException/index.ts | 2 +- .../sqle/src/store/versionManagement/index.ts | 2 +- packages/sqle/src/store/whitelist/index.ts | 2 +- packages/sqle/src/testUtils/mockRedux.tsx | 2 +- packages/sqle/src/testUtils/superRender.tsx | 2 +- packages/sqle/src/theme/dark/execWorkflow.ts | 2 +- packages/sqle/src/theme/dark/knowledge.ts | 2 +- .../sqle/src/theme/dark/projectOverview.ts | 2 +- .../sqle/src/theme/dark/reportStatistics.ts | 2 +- .../sqle/src/theme/dark/workflowTemplate.ts | 4 +- packages/sqle/src/theme/index.ts | 6 +- packages/sqle/src/theme/light/execWorkflow.ts | 2 +- packages/sqle/src/theme/light/knowledge.ts | 2 +- .../sqle/src/theme/light/projectOverview.ts | 2 +- .../sqle/src/theme/light/reportStatistics.ts | 2 +- .../sqle/src/theme/light/workflowTemplate.ts | 4 +- packages/sqle/src/utils/EventEmitter.ts | 2 +- pnpm-lock.yaml | 553 ++++++++---------- 1311 files changed, 5059 insertions(+), 7304 deletions(-) create mode 100644 packages/dms-kit/.fatherrc.ts create mode 100644 packages/dms-kit/.npmrc create mode 100644 packages/dms-kit/README.md create mode 100644 packages/dms-kit/package.json create mode 100644 packages/dms-kit/src/components/ActiontechTable/index.type.ts create mode 100644 packages/dms-kit/src/components/ActiontechTable/style.tsx create mode 100644 packages/dms-kit/src/components/ActiontechTable/utils/index.ts rename packages/{shared/lib => dms-kit/src}/components/BasicButton/BasicButton.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicButton/BasicButton.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicButton/BasicButton.types.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicButton/README.md (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicButton/__snapshots__/BasicButton.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicButton/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicButton/style.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicDatePicker/BasicDatePicker.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicDatePicker/BasicDatePicker.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicDatePicker/BasicDatePicker.types.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicDatePicker/README.md (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicDatePicker/__snapshots__/BasicDatePicker.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicDatePicker/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicDatePicker/style.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicDrawer/BasicDrawer.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicDrawer/BasicDrawer.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicDrawer/BasicDrawer.types.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicDrawer/README.md (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicDrawer/__snapshots__/BasicDrawer.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicDrawer/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicDrawer/style.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicEmpty/BasicEmpty.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicEmpty/BasicEmpty.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicEmpty/BasicEmpty.types.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicEmpty/README.md (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicEmpty/__snapshots__/BasicEmpty.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicEmpty/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicEmpty/style.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicInfoList/BasicInfoList.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicInfoList/BasicInfoList.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicInfoList/BasicInfoList.types.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicInfoList/README.md (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicInfoList/__snapshots__/BasicInfoList.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicInfoList/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicInfoList/style.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicInput/Input.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicInput/Password.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicInput/README.md (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicInput/TextArea.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicInput/__tests__/Input.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicInput/__tests__/Password.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicInput/__tests__/TextArea.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicInput/__tests__/__snapshots__/Input.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicInput/__tests__/__snapshots__/Password.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicInput/__tests__/__snapshots__/TextArea.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicInput/index.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicInput/style.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicInputNumber/BasicInputNumber.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicInputNumber/BasicInputNumber.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicInputNumber/BasicInputNumber.types.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicInputNumber/README.md (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicInputNumber/__snapshots__/BasicInputNumber.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicInputNumber/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicInputNumber/style.ts (56%) rename packages/{shared/lib => dms-kit/src}/components/BasicModal/BasicModal.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicModal/BasicModal.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicModal/BasicModal.types.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicModal/README.md (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicModal/__snapshots__/BasicModal.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicModal/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicModal/style.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicRangePicker/BasicRangePicker.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicRangePicker/BasicRangePicker.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicRangePicker/BasicRangePicker.types.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicRangePicker/README.md (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicRangePicker/__snapshots__/BasicRangePicker.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicRangePicker/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicRangePicker/style.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicResult/BasicResult.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicResult/BasicResult.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicResult/BasicResult.types.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicResult/README.md (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicResult/ResultIcon.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicResult/__snapshots__/BasicResult.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicResult/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicResult/style.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicSegmented/BasicSegmented.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicSegmented/BasicSegmented.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicSegmented/BasicSegmented.types.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicSegmented/README.md (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicSegmented/__snapshots__/BasicSegmented.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicSegmented/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicSegmented/style.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicSelect/BasicSelect.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicSelect/BasicSelect.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicSelect/BasicSelect.types.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicSelect/README.md (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicSelect/__snapshots__/BasicSelect.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicSelect/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicSelect/style.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicSelect/utils/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicSwitch/BasicSwitch.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicSwitch/BasicSwitch.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicSwitch/BasicSwitch.types.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicSwitch/README.md (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicSwitch/__snapshots__/BasicSwitch.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicSwitch/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicSwitch/style.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicTable/BasicTable.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicTable/BasicTable.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicTable/BasicTable.types.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicTable/README.md (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicTable/__snapshots__/BasicTable.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicTable/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicTag/BasicTag.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicTag/BasicTag.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicTag/BasicTag.types.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicTag/README.md (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicTag/__snapshots__/BasicTag.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicTag/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicTag/style.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicToolTip/BasicToolTip.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicToolTip/BasicToolTip.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicToolTip/BasicToolTip.types.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicToolTip/README.md (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicToolTip/__snapshots__/BasicToolTip.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicToolTip/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicToolTip/style.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicToolTip/utils/index.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicTreeSelect/BasicTreeSelect.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicTreeSelect/BasicTreeSelect.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicTreeSelect/BasicTreeSelect.types.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicTreeSelect/README.md (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicTreeSelect/__snapshots__/BasicTreeSelect.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicTreeSelect/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/BasicTreeSelect/style.ts (85%) rename packages/{shared/lib => dms-kit/src}/components/ConfigItem/ConfigItem.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/ConfigItem/ConfigItem.types.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/ConfigItem/README.md (100%) rename packages/{shared/lib => dms-kit/src}/components/ConfigItem/__tests__/ConfigItem.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/ConfigItem/__tests__/EditInput.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/ConfigItem/__tests__/EditInputNumber.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/ConfigItem/__tests__/ImageUploader.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/ConfigItem/__tests__/LabelContent.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/ConfigItem/__tests__/__snapshots__/ConfigItem.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/ConfigItem/__tests__/__snapshots__/EditInput.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/ConfigItem/__tests__/__snapshots__/EditInputNumber.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/ConfigItem/__tests__/__snapshots__/ImageUploader.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/ConfigItem/__tests__/__snapshots__/LabelContent.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/ConfigItem/components/EditInput.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/ConfigItem/components/EditInputNumber.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/ConfigItem/components/ImageUploader.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/ConfigItem/components/LabelContent.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/ConfigItem/hooks/useHideConfigInputNode.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/ConfigItem/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/ConfigItem/style.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/CopyIcon/CopyIcon.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/CopyIcon/CopyIcon.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/CopyIcon/CopyIcon.types.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/CopyIcon/README.md (100%) rename packages/{shared/lib => dms-kit/src}/components/CopyIcon/__snapshots__/CopyIcon.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/CopyIcon/index.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/CopyIcon/style.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/CronInput/CronInput.data.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/CronInput/CronInput.enum.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/CronInput/CronInput.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/CronInput/CronInput.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/CronInput/CronInput.types.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/CronInput/README.md (100%) rename packages/{shared/lib => dms-kit/src}/components/CronInput/__snapshots__/CronInput.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/CronInput/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/CronInput/style.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/CronInput/useCron/cron.tool.test.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/CronInput/useCron/cron.tool.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/CronInput/useCron/index.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/CronInput/useCron/index.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/CronInput/useCron/index.type.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomAvatar/CustomAvatar.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomAvatar/CustomAvatar.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomAvatar/CustomAvatar.types.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomAvatar/README.md (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomAvatar/__snapshots__/CustomAvatar.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomAvatar/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomAvatar/style.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomDraggerUpload/CustomDraggerUpload.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomDraggerUpload/CustomDraggerUpload.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomDraggerUpload/CustomDraggerUpload.types.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomDraggerUpload/README.md (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomDraggerUpload/__snapshots__/CustomDraggerUpload.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomDraggerUpload/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomDraggerUpload/style.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomForm/FormItem/CustomLabelContent.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomForm/FormItem/FormInputBotBorder.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomForm/FormItem/FormItem.types.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomForm/FormItem/FormItemLabel.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomForm/FormItem/FormItemNoLabel.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomForm/FormItem/__tests__/CustomLabelContent.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomForm/FormItem/__tests__/FormInputBotBorder.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomForm/FormItem/__tests__/FormItemLabel.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomForm/FormItem/__tests__/FormItemNoLabel.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomForm/FormItem/__tests__/__snapshots__/CustomLabelContent.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomForm/FormItem/__tests__/__snapshots__/FormInputBotBorder.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomForm/FormItem/__tests__/__snapshots__/FormItemLabel.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomForm/FormItem/__tests__/__snapshots__/FormItemNoLabel.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomForm/FormItem/style.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomForm/FormItemTitle/FormItemBigTitle.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomForm/FormItemTitle/FormItemSubTitle.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomForm/FormItemTitle/FormItemTitle.types.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomForm/FormItemTitle/__tests__/FormItemBigTitle.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomForm/FormItemTitle/__tests__/FormItemSubTitle.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomForm/FormItemTitle/__tests__/__snapshots__/FormItemBigTitle.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomForm/FormItemTitle/__tests__/__snapshots__/FormItemSubTitle.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomForm/FormItemTitle/style.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomForm/README.md (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomForm/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomForm/style.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomInput/CustomInput.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomInput/CustomInput.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomInput/CustomInput.types.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomInput/README.md (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomInput/__snapshots__/CustomInput.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomInput/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomInput/style.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomSegmentedFilter/CustomSegmentedFilter.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomSegmentedFilter/CustomSegmentedFilter.types.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomSegmentedFilter/README.md (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomSegmentedFilter/__tests__/CustomSegmentedFilter.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomSegmentedFilter/__tests__/__snapshots__/CustomSegmentedFilter.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomSegmentedFilter/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomSelect/CustomOptionLabel.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomSelect/CustomPlaceholder.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomSelect/CustomSelect.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomSelect/CustomSelect.types.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomSelect/CustomSelectSearchInput.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomSelect/README.md (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomSelect/__tests__/CustomOptionLabel.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomSelect/__tests__/CustomPlaceholder.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomSelect/__tests__/CustomSelect.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomSelect/__tests__/CustomSelectSearchInput.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomSelect/__tests__/__snapshots__/CustomOptionLabel.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomSelect/__tests__/__snapshots__/CustomPlaceholder.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomSelect/__tests__/__snapshots__/CustomSelect.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomSelect/__tests__/__snapshots__/CustomSelectSearchInput.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomSelect/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/CustomSelect/style.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/DatabaseTypeLogo/DatabaseTypeLogo.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/DatabaseTypeLogo/DatabaseTypeLogo.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/DatabaseTypeLogo/DatabaseTypeLogo.types.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/DatabaseTypeLogo/README.md (100%) rename packages/{shared/lib => dms-kit/src}/components/DatabaseTypeLogo/__snapshots__/DatabaseTypeLogo.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/DatabaseTypeLogo/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/DatabaseTypeLogo/style.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/EditText/EditText.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/EditText/EditText.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/EditText/EditText.types.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/EditText/README.md (100%) rename packages/{shared/lib => dms-kit/src}/components/EditText/__snapshots__/EditText.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/EditText/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/EditText/style.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/EditableSelect/EditableSelect.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/EditableSelect/__tests__/EditableSelect.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/EditableSelect/__tests__/__snapshots__/EditableSelect.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/EditableSelect/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/EditableSelect/index.type.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/EditableSelect/style.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/EmptyBox/EmptyBox.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/EmptyBox/EmptyBox.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/EmptyBox/EmptyBox.types.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/EmptyBox/README.md (100%) rename packages/{shared/lib => dms-kit/src}/components/EmptyBox/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/HeaderProgress/HeaderProgress.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/HeaderProgress/HeaderProgress.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/HeaderProgress/README.md (100%) rename packages/{shared/lib => dms-kit/src}/components/HeaderProgress/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/LazyLoadComponent/LazyLoadComponent.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/LazyLoadComponent/LazyLoadComponent.types.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/LazyLoadComponent/README.md (100%) rename packages/{shared/lib => dms-kit/src}/components/LazyLoadComponent/__tests__/index.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/LazyLoadComponent/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/LazyLoadComponent/style.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/ModeSwitcher/ModeSwitcher.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/ModeSwitcher/ModeSwitcher.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/ModeSwitcher/ModeSwitcher.types.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/ModeSwitcher/README.md (100%) rename packages/{shared/lib => dms-kit/src}/components/ModeSwitcher/__snapshots__/ModeSwitcher.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/ModeSwitcher/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/ModeSwitcher/style.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/PageHeader/PageHeader.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/PageHeader/PageHeader.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/PageHeader/PageHeader.types.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/PageHeader/README.md (100%) rename packages/{shared/lib => dms-kit/src}/components/PageHeader/__snapshots__/PageHeader.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/PageHeader/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/PageHeader/style.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/ReminderInformation/README.md (100%) rename packages/{shared/lib => dms-kit/src}/components/ReminderInformation/ReminderInformation.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/ReminderInformation/ReminderInformation.types.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/ReminderInformation/__tests__/ReminderInformation.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/ReminderInformation/__tests__/__snapshots__/ReminderInformation.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/ReminderInformation/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/ReminderInformation/style.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/SegmentedTabs/README.md (100%) rename packages/{shared/lib => dms-kit/src}/components/SegmentedTabs/SegmentedTabs.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/SegmentedTabs/SegmentedTabs.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/SegmentedTabs/SegmentedTabs.types.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/SegmentedTabs/__snapshots__/SegmentedTabs.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/SegmentedTabs/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/SensitiveDisplay/README.md (100%) rename packages/{shared/lib => dms-kit/src}/components/SensitiveDisplay/SensitiveDisplay.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/SensitiveDisplay/SensitiveDisplay.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/SensitiveDisplay/SensitiveDisplay.types.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/SensitiveDisplay/__snapshots__/SensitiveDisplay.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/SensitiveDisplay/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/SensitiveDisplay/style.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/SpinIndicator/README.md (100%) rename packages/{shared/lib => dms-kit/src}/components/SpinIndicator/SpinIndicator.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/SpinIndicator/SpinIndicator.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/SpinIndicator/SpinIndicator.types.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/SpinIndicator/__snapshots__/SpinIndicator.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/SpinIndicator/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/SystemConfigurationHub/README.md (100%) rename packages/{shared/lib => dms-kit/src}/components/SystemConfigurationHub/components/ConfigModifyBtn/__snapshots__/index.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/SystemConfigurationHub/components/ConfigModifyBtn/index.test.tsx (87%) rename packages/{shared/lib => dms-kit/src}/components/SystemConfigurationHub/components/ConfigModifyBtn/index.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/SystemConfigurationHub/components/ConfigModifyBtn/style.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/SystemConfigurationHub/components/ConfigSubmitButtonField/__snapshots__/index.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/SystemConfigurationHub/components/ConfigSubmitButtonField/index.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/SystemConfigurationHub/components/ConfigSubmitButtonField/index.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/SystemConfigurationHub/components/ConfigSwitch/index.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/SystemConfigurationHub/components/ConfigSwitch/index.tsx (93%) rename packages/{shared/lib => dms-kit/src}/components/SystemConfigurationHub/components/ConfigTestBtn/__snapshots__/index.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/SystemConfigurationHub/components/ConfigTestBtn/index.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/SystemConfigurationHub/components/ConfigTestBtn/index.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/SystemConfigurationHub/components/ConfigTestPopoverForm/__snapshots__/index.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/SystemConfigurationHub/components/ConfigTestPopoverForm/index.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/SystemConfigurationHub/components/ConfigTestPopoverForm/index.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/SystemConfigurationHub/hooks/__tests__/__snapshots__/useConfigRender.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/SystemConfigurationHub/hooks/__tests__/__snapshots__/useConfigSwitchControls.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/SystemConfigurationHub/hooks/__tests__/useConfigRender.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/SystemConfigurationHub/hooks/__tests__/useConfigSwitchControls.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/SystemConfigurationHub/hooks/useConfigRender.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/SystemConfigurationHub/hooks/useConfigSwitchControls.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/SystemConfigurationHub/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/SystemConfigurationHub/style.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/TestDatabaseConnectButton/README.md (100%) rename packages/{shared/lib => dms-kit/src}/components/TestDatabaseConnectButton/TestDatabaseConnectButton.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/TestDatabaseConnectButton/TestDatabaseConnectButton.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/TestDatabaseConnectButton/TestDatabaseConnectButton.types.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/TestDatabaseConnectButton/__snapshots__/TestDatabaseConnectButton.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/TestDatabaseConnectButton/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/TestDatabaseConnectButton/style.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/ToggleTokens/README.md (100%) rename packages/{shared/lib => dms-kit/src}/components/ToggleTokens/ToggleTokens.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/ToggleTokens/ToggleTokens.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/ToggleTokens/ToggleTokens.types.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/ToggleTokens/__snapshots__/ToggleTokens.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/ToggleTokens/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/ToggleTokens/style.ts (100%) rename packages/{shared/lib => dms-kit/src}/components/VerificationCodeInput/VerificationCodeInput.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/VerificationCodeInput/__tests__/VerificationCodeInput.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/VerificationCodeInput/__tests__/__snapshots__/VerificationCodeInput.test.tsx.snap (100%) rename packages/{shared/lib => dms-kit/src}/components/VerificationCodeInput/index.tsx (100%) rename packages/{shared/lib => dms-kit/src}/components/VerificationCodeInput/style.ts (100%) rename packages/{shared/lib => dms-kit/src}/data/EmitterKey.ts (100%) rename packages/{shared/lib => dms-kit/src}/data/common.ts (100%) rename packages/{shared/lib => dms-kit/src}/data/routePaths.ts (100%) rename packages/{shared/lib => dms-kit/src}/enum/index.ts (100%) rename packages/{shared/lib/publish-entry.ts => dms-kit/src/index.ts} (92%) rename packages/{shared/lib => dms-kit/src}/locale/en-US/common.ts (100%) rename packages/{shared/lib => dms-kit/src}/locale/en-US/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/locale/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/locale/zh-CN/common.ts (100%) rename packages/{shared/lib => dms-kit/src}/locale/zh-CN/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/providers/index.tsx (100%) rename packages/{shared/lib => dms-kit/src}/providers/locale.tsx (100%) rename packages/{shared/lib => dms-kit/src}/providers/theme.tsx (100%) rename packages/{shared/lib => dms-kit/src}/styleWrapper/element.ts (100%) rename packages/{shared/lib => dms-kit/src}/styleWrapper/nav.ts (100%) create mode 100644 packages/dms-kit/src/testUtil/common.tsx create mode 100644 packages/dms-kit/src/testUtil/customQuery.ts create mode 100644 packages/dms-kit/src/testUtil/index.ts create mode 100644 packages/dms-kit/src/testUtil/superRender.tsx rename packages/{shared/lib => dms-kit/src}/theme/dark/basic.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/dark/components/button.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/dark/components/chart.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/dark/components/columnsSetting.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/dark/components/configItem.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/dark/components/customFilter.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/dark/components/customSelect.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/dark/components/draggerUpload.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/dark/components/drawer.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/dark/components/empty.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/dark/components/filterContainer.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/dark/components/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/dark/components/infoList.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/dark/components/input.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/dark/components/modal.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/dark/components/monacoEditor.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/dark/components/pageHeader.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/dark/components/rangePicker.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/dark/components/result.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/dark/components/ruleComponent.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/dark/components/searchInput.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/dark/components/segmented.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/dark/components/select.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/dark/components/table.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/dark/components/tag.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/dark/components/toolbar.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/dark/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/dark/nav.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/light/basic.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/light/components/button.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/light/components/chart.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/light/components/columnsSetting.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/light/components/configItem.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/light/components/customFilter.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/light/components/customSelect.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/light/components/draggerUpload.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/light/components/drawer.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/light/components/empty.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/light/components/filterContainer.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/light/components/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/light/components/infoList.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/light/components/input.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/light/components/modal.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/light/components/monacoEditor.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/light/components/pageHeader.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/light/components/rangePicker.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/light/components/result.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/light/components/ruleComponent.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/light/components/searchInput.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/light/components/segmented.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/light/components/select.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/light/components/table.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/light/components/tag.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/light/components/toolbar.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/light/index.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/light/nav.ts (100%) rename packages/{shared/lib => dms-kit/src}/theme/theme.type.ts (100%) create mode 100644 packages/dms-kit/src/types/common.type.ts create mode 100644 packages/dms-kit/src/types/theme.type.ts rename packages/{shared/lib => dms-kit/src}/utils/Common.ts (100%) rename packages/{shared/lib => dms-kit/src}/utils/Copy.ts (100%) rename packages/{shared/lib => dms-kit/src}/utils/Download.ts (100%) rename packages/{shared/lib => dms-kit/src}/utils/EventEmitter.ts (100%) rename packages/{shared/lib => dms-kit/src}/utils/FormRule.ts (100%) rename packages/{shared/lib => dms-kit/src}/utils/FormatterSQL.ts (100%) rename packages/{shared/lib => dms-kit/src}/utils/HighlightCode.ts (100%) rename packages/{shared/lib => dms-kit/src}/utils/LocalStorageWrapper.ts (100%) rename packages/{shared/lib => dms-kit/src}/utils/Math.ts (100%) rename packages/{shared/lib => dms-kit/src}/utils/Tool.ts (100%) rename packages/{shared/lib => dms-kit/src}/utils/__tests__/Common.test.ts (100%) rename packages/{shared/lib => dms-kit/src}/utils/__tests__/Copy.test.ts (100%) rename packages/{shared/lib => dms-kit/src}/utils/__tests__/Download.test.ts (100%) rename packages/{shared/lib => dms-kit/src}/utils/__tests__/EventEmitter.test.ts (100%) rename packages/{shared/lib => dms-kit/src}/utils/__tests__/FormRule.test.ts (100%) rename packages/{shared/lib => dms-kit/src}/utils/__tests__/FormatSQL.test.ts (100%) rename packages/{shared/lib => dms-kit/src}/utils/__tests__/LocalStorageWrapper.test.tsx (100%) rename packages/{shared/lib => dms-kit/src}/utils/__tests__/Math.test.ts (100%) rename packages/{shared/lib => dms-kit/src}/utils/__tests__/Tool.test.ts (100%) rename packages/{shared/lib => dms-kit/src}/utils/__tests__/__snapshots__/Copy.test.ts.snap (100%) rename packages/{shared/lib => dms-kit/src}/utils/__tests__/__snapshots__/FormatSQL.test.ts.snap (100%) rename packages/{shared/lib => dms-kit/src}/utils/index.ts (100%) create mode 100644 packages/dms-kit/tsconfig.json delete mode 100644 packages/shared/PUBLISH.md delete mode 100644 packages/shared/package_publish.json delete mode 100644 packages/shared/publish-shared.mjs delete mode 100644 packages/shared/tsconfig.build.json delete mode 100644 packages/shared/tsup.config.js diff --git a/.gitignore b/.gitignore index 85673872e..292139d1c 100644 --- a/.gitignore +++ b/.gitignore @@ -24,6 +24,7 @@ dist /build /packages/icons-svg/es/* /packages/icons-svg/lib/* +/packages/dms-kit/lib/* # misc .DS_Store diff --git a/jest-setup.ts b/jest-setup.ts index 319389a62..b3dc9ee8c 100644 --- a/jest-setup.ts +++ b/jest-setup.ts @@ -3,7 +3,7 @@ import i18n from 'i18next'; import { initReactI18next } from 'react-i18next'; import baseZhCN from './packages/base/src/locale/zh-CN'; import sqleZhCN from './packages/sqle/src/locale/zh-CN'; -import commonZhCN from './packages/shared/lib/locale/zh-CN'; +import commonZhCN from './packages/dms-kit/src/locale/zh-CN'; import Adapter from '@cfaester/enzyme-adapter-react-18'; import * as Enzyme from 'enzyme'; import 'jest-canvas-mock'; diff --git a/packages/base/package.json b/packages/base/package.json index 41b92ff92..05d276714 100644 --- a/packages/base/package.json +++ b/packages/base/package.json @@ -16,6 +16,7 @@ }, "dependencies": { "@actiontech/shared": "workspace:^", + "@actiontech/dms-kit": "workspace:^", "babel-preset-react-app": "^10.0.1", "sqle": "workspace:^", "@actiontech/icons": "workspace:^" diff --git a/packages/base/src/App.ce.test.tsx b/packages/base/src/App.ce.test.tsx index 4f54cb804..3ec1f0392 100644 --- a/packages/base/src/App.ce.test.tsx +++ b/packages/base/src/App.ce.test.tsx @@ -9,7 +9,7 @@ import { mockUseDbServiceDriver } from '@actiontech/shared/lib/testUtil/mockHook import { mockUseCurrentUser } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentUser'; import { mockUsePermission } from '@actiontech/shared/lib/testUtil/mockHook/mockUsePermission'; import { mockSystemConfig } from './testUtils/mockHooks/mockSystemConfig'; -import { LocalStorageWrapper } from '@actiontech/shared'; +import { LocalStorageWrapper } from '@actiontech/dms-kit'; import system from '@actiontech/shared/lib/testUtil/mockApi/sqle/system'; import baseSystem from '@actiontech/shared/lib/testUtil/mockApi/base/system'; import { superRender } from '@actiontech/shared/lib/testUtil/superRender'; diff --git a/packages/base/src/App.test.tsx b/packages/base/src/App.test.tsx index 2af16aae0..6b3d5b768 100644 --- a/packages/base/src/App.test.tsx +++ b/packages/base/src/App.test.tsx @@ -19,10 +19,10 @@ import { } from '@actiontech/shared/lib/testUtil/common'; import system from '@actiontech/shared/lib/testUtil/mockApi/sqle/system'; import baseSystem from '@actiontech/shared/lib/testUtil/mockApi/base/system'; -import { LocalStorageWrapper } from '@actiontech/shared'; +import { LocalStorageWrapper } from '@actiontech/dms-kit'; import { compressToBase64 } from 'lz-string'; -import { DMS_REDIRECT_KEY_PARAMS_NAME } from '@actiontech/shared/lib/data/routePaths'; -import { SystemRole } from '@actiontech/shared/lib/enum'; +import { DMS_REDIRECT_KEY_PARAMS_NAME } from '@actiontech/dms-kit'; +import { SystemRole } from '@actiontech/dms-kit'; import { AuthRouterConfig } from './router/router'; import { cloneDeep } from 'lodash'; import dmsSystem from '@actiontech/shared/lib/testUtil/mockApi/base/system'; @@ -32,8 +32,8 @@ import gateway from '@actiontech/shared/lib/testUtil/mockApi/base/gateway'; import project from '@actiontech/shared/lib/testUtil/mockApi/base/project'; import EventEmitter from './utils/EventEmitter'; import EmitterKey from './data/EmitterKey'; -import { eventEmitter as sharedEventEmitter } from '@actiontech/shared/lib/utils/EventEmitter'; -import sharedEmitterKey from '@actiontech/shared/lib/data/EmitterKey'; +import { eventEmitter as sharedEventEmitter } from '@actiontech/dms-kit/es/utils/EventEmitter'; +import sharedEmitterKey from '@actiontech/dms-kit/es/data/EmitterKey'; jest.mock('react-router-dom', () => ({ ...jest.requireActual('react-router-dom'), diff --git a/packages/base/src/App.tsx b/packages/base/src/App.tsx index 0794d48da..49ea23954 100644 --- a/packages/base/src/App.tsx +++ b/packages/base/src/App.tsx @@ -11,14 +11,10 @@ import { AuthRouterConfig, unAuthRouterConfig } from './router/router'; import { IReduxState } from './store'; import { useSelector } from 'react-redux'; import { StyledEngineProvider, ThemeProvider } from '@mui/system'; -import { - EmptyBox, - HeaderProgress, - SpinIndicator, - useTypedNavigate -} from '@actiontech/shared'; +import { EmptyBox, HeaderProgress, SpinIndicator } from '@actiontech/dms-kit'; +import { useTypedNavigate } from '@actiontech/shared'; import { useNotificationContext } from '@actiontech/shared/lib/hooks'; -import { SupportLanguage, SupportTheme } from '@actiontech/shared/lib/enum'; +import { SupportLanguage, SupportTheme } from '@actiontech/dms-kit'; import Nav from './page/Nav'; import { useChangeTheme, @@ -46,27 +42,27 @@ import antd_en_US from 'antd/locale/en_US'; import useFetchPermissionData from './hooks/useFetchPermissionData'; import { useDispatch } from 'react-redux'; import { updateModuleFeatureSupport } from './store/permission'; -import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths'; +import { ROUTE_PATHS } from '@actiontech/dms-kit'; import useSyncDmsCloudBeaverChannel from './hooks/useSyncDmsCloudBeaverChannel'; import { getSystemModuleStatusModuleNameEnum } from '@actiontech/shared/lib/api/sqle/service/system/index.enum'; -import { ComponentControlHeight } from '@actiontech/shared/lib/data/common'; +import { ComponentControlHeight } from '@actiontech/dms-kit'; import EventEmitter from './utils/EventEmitter'; import EmitterKey from './data/EmitterKey'; -import { eventEmitter as sharedEventEmitter } from '@actiontech/shared/lib/utils/EventEmitter'; -import sharedEmitterKey from '@actiontech/shared/lib/data/EmitterKey'; +import { eventEmitter as sharedEventEmitter } from '@actiontech/dms-kit/es/utils/EventEmitter'; +import sharedEmitterKey from '@actiontech/dms-kit/es/data/EmitterKey'; import useRecentlySelectedZone from './hooks/useRecentlySelectedZone'; import { debounce } from 'lodash'; import './index.less'; - dayjs.extend(updateLocale); dayjs.updateLocale('zh-cn', { weekStart: 0 }); - Spin.setDefaultIndicator(); //fix https://github.com/actiontech/sqle/issues/1350 -export const Wrapper: React.FC<{ children: ReactNode }> = ({ children }) => { +export const Wrapper: React.FC<{ + children: ReactNode; +}> = ({ children }) => { const [initRenderApp, setInitRenderApp] = useState(true); const token = useSelector((state) => state.user.token); const location = useLocation(); @@ -85,45 +81,36 @@ export const Wrapper: React.FC<{ children: ReactNode }> = ({ children }) => { ) { const currentPath = location.pathname; const currentSearch = location.search; - const fullPath = currentSearch ? `${currentPath}${currentSearch}` : currentPath; - navigate(ROUTE_PATHS.BASE.LOGIN.index, { - queries: { target: encodeURIComponent(fullPath) }, + queries: { + target: encodeURIComponent(fullPath) + }, replace: true }); } }, [initRenderApp, location.pathname, location.search, navigate, token]); return <>{!initRenderApp && children}; }; - function App() { const { token } = useSelector((state: IReduxState) => ({ token: state.user.token })); - const dispatch = useDispatch(); - const { notificationContextHolder } = useNotificationContext(); - const { getUserBySession } = useSessionUser(); - const { isUserInfoFetched, theme, language: currentLanguage } = useCurrentUser(); - const { fetchModuleSupportStatus, isFeatureSupportFetched } = useFetchPermissionData(); - const antdLanguage = currentLanguage === SupportLanguage.enUS ? antd_en_US : antd_zh_CN; - const { isDriverInfoFetched, updateDriverList } = useDbServiceDriver(); - const { checkPagePermission, userOperationPermissions } = usePermission(); // #if [ee] @@ -157,7 +144,6 @@ function App() { return acc; }, verifiedRoutes); }; - if ( isUserInfoFetched && isFeatureSupportFetched && @@ -172,16 +158,13 @@ function App() { isUserInfoFetched, userOperationPermissions ]); - const elements = useRoutes( token ? (AuthRouterConfigData as RouteObject[]) : unAuthRouterConfig ); useChangeTheme(); - const themeData = useMemo(() => { return ThemeData[theme]; }, [theme]); - const body = useMemo(() => { if ( !isUserInfoFetched || @@ -201,7 +184,6 @@ function App() { isFeatureSupportFetched, elements ]); - const getInitialData = useCallback(() => { getUserBySession({}); updateDriverList(); @@ -220,13 +202,11 @@ function App() { } }); }, [dispatch, fetchModuleSupportStatus, getUserBySession, updateDriverList]); - useEffect(() => { if (token) { getInitialData(); } }, [token, getInitialData]); - useEffect(() => { i18n.changeLanguage(currentLanguage); }, [currentLanguage]); @@ -234,16 +214,13 @@ function App() { // #if [ee] const { initializeAvailabilityZone, clearRecentlySelectedZone } = useRecentlySelectedZone(); - useEffect(() => { const { unsubscribe } = EventEmitter.subscribe( EmitterKey.DMS_Reload_Initial_Data, getInitialData ); - return unsubscribe; }, [getInitialData]); - useEffect(() => { const { unsubscribe } = sharedEventEmitter.subscribe( sharedEmitterKey.DMS_CLEAR_AVAILABILITY_ZONE_AND_RELOAD_INITIAL_DATA, @@ -252,16 +229,13 @@ function App() { getInitialData(); }, 1000) ); - return unsubscribe; }, [getInitialData, clearRecentlySelectedZone]); - useEffect(() => { initializeAvailabilityZone(); }, [initializeAvailabilityZone]); // #endif useSyncDmsCloudBeaverChannel(); - return ( ); } - export default App; diff --git a/packages/base/src/components/ProjectTagList/index.tsx b/packages/base/src/components/ProjectTagList/index.tsx index 048edda13..db095c1d3 100644 --- a/packages/base/src/components/ProjectTagList/index.tsx +++ b/packages/base/src/components/ProjectTagList/index.tsx @@ -1,16 +1,14 @@ import { useTranslation } from 'react-i18next'; -import { BasicTag } from '@actiontech/shared'; +import { BasicTag } from '@actiontech/dms-kit'; import { Space } from 'antd'; import { useMemo, useState } from 'react'; import { FlagFilled } from '@actiontech/icons'; import { useCurrentProject } from '@actiontech/shared/lib/features'; - export interface ProjectTagListProps { projectList?: string[]; maxDisplayCount?: number; highlightCurrentProject?: boolean; } - const ProjectTagList: React.FC = ({ projectList = [], maxDisplayCount = 3, @@ -18,28 +16,24 @@ const ProjectTagList: React.FC = ({ }) => { const { t } = useTranslation(); const [expanded, setExpanded] = useState(false); - const { projectName } = useCurrentProject(); - const displayProjects = useMemo(() => { return expanded ? projectList : projectList.slice(0, maxDisplayCount); }, [expanded, projectList, maxDisplayCount]); - if (!Array.isArray(projectList) || projectList.length === 0) { return <>-; } - const handleToggleExpand = () => { setExpanded(!expanded); }; - const hasMoreProjects = projectList.length > maxDisplayCount; - return ( {displayProjects.map((project) => ( = ({ {hasMoreProjects && !expanded && ( = ({ {expanded && ( = ({ ); }; - export default ProjectTagList; diff --git a/packages/base/src/components/SystemRoleTagList/__tests__/index.test.tsx b/packages/base/src/components/SystemRoleTagList/__tests__/index.test.tsx index 61e843830..dec67983d 100644 --- a/packages/base/src/components/SystemRoleTagList/__tests__/index.test.tsx +++ b/packages/base/src/components/SystemRoleTagList/__tests__/index.test.tsx @@ -1,6 +1,6 @@ import { screen } from '@testing-library/react'; import SystemRoleTagList from '..'; -import { OpPermissionTypeUid } from '@actiontech/shared/lib/enum'; +import { OpPermissionTypeUid } from '@actiontech/dms-kit'; import { superRender } from '@actiontech/shared/lib/testUtil'; describe('PermissionTagList', () => { diff --git a/packages/base/src/components/SystemRoleTagList/index.tsx b/packages/base/src/components/SystemRoleTagList/index.tsx index 0776a390b..62c75f8a9 100644 --- a/packages/base/src/components/SystemRoleTagList/index.tsx +++ b/packages/base/src/components/SystemRoleTagList/index.tsx @@ -1,20 +1,20 @@ -import { BasicTag, BasicTagProps } from '@actiontech/shared'; +import { + BasicTag, + BasicTagProps, + OpPermissionTypeUid +} from '@actiontech/dms-kit'; import { Space } from 'antd'; import { orderBy } from 'lodash'; -import { OpPermissionTypeUid } from '@actiontech/shared/lib/enum'; import { IUidWithName } from '@actiontech/shared/lib/api/base/service/common'; - export interface SystemRoleTagListProps { roles?: IUidWithName[]; } - const SystemRoleTagList: React.FC = ({ roles = [] }) => { if (!Array.isArray(roles) || roles.length === 0) { return <>-; } - const getPermissionTagColor = (uid: string): BasicTagProps['color'] => { switch (uid) { case OpPermissionTypeUid.project_director: @@ -27,12 +27,13 @@ const SystemRoleTagList: React.FC = ({ return 'default'; } }; - return ( {orderBy(roles, ['uid'], ['asc']).map((role) => ( = ({ ); }; - export default SystemRoleTagList; diff --git a/packages/base/src/hooks/useBrowserVersionTips/index.test.tsx b/packages/base/src/hooks/useBrowserVersionTips/index.test.tsx index 56bd17c42..c27739a58 100644 --- a/packages/base/src/hooks/useBrowserVersionTips/index.test.tsx +++ b/packages/base/src/hooks/useBrowserVersionTips/index.test.tsx @@ -1,6 +1,6 @@ import { baseSuperRenderHook } from '../../testUtils/superRender'; import useBrowserVersionTips from '.'; -import { eventEmitter } from '@actiontech/shared/lib/utils/EventEmitter'; +import { eventEmitter } from '@actiontech/dms-kit/es/utils/EventEmitter'; import { act, cleanup } from '@testing-library/react'; describe('useBrowserVersionTips', () => { diff --git a/packages/base/src/hooks/useBrowserVersionTips/index.tsx b/packages/base/src/hooks/useBrowserVersionTips/index.tsx index 943ad9433..7260f4cc7 100644 --- a/packages/base/src/hooks/useBrowserVersionTips/index.tsx +++ b/packages/base/src/hooks/useBrowserVersionTips/index.tsx @@ -1,8 +1,8 @@ import { notification } from 'antd'; import { useEffect } from 'react'; import { useTranslation } from 'react-i18next'; -import { eventEmitter } from '@actiontech/shared/lib/utils/EventEmitter'; -import EmitterKey from '@actiontech/shared/lib/data/EmitterKey'; +import { eventEmitter } from '@actiontech/dms-kit/es/utils/EventEmitter'; +import EmitterKey from '@actiontech/dms-kit/es/data/EmitterKey'; const notificationKey = 'dmsLoginBrowserVersionTips'; diff --git a/packages/base/src/hooks/useBusinessTag/index.tsx b/packages/base/src/hooks/useBusinessTag/index.tsx index 370769016..25cef6faf 100644 --- a/packages/base/src/hooks/useBusinessTag/index.tsx +++ b/packages/base/src/hooks/useBusinessTag/index.tsx @@ -1,6 +1,6 @@ import { useRequest } from 'ahooks'; import { DmsApi } from '@actiontech/shared/lib/api'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { useMemo } from 'react'; const useBusinessTag = () => { diff --git a/packages/base/src/hooks/useDbService/index.tsx b/packages/base/src/hooks/useDbService/index.tsx index 0e1dde034..03cccc952 100644 --- a/packages/base/src/hooks/useDbService/index.tsx +++ b/packages/base/src/hooks/useDbService/index.tsx @@ -2,20 +2,16 @@ import React, { useMemo } from 'react'; import { useBoolean } from 'ahooks'; import { Select } from 'antd'; import { useDbServiceDriver } from '@actiontech/shared/lib/features'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; import { IListDBServiceTipItem } from '@actiontech/shared/lib/api/base/service/common'; -import { DatabaseTypeLogo } from '@actiontech/shared'; +import { DatabaseTypeLogo, ResponseCode } from '@actiontech/dms-kit'; import DBService from '@actiontech/shared/lib/api/base/service/DBService'; import { IListDBServiceTipsParams } from '@actiontech/shared/lib/api/base/service/DBService/index.d'; - const useDbService = () => { const [dbServiceList, setDbServiceList] = React.useState< IListDBServiceTipItem[] >([]); - const [loading, { setTrue, setFalse }] = useBoolean(); const { getLogoUrlByDbType } = useDbServiceDriver(); - const updateDbServiceList = React.useCallback( (params: IListDBServiceTipsParams) => { setTrue(); @@ -36,12 +32,10 @@ const useDbService = () => { }, [setFalse, setTrue] ); - const dbTypeList: string[] = useMemo( () => Array.from(new Set(dbServiceList.map((v) => v.db_type ?? ''))), [dbServiceList] ); - const generateCommonOptions = React.useCallback( (valueType: 'id' | 'name') => { return dbTypeList.map((type) => { @@ -87,11 +81,9 @@ const useDbService = () => { const generateDbServiceIDSelectOptions = React.useCallback(() => { return generateCommonOptions('id'); }, [generateCommonOptions]); - const generateDbServiceSelectOptions = React.useCallback(() => { return generateCommonOptions('name'); }, [generateCommonOptions]); - const generateCommonDbServiceOptions = React.useCallback( (valueType: 'id' | 'name') => { return dbTypeList.map((type) => ({ @@ -114,15 +106,12 @@ const useDbService = () => { }, [dbServiceList, dbTypeList, getLogoUrlByDbType] ); - const dbServiceOptions = useMemo(() => { return generateCommonDbServiceOptions('name'); }, [generateCommonDbServiceOptions]); - const dbServiceIDOptions = useMemo(() => { return generateCommonDbServiceOptions('id'); }, [generateCommonDbServiceOptions]); - return { dbServiceList, dbServiceOptions, @@ -133,5 +122,4 @@ const useDbService = () => { dbServiceIDOptions }; }; - export default useDbService; diff --git a/packages/base/src/hooks/useMemberTips/index.tsx b/packages/base/src/hooks/useMemberTips/index.tsx index ba90e7dc8..5c5a72af6 100644 --- a/packages/base/src/hooks/useMemberTips/index.tsx +++ b/packages/base/src/hooks/useMemberTips/index.tsx @@ -1,16 +1,13 @@ import { useBoolean } from 'ahooks'; import React, { useMemo } from 'react'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; import { Select, Space, Typography } from 'antd'; import Member from '@actiontech/shared/lib/api/base/service/Member'; -import { CustomAvatar } from '@actiontech/shared'; +import { CustomAvatar, ResponseCode } from '@actiontech/dms-kit'; import { IListMemberTipsParams } from '@actiontech/shared/lib/api/base/service/Member/index.d'; import { IListMemberTipsItem } from '@actiontech/shared/lib/api/base/service/common'; - const useMemberTips = () => { const [memberTips, setMemberTips] = React.useState([]); const [loading, { setTrue, setFalse }] = useBoolean(); - const updateMemberTips = React.useCallback( (params: IListMemberTipsParams) => { setTrue(); @@ -31,7 +28,6 @@ const useMemberTips = () => { }, [setFalse, setTrue] ); - const generateMemberSelectOptions = React.useCallback(() => { return memberTips.map((member) => { return ( @@ -45,7 +41,6 @@ const useMemberTips = () => { ); }); }, [memberTips]); - const memberOptions = useMemo(() => { return memberTips.map((member) => ({ text: member.user_name, @@ -58,7 +53,6 @@ const useMemberTips = () => { value: member.user_id })); }, [memberTips]); - return { memberTips, loading, @@ -67,5 +61,4 @@ const useMemberTips = () => { memberOptions }; }; - export default useMemberTips; diff --git a/packages/base/src/hooks/useOpPermission/index.tsx b/packages/base/src/hooks/useOpPermission/index.tsx index 967e2f1e8..5949e27f8 100644 --- a/packages/base/src/hooks/useOpPermission/index.tsx +++ b/packages/base/src/hooks/useOpPermission/index.tsx @@ -1,6 +1,6 @@ import { useCallback, useState, useMemo } from 'react'; import { useBoolean } from 'ahooks'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { ListOpPermissionsFilterByTargetEnum, ListOpPermissionsServiceEnum diff --git a/packages/base/src/hooks/useProjectTips/index.ts b/packages/base/src/hooks/useProjectTips/index.ts index c4369ca22..31d11a6ba 100644 --- a/packages/base/src/hooks/useProjectTips/index.ts +++ b/packages/base/src/hooks/useProjectTips/index.ts @@ -1,6 +1,6 @@ import { useState, useMemo, useCallback } from 'react'; import { DmsApi } from '@actiontech/shared/lib/api'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { useBoolean } from 'ahooks'; import { IListProjectV2 } from '@actiontech/shared/lib/api/base/service/common'; import { IListProjectsV2Params } from '@actiontech/shared/lib/api/base/service/Project/index.d'; diff --git a/packages/base/src/hooks/useRecentlySelectedZone/__tests__/index.test.tsx b/packages/base/src/hooks/useRecentlySelectedZone/__tests__/index.test.tsx index 60f7f0c7f..2c91a4357 100644 --- a/packages/base/src/hooks/useRecentlySelectedZone/__tests__/index.test.tsx +++ b/packages/base/src/hooks/useRecentlySelectedZone/__tests__/index.test.tsx @@ -1,8 +1,8 @@ import { renderHook, act } from '@testing-library/react'; import useRecentlySelectedZone, { DEFAULT_MAX_SELECTED_ZONE_NUMBER } from '..'; import { useSelector, useDispatch } from 'react-redux'; -import { LocalStorageWrapper } from '@actiontech/shared'; -import { StorageKey } from '@actiontech/shared/lib/enum'; +import { LocalStorageWrapper } from '@actiontech/dms-kit'; +import { StorageKey } from '@actiontech/dms-kit'; import { cloneDeep } from 'lodash'; import { updateMemorizedAvailabilityZone, @@ -15,8 +15,8 @@ jest.mock('react-redux', () => ({ useDispatch: jest.fn() })); -jest.mock('@actiontech/shared', () => ({ - ...jest.requireActual('@actiontech/shared'), +jest.mock('@actiontech/dms-kit', () => ({ + ...jest.requireActual('@actiontech/dms-kit'), LocalStorageWrapper: { get: jest.fn(), set: jest.fn() diff --git a/packages/base/src/hooks/useRecentlySelectedZone/index.ts b/packages/base/src/hooks/useRecentlySelectedZone/index.ts index 851563cf2..401d4a36e 100644 --- a/packages/base/src/hooks/useRecentlySelectedZone/index.ts +++ b/packages/base/src/hooks/useRecentlySelectedZone/index.ts @@ -1,6 +1,6 @@ import { useCallback } from 'react'; -import { LocalStorageWrapper } from '@actiontech/shared'; -import { StorageKey } from '@actiontech/shared/lib/enum'; +import { LocalStorageWrapper } from '@actiontech/dms-kit'; +import { StorageKey } from '@actiontech/dms-kit'; import { IUidWithName } from '@actiontech/shared/lib/api/base/service/common'; import { cloneDeep, remove } from 'lodash'; import { useSelector, useDispatch } from 'react-redux'; diff --git a/packages/base/src/hooks/useRole/index.tsx b/packages/base/src/hooks/useRole/index.tsx index 31eb47e60..748cd0b15 100644 --- a/packages/base/src/hooks/useRole/index.tsx +++ b/packages/base/src/hooks/useRole/index.tsx @@ -1,16 +1,14 @@ import React from 'react'; import { useBoolean } from 'ahooks'; import { Select, Tooltip } from 'antd'; -import { EmptyBox } from '@actiontech/shared'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { EmptyBox } from '@actiontech/dms-kit'; +import { ResponseCode } from '@actiontech/dms-kit'; import { IListRole } from '@actiontech/shared/lib/api/base/service/common'; import Role from '@actiontech/shared/lib/api/base/service/Role'; import { ListRoleStatEnum } from '@actiontech/shared/lib/api/base/service/common.enum'; - const useRole = () => { const [roleList, setRoleList] = React.useState([]); const [loading, { setTrue, setFalse }] = useBoolean(); - const updateRoleList = React.useCallback(() => { setTrue(); Role.ListRoles({ @@ -30,7 +28,6 @@ const useRole = () => { setFalse(); }); }, [setFalse, setTrue]); - const generateRoleSelectOption = React.useCallback( (params?: { showTooltip?: boolean; excludeDisabled?: boolean }) => { const { showTooltip = false, excludeDisabled = false } = params ?? {}; @@ -69,7 +66,6 @@ const useRole = () => { }, [roleList] ); - return { roleList, loading, @@ -77,5 +73,4 @@ const useRole = () => { generateRoleSelectOption }; }; - export default useRole; diff --git a/packages/base/src/hooks/useSessionUser/index.tsx b/packages/base/src/hooks/useSessionUser/index.tsx index a134a0284..96edeb043 100644 --- a/packages/base/src/hooks/useSessionUser/index.tsx +++ b/packages/base/src/hooks/useSessionUser/index.tsx @@ -1,6 +1,6 @@ import { useRequest } from 'ahooks'; import { useDispatch } from 'react-redux'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { updateUserUid } from '../../store/user'; import { useUserInfo } from '@actiontech/shared/lib/features'; import Session from '@actiontech/shared/lib/api/base/service/Session'; diff --git a/packages/base/src/hooks/useSyncDmsCloudBeaverChannel/index.ts b/packages/base/src/hooks/useSyncDmsCloudBeaverChannel/index.ts index aa64675fe..ef94d23b8 100644 --- a/packages/base/src/hooks/useSyncDmsCloudBeaverChannel/index.ts +++ b/packages/base/src/hooks/useSyncDmsCloudBeaverChannel/index.ts @@ -1,5 +1,5 @@ -import { LocalStorageWrapper } from '@actiontech/shared'; -import { StorageKey } from '@actiontech/shared/lib/enum'; +import { LocalStorageWrapper } from '@actiontech/dms-kit'; +import { StorageKey } from '@actiontech/dms-kit'; import { compressToBase64 } from 'lz-string'; import { useEffect } from 'react'; diff --git a/packages/base/src/hooks/useSystemConfig/index.test.tsx b/packages/base/src/hooks/useSystemConfig/index.test.tsx index 4856f334f..7f1f0da68 100644 --- a/packages/base/src/hooks/useSystemConfig/index.test.tsx +++ b/packages/base/src/hooks/useSystemConfig/index.test.tsx @@ -1,7 +1,7 @@ import { DMS_DEFAULT_WEB_LOGO_URL, DMS_DEFAULT_WEB_TITLE -} from '@actiontech/shared/lib/data/common'; +} from '@actiontech/dms-kit'; import { useDispatch, useSelector } from 'react-redux'; import MockDate from 'mockdate'; import dayjs from 'dayjs'; diff --git a/packages/base/src/hooks/useSystemConfig/index.tsx b/packages/base/src/hooks/useSystemConfig/index.tsx index d3a78b3d6..fc6781523 100644 --- a/packages/base/src/hooks/useSystemConfig/index.tsx +++ b/packages/base/src/hooks/useSystemConfig/index.tsx @@ -3,7 +3,7 @@ import { IReduxState } from '../../store'; import { DMS_DEFAULT_WEB_TITLE, DMS_DEFAULT_WEB_LOGO_URL -} from '@actiontech/shared/lib/data/common'; +} from '@actiontech/dms-kit'; import { IBasicInfo } from '@actiontech/shared/lib/api/base/service/common'; import { useDispatch } from 'react-redux'; import { updateWebTitleAndLogo } from '../../store/system'; diff --git a/packages/base/src/hooks/useTaskSource/index.tsx b/packages/base/src/hooks/useTaskSource/index.tsx index 6a027332f..d29dec578 100644 --- a/packages/base/src/hooks/useTaskSource/index.tsx +++ b/packages/base/src/hooks/useTaskSource/index.tsx @@ -1,20 +1,17 @@ import React from 'react'; import { useBoolean } from 'ahooks'; import { Select } from 'antd'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { IDBServiceSyncTaskTip } from '@actiontech/shared/lib/api/base/service/common'; import { useDbServiceDriver } from '@actiontech/shared/lib/features'; -import { DatabaseTypeLogo } from '@actiontech/shared'; +import { DatabaseTypeLogo } from '@actiontech/dms-kit'; import DBServiceSyncTaskService from '@actiontech/shared/lib/api/base/service/DBServiceSyncTask'; - const useTaskSource = () => { const [taskSourceList, setTaskSourceList] = React.useState< IDBServiceSyncTaskTip[] >([]); const [loading, { setTrue, setFalse }] = useBoolean(); - const { getLogoUrlByDbType } = useDbServiceDriver(); - const updateTaskSourceList = React.useCallback(() => { setTrue(); DBServiceSyncTaskService.ListDBServiceSyncTaskTips() @@ -32,7 +29,6 @@ const useTaskSource = () => { setFalse(); }); }, [setFalse, setTrue]); - const generateTaskSourceSelectOption = React.useCallback(() => { return taskSourceList.map((item) => { return ( @@ -45,7 +41,6 @@ const useTaskSource = () => { ); }); }, [taskSourceList]); - const generateTaskSourceDbTypesSelectOption = React.useCallback( (source: string) => { const dbTypes = @@ -64,7 +59,6 @@ const useTaskSource = () => { }, [getLogoUrlByDbType, taskSourceList] ); - const generateTaskSourceAdditionalParams = React.useCallback( (source: string) => { return taskSourceList.find((v) => v.service_source_name === source) @@ -72,7 +66,6 @@ const useTaskSource = () => { }, [taskSourceList] ); - return { taskSourceList, loading, @@ -82,5 +75,4 @@ const useTaskSource = () => { generateTaskSourceAdditionalParams }; }; - export default useTaskSource; diff --git a/packages/base/src/hooks/useUserGroup/index.tsx b/packages/base/src/hooks/useUserGroup/index.tsx index de44aaf05..59b6922ef 100644 --- a/packages/base/src/hooks/useUserGroup/index.tsx +++ b/packages/base/src/hooks/useUserGroup/index.tsx @@ -1,6 +1,6 @@ import { useBoolean } from 'ahooks'; import { useCallback, useState } from 'react'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { IListUserGroup } from '@actiontech/shared/lib/api/base/service/common'; import UserGroup from '@actiontech/shared/lib/api/base/service/UserGroup'; diff --git a/packages/base/src/hooks/useUsername/index.tsx b/packages/base/src/hooks/useUsername/index.tsx index f6441b052..c15ac7c41 100644 --- a/packages/base/src/hooks/useUsername/index.tsx +++ b/packages/base/src/hooks/useUsername/index.tsx @@ -1,6 +1,6 @@ import { useBoolean } from 'ahooks'; import React from 'react'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { Select } from 'antd'; import User from '@actiontech/shared/lib/api/base/service/User'; import { IListUser } from '@actiontech/shared/lib/api/base/service/common'; diff --git a/packages/base/src/locale/index.ts b/packages/base/src/locale/index.ts index 00f40778e..ea90d9701 100644 --- a/packages/base/src/locale/index.ts +++ b/packages/base/src/locale/index.ts @@ -1,17 +1,17 @@ -import { StorageKey, SupportLanguage } from '@actiontech/shared/lib/enum'; +import { StorageKey, SupportLanguage } from '@actiontech/dms-kit'; import { initReactI18next } from 'react-i18next'; import i18n from 'i18next'; import sqleZhCN from 'sqle/src/locale/zh-CN'; import sqleEnUS from 'sqle/src/locale/en-US'; -import commonZhCN from '@actiontech/shared/lib/locale/zh-CN'; -import commonEnUS from '@actiontech/shared/lib/locale/en-US'; +import commonZhCN from '@actiontech/dms-kit/es/locale/zh-CN'; +import commonEnUS from '@actiontech/dms-kit/es/locale/en-US'; import zhCN from './zh-CN'; import enUS from './en-US'; import { TOptions } from 'i18next'; -import { LocalStorageWrapper } from '@actiontech/shared'; -import { TemplateKeyPath } from '@actiontech/shared/lib/types/common.type'; -import { DEFAULT_LANGUAGE } from '@actiontech/shared/lib/locale'; -import { findDuplicateKeys } from '@actiontech/shared/lib/utils/Common'; +import { LocalStorageWrapper } from '@actiontech/dms-kit'; +import { TemplateKeyPath } from '@actiontech/dms-kit/es/types/common.type'; +import { DEFAULT_LANGUAGE } from '@actiontech/dms-kit/es/locale'; +import { findDuplicateKeys } from '@actiontech/dms-kit'; // #if [DEV] const zh_dupKeys = findDuplicateKeys([ diff --git a/packages/base/src/page/Account/PersonalSMS/components/ConfigField.tsx b/packages/base/src/page/Account/PersonalSMS/components/ConfigField.tsx index a7ddd9c72..f77a611ae 100644 --- a/packages/base/src/page/Account/PersonalSMS/components/ConfigField.tsx +++ b/packages/base/src/page/Account/PersonalSMS/components/ConfigField.tsx @@ -1,28 +1,30 @@ import { useTranslation } from 'react-i18next'; -import { FormItemLabel } from '@actiontech/shared/lib/components/CustomForm'; -import { VerificationCodeInput } from '@actiontech/shared'; +import { FormItemLabel } from '@actiontech/dms-kit'; +import { VerificationCodeInput } from '@actiontech/dms-kit'; import { ConfigFieldProps } from '../index.type'; import { DmsApi } from '@actiontech/shared/lib/api'; - const ConfigField: React.FC = ({ userPhone, username }) => { const { t } = useTranslation(); - const onSendCode = () => { - return DmsApi.SMSService.SendSmsCode({ username }); + return DmsApi.SMSService.SendSmsCode({ + username + }); }; - return ( <> {userPhone} ); }; - export default ConfigField; diff --git a/packages/base/src/page/Account/PersonalSMS/index.tsx b/packages/base/src/page/Account/PersonalSMS/index.tsx index 08ff3eeda..0528d946f 100644 --- a/packages/base/src/page/Account/PersonalSMS/index.tsx +++ b/packages/base/src/page/Account/PersonalSMS/index.tsx @@ -3,7 +3,7 @@ import { useBoolean } from 'ahooks'; import { useMemo, useEffect } from 'react'; import { Spin, message } from 'antd'; import ConfigField from './components/ConfigField'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { FormFields } from './index.type'; import { switchFieldName } from './index.data'; import { @@ -11,7 +11,7 @@ import { ConfigSwitch, ConfigSubmitButtonField, useConfigSwitchControls -} from '@actiontech/shared'; +} from '@actiontech/dms-kit'; import { PersonalSMSProps } from './index.type'; import { DmsApi } from '@actiontech/shared/lib/api'; diff --git a/packages/base/src/page/Account/components/AccessToken/GenerateTokenModal.tsx b/packages/base/src/page/Account/components/AccessToken/GenerateTokenModal.tsx index 77f9d0d20..ad1a5b841 100644 --- a/packages/base/src/page/Account/components/AccessToken/GenerateTokenModal.tsx +++ b/packages/base/src/page/Account/components/AccessToken/GenerateTokenModal.tsx @@ -1,17 +1,16 @@ import { BasicButton, BasicDrawer, - BasicInputNumber, - CustomLabelContent -} from '@actiontech/shared'; + BasicInputNumber +} from '@actiontech/dms-kit'; +import { CustomLabelContent } from '@actiontech/dms-kit'; import { GenerateTokenFields, GenerateTokenModalProps } from '../../index.type'; import { Form, Space } from 'antd'; import { useTranslation } from 'react-i18next'; import { useBoolean } from 'ahooks'; import User from '@actiontech/shared/lib/api/base/service/User'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { AccessTokenModalFormItemLabelStyleWrapper } from './style'; - const GenerateTokenModal: React.FC = ({ open, onClose, @@ -19,14 +18,11 @@ const GenerateTokenModal: React.FC = ({ }) => { const { t } = useTranslation(); const [form] = Form.useForm(); - const [submitLoading, { setFalse: submitFinish, setTrue: startSubmit }] = useBoolean(); - const onSubmit = async () => { const values = await form.validateFields(); startSubmit(); - User.GenAccessToken({ expiration_days: values.expirationDays.toString() }) @@ -40,12 +36,10 @@ const GenerateTokenModal: React.FC = ({ submitFinish(); }); }; - const internalCloseHandle = () => { form.resetFields(); onClose(); }; - return ( = ({ if (!value) { return ''; } - return `${Math.floor(value as number)}`; }} min={1} @@ -107,5 +100,4 @@ const GenerateTokenModal: React.FC = ({ ); }; - export default GenerateTokenModal; diff --git a/packages/base/src/page/Account/components/AccessToken/index.tsx b/packages/base/src/page/Account/components/AccessToken/index.tsx index 88c7c5c63..076ad5cd7 100644 --- a/packages/base/src/page/Account/components/AccessToken/index.tsx +++ b/packages/base/src/page/Account/components/AccessToken/index.tsx @@ -1,13 +1,12 @@ -import { BasicButton, EmptyBox, SensitiveDisplay } from '@actiontech/shared'; -import { LabelContent } from '@actiontech/shared/lib/components/ConfigItem'; -import { formatTime } from '@actiontech/shared/lib/utils/Common'; +import { BasicButton, EmptyBox, SensitiveDisplay } from '@actiontech/dms-kit'; +import { LabelContent } from '@actiontech/dms-kit'; +import { formatTime } from '@actiontech/dms-kit'; import { useTranslation } from 'react-i18next'; import { AccessTokenConfigStyleWrapper } from './style'; import classNames from 'classnames'; import { useBoolean } from 'ahooks'; import GenerateTokenModal from './GenerateTokenModal'; import { AccessTokenProps } from '../../index.type'; - const AccessToken: React.FC = ({ token, hasExpired, @@ -15,14 +14,14 @@ const AccessToken: React.FC = ({ updateUserInfo }) => { const { t } = useTranslation(); - const [generateTokenOpen, { setFalse: closeModal, setTrue: openModal }] = useBoolean(); - return ( <>
@@ -61,5 +60,4 @@ const AccessToken: React.FC = ({ ); }; - export default AccessToken; diff --git a/packages/base/src/page/Account/components/AccessToken/style.ts b/packages/base/src/page/Account/components/AccessToken/style.ts index 155943d08..df2c71dc3 100644 --- a/packages/base/src/page/Account/components/AccessToken/style.ts +++ b/packages/base/src/page/Account/components/AccessToken/style.ts @@ -1,5 +1,5 @@ -import { FormItemLabel } from '@actiontech/shared'; -import { ConfigItemStyledWrapper } from '@actiontech/shared/lib/components/ConfigItem/style'; +import { FormItemLabel } from '@actiontech/dms-kit'; +import { ConfigItemStyledWrapper } from '@actiontech/dms-kit/es/components/ConfigItem/style'; import { styled } from '@mui/material/styles'; export const AccessTokenConfigStyleWrapper = styled(ConfigItemStyledWrapper)` diff --git a/packages/base/src/page/Account/components/UpdatePassword.tsx b/packages/base/src/page/Account/components/UpdatePassword.tsx index 5e33483f7..afe1c8bfe 100644 --- a/packages/base/src/page/Account/components/UpdatePassword.tsx +++ b/packages/base/src/page/Account/components/UpdatePassword.tsx @@ -1,26 +1,21 @@ -import { BasicDrawer, BasicInput, BasicButton } from '@actiontech/shared'; +import { BasicDrawer, BasicInput, BasicButton } from '@actiontech/dms-kit'; import { Form, Space } from 'antd'; import { useTranslation } from 'react-i18next'; import { useBoolean } from 'ahooks'; import { PasswordFormFields } from '../index.type'; import User from '@actiontech/shared/lib/api/base/service/User'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { useDispatch } from 'react-redux'; import { updateToken } from '../../../store/user'; - export const UpdatePassword: React.FC<{ open: boolean; onClose: () => void; }> = ({ open, onClose }) => { const { t } = useTranslation(); - const [form] = Form.useForm(); - const [submitLoading, { setFalse: submitFinish, setTrue: startSubmit }] = useBoolean(); - const dispatch = useDispatch(); - const onSubmit = async () => { const values = await form.validateFields(); startSubmit(); @@ -32,19 +27,21 @@ export const UpdatePassword: React.FC<{ }) .then((res) => { if (res.data.code === ResponseCode.SUCCESS) { - dispatch(updateToken({ token: '' })); + dispatch( + updateToken({ + token: '' + }) + ); } }) .finally(() => { submitFinish(); }); }; - const internalCloseHandle = () => { form.resetFields(); onClose(); }; - return ( ); }; - export default UpdatePassword; diff --git a/packages/base/src/page/Account/components/UserEmail.tsx b/packages/base/src/page/Account/components/UserEmail.tsx index ce8155067..f6e633b0d 100644 --- a/packages/base/src/page/Account/components/UserEmail.tsx +++ b/packages/base/src/page/Account/components/UserEmail.tsx @@ -1,15 +1,11 @@ -import { ConfigItem } from '@actiontech/shared'; +import { ConfigItem } from '@actiontech/dms-kit'; import User from '@actiontech/shared/lib/api/base/service/User'; -import { - EditInput, - LabelContent -} from '@actiontech/shared/lib/components/ConfigItem'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { EditInput, LabelContent } from '@actiontech/dms-kit'; +import { ResponseCode } from '@actiontech/dms-kit'; import { useBoolean } from 'ahooks'; import { useTranslation } from 'react-i18next'; import { UpdateComponentCommonProps } from '../index.type'; -import { emailValidate } from '@actiontech/shared/lib/utils/Common'; - +import { emailValidate } from '@actiontech/dms-kit'; const UserEmail: React.FC = ({ messageApi, updateUserInfo, @@ -20,7 +16,6 @@ const UserEmail: React.FC = ({ emailFieldVisible, { setTrue: showEmailField, setFalse: hideEmailField } ] = useBoolean(false); - const onSubmit = (value: string) => { User.UpdateCurrentUser({ current_user: { @@ -45,7 +40,6 @@ const UserEmail: React.FC = ({ } return true; }; - return ( = ({ /> ); }; - export default UserEmail; diff --git a/packages/base/src/page/Account/components/UserPhone.tsx b/packages/base/src/page/Account/components/UserPhone.tsx index 8e10280ed..207d5e9c7 100644 --- a/packages/base/src/page/Account/components/UserPhone.tsx +++ b/packages/base/src/page/Account/components/UserPhone.tsx @@ -1,14 +1,10 @@ -import { ConfigItem } from '@actiontech/shared'; +import { ConfigItem } from '@actiontech/dms-kit'; import User from '@actiontech/shared/lib/api/base/service/User'; -import { - EditInput, - LabelContent -} from '@actiontech/shared/lib/components/ConfigItem'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { EditInput, LabelContent } from '@actiontech/dms-kit'; +import { ResponseCode } from '@actiontech/dms-kit'; import { useBoolean } from 'ahooks'; import { useTranslation } from 'react-i18next'; import { UpdateComponentCommonProps } from '../index.type'; - const UserPhone: React.FC = ({ messageApi, updateUserInfo, @@ -19,7 +15,6 @@ const UserPhone: React.FC = ({ phoneFieldVisible, { setTrue: showPhoneField, setFalse: hidePhoneField } ] = useBoolean(false); - const onSubmit = (value: string) => { User.UpdateCurrentUser({ current_user: { @@ -33,7 +28,6 @@ const UserPhone: React.FC = ({ } }); }; - const phoneValidator = (value: string): boolean => { const reg = /^1\d{10}$/; if (value && !reg.test(value)) { @@ -45,7 +39,6 @@ const UserPhone: React.FC = ({ } return true; }; - return ( {t('dmsAccount.phone')}} @@ -64,5 +57,4 @@ const UserPhone: React.FC = ({ /> ); }; - export default UserPhone; diff --git a/packages/base/src/page/Account/components/UserWechat.tsx b/packages/base/src/page/Account/components/UserWechat.tsx index 2257ad3f7..9d601467f 100644 --- a/packages/base/src/page/Account/components/UserWechat.tsx +++ b/packages/base/src/page/Account/components/UserWechat.tsx @@ -1,14 +1,10 @@ -import { ConfigItem } from '@actiontech/shared'; +import { ConfigItem } from '@actiontech/dms-kit'; import User from '@actiontech/shared/lib/api/base/service/User'; -import { - EditInput, - LabelContent -} from '@actiontech/shared/lib/components/ConfigItem'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { EditInput, LabelContent } from '@actiontech/dms-kit'; +import { ResponseCode } from '@actiontech/dms-kit'; import { useBoolean } from 'ahooks'; import { useTranslation } from 'react-i18next'; import { UpdateComponentCommonProps } from '../index.type'; - const UserWechat: React.FC = ({ messageApi, updateUserInfo, @@ -19,7 +15,6 @@ const UserWechat: React.FC = ({ wxidFieldVisible, { setTrue: showWechatField, setFalse: hideWechatField } ] = useBoolean(false); - const onSubmit = (value: string) => { User.UpdateCurrentUser({ current_user: { @@ -33,7 +28,6 @@ const UserWechat: React.FC = ({ } }); }; - return ( {t('dmsAccount.wechat')}} @@ -51,5 +45,4 @@ const UserWechat: React.FC = ({ /> ); }; - export default UserWechat; diff --git a/packages/base/src/page/Account/index.tsx b/packages/base/src/page/Account/index.tsx index 4c5ee5bf8..0c009ce6e 100644 --- a/packages/base/src/page/Account/index.tsx +++ b/packages/base/src/page/Account/index.tsx @@ -1,6 +1,6 @@ import { useEffect } from 'react'; import { useTranslation } from 'react-i18next'; -import { PageHeader, BasicButton, ConfigItem } from '@actiontech/shared'; +import { PageHeader, BasicButton, ConfigItem } from '@actiontech/dms-kit'; import useUserInfo from '@actiontech/shared/lib/features/useUserInfo'; import { AccountContentStyleWrapper, @@ -9,30 +9,24 @@ import { import UpdatePassword from './components/UpdatePassword'; import { useBoolean } from 'ahooks'; import { Spin, message } from 'antd'; -import { LabelContent } from '@actiontech/shared/lib/components/ConfigItem'; +import { LabelContent } from '@actiontech/dms-kit'; import UserWechat from './components/UserWechat'; import UserPhone from './components/UserPhone'; import UserEmail from './components/UserEmail'; import AccessToken from './components/AccessToken'; import PersonalSMS from './PersonalSMS'; - const Account: React.FC = () => { const { t } = useTranslation(); - const [messageApi, contextHolder] = message.useMessage(); - const [ updatePasswordDrawerVisible, { setTrue: showUpdatePasswordDrawer, setFalse: hideUpdatePasswordDrawer } ] = useBoolean(); - const { userInfo, getUserInfo, updateUserInfo, getUserInfoLoading } = useUserInfo(); - useEffect(() => { getUserInfo(); }, [getUserInfo]); - return (
{contextHolder} @@ -93,5 +87,4 @@ const Account: React.FC = () => {
); }; - export default Account; diff --git a/packages/base/src/page/AvailabilityZone/AvailabilityZoneWrapper/index.tsx b/packages/base/src/page/AvailabilityZone/AvailabilityZoneWrapper/index.tsx index 698e8785e..6a747750e 100644 --- a/packages/base/src/page/AvailabilityZone/AvailabilityZoneWrapper/index.tsx +++ b/packages/base/src/page/AvailabilityZone/AvailabilityZoneWrapper/index.tsx @@ -1,26 +1,22 @@ import React, { useEffect, useMemo, useState } from 'react'; import { useLocation, Outlet } from 'react-router-dom'; import { Space } from 'antd'; -import { BasicModal, BasicSelect, BasicButton } from '@actiontech/shared'; +import { BasicModal, BasicSelect, BasicButton } from '@actiontech/dms-kit'; import { useTranslation } from 'react-i18next'; import { useTypedNavigate } from '@actiontech/shared'; import useRecentlySelectedZone from '../../../hooks/useRecentlySelectedZone'; - const AvailabilityZoneWrapper: React.FC = () => { const { t } = useTranslation(); const location = useLocation(); const navigate = useTypedNavigate(); - const { availabilityZone, updateRecentlySelectedZone, availabilityZoneOptions } = useRecentlySelectedZone(); - const [zoneModalVisible, setZoneModalVisible] = useState(true); const [selectedZone, setSelectedZone] = useState(); const [pendingPath, setPendingPath] = useState(null); - useEffect(() => { if (!availabilityZone) { const { pathname, search } = location; @@ -28,11 +24,9 @@ const AvailabilityZoneWrapper: React.FC = () => { setZoneModalVisible(true); } }, [location, availabilityZone]); - const onModalCancel = () => { navigate(-1); }; - const onModalOk = () => { updateRecentlySelectedZone({ uid: selectedZone ?? '', @@ -40,21 +34,18 @@ const AvailabilityZoneWrapper: React.FC = () => { availabilityZoneOptions.find((zone) => zone?.value === selectedZone) ?.label ?? '' }); - setZoneModalVisible(false); if (pendingPath) { navigate(pendingPath); setPendingPath(null); } }; - const isZoneConfigured = !!availabilityZoneOptions?.length; const isMemoriredZoneNotInOptions = useMemo( () => !availabilityZoneOptions?.some((v) => v.value === availabilityZone?.uid), [availabilityZoneOptions, availabilityZone] ); - if (isZoneConfigured && isMemoriredZoneNotInOptions) { return ( { ); } - return ; }; - export default AvailabilityZoneWrapper; diff --git a/packages/base/src/page/AvailabilityZone/Drawer/Create/index.tsx b/packages/base/src/page/AvailabilityZone/Drawer/Create/index.tsx index 95f1c050a..691c6cfcf 100644 --- a/packages/base/src/page/AvailabilityZone/Drawer/Create/index.tsx +++ b/packages/base/src/page/AvailabilityZone/Drawer/Create/index.tsx @@ -2,7 +2,7 @@ import { useBoolean } from 'ahooks'; import { message, Form, Space } from 'antd'; import { useTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import EmitterKey from '../../../../data/EmitterKey'; import { ModalName } from '../../../../data/ModalName'; import { IReduxState } from '../../../../store'; @@ -10,27 +10,20 @@ import { updateAvailabilityZoneModalStatus } from '../../../../store/availabilit import EventEmitter from '../../../../utils/EventEmitter'; import { AvailabilityZoneFormType } from '../Form/type'; import AvailabilityZoneForm from '../Form'; -import { BasicButton, BasicDrawer } from '@actiontech/shared'; +import { BasicButton, BasicDrawer } from '@actiontech/dms-kit'; import { DmsApi } from '@actiontech/shared/lib/api'; import dayjs from 'dayjs'; - const CreateAvailabilityZoneDrawer: React.FC = () => { const { t } = useTranslation(); - const dispatch = useDispatch(); - const [form] = Form.useForm(); - const [messageApi, contextHolder] = message.useMessage(); - const [submitLoading, { setFalse: submitFinish, setTrue: startSubmit }] = useBoolean(); - const visible = useSelector( (state: IReduxState) => state.availabilityZone.modalStatus[ModalName.DMS_Create_Availability_zone] ); - const submit = async () => { const values = await form.validateFields(); startSubmit(); @@ -53,7 +46,6 @@ const CreateAvailabilityZoneDrawer: React.FC = () => { submitFinish(); }); }; - const onClose = () => { form.resetFields(); dispatch( @@ -63,7 +55,6 @@ const CreateAvailabilityZoneDrawer: React.FC = () => { }) ); }; - return ( { ); }; - export default CreateAvailabilityZoneDrawer; diff --git a/packages/base/src/page/AvailabilityZone/Drawer/Form/index.tsx b/packages/base/src/page/AvailabilityZone/Drawer/Form/index.tsx index f00fee336..b566b91f9 100644 --- a/packages/base/src/page/AvailabilityZone/Drawer/Form/index.tsx +++ b/packages/base/src/page/AvailabilityZone/Drawer/Form/index.tsx @@ -1,31 +1,36 @@ import { Form } from 'antd'; -import { BasicInput } from '@actiontech/shared'; +import { BasicInput } from '@actiontech/dms-kit'; import { useTranslation } from 'react-i18next'; import { AvailabilityZoneFormProps } from './type'; - const AvailabilityZoneForm: React.FC = ({ form }) => { const { t } = useTranslation(); - return (
); }; - export default AvailabilityZoneForm; diff --git a/packages/base/src/page/AvailabilityZone/Drawer/Update/index.tsx b/packages/base/src/page/AvailabilityZone/Drawer/Update/index.tsx index 858f98d8d..75568799c 100644 --- a/packages/base/src/page/AvailabilityZone/Drawer/Update/index.tsx +++ b/packages/base/src/page/AvailabilityZone/Drawer/Update/index.tsx @@ -2,7 +2,7 @@ import { useBoolean } from 'ahooks'; import { message, Form, Space } from 'antd'; import { useTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import EmitterKey from '../../../../data/EmitterKey'; import { ModalName } from '../../../../data/ModalName'; import { IReduxState } from '../../../../store'; @@ -10,22 +10,16 @@ import { updateAvailabilityZoneModalStatus } from '../../../../store/availabilit import EventEmitter from '../../../../utils/EventEmitter'; import { AvailabilityZoneFormType } from '../Form/type'; import AvailabilityZoneForm from '../Form'; -import { BasicButton, BasicDrawer } from '@actiontech/shared'; +import { BasicButton, BasicDrawer } from '@actiontech/dms-kit'; import { DmsApi } from '@actiontech/shared/lib/api'; import { useEffect } from 'react'; - const UpdateAvailabilityZoneDrawer: React.FC = () => { const { t } = useTranslation(); - const dispatch = useDispatch(); - const [form] = Form.useForm(); - const [messageApi, contextHolder] = message.useMessage(); - const [submitLoading, { setFalse: submitFinish, setTrue: startSubmit }] = useBoolean(); - const { visible, selectedRecord } = useSelector((state: IReduxState) => ({ visible: state.availabilityZone.modalStatus[ @@ -33,7 +27,6 @@ const UpdateAvailabilityZoneDrawer: React.FC = () => { ], selectedRecord: state.availabilityZone.selectAvailabilityZone })); - const submit = async () => { const values = await form.validateFields(); startSubmit(); @@ -56,7 +49,6 @@ const UpdateAvailabilityZoneDrawer: React.FC = () => { submitFinish(); }); }; - const onClose = () => { form.resetFields(); dispatch( @@ -66,7 +58,6 @@ const UpdateAvailabilityZoneDrawer: React.FC = () => { }) ); }; - useEffect(() => { if (visible) { form.setFieldsValue({ @@ -75,7 +66,6 @@ const UpdateAvailabilityZoneDrawer: React.FC = () => { }); } }, [form, selectedRecord, visible]); - return ( { ); }; - export default UpdateAvailabilityZoneDrawer; diff --git a/packages/base/src/page/AvailabilityZone/List/action.tsx b/packages/base/src/page/AvailabilityZone/List/action.tsx index 45c52563a..d8dddd09c 100644 --- a/packages/base/src/page/AvailabilityZone/List/action.tsx +++ b/packages/base/src/page/AvailabilityZone/List/action.tsx @@ -7,7 +7,6 @@ import { import { ReactNode } from 'react'; import { t } from '../../../locale'; import { IGateway } from '@actiontech/shared/lib/api/base/service/common'; - export const AvailabilityZonePageHeaderActions = ( onCreate: () => void ): Record<'create_availability_zone', ReactNode> => { @@ -25,7 +24,6 @@ export const AvailabilityZonePageHeaderActions = ( ) }; }; - export const AvailabilityZoneTableActions = ( onEdit: (record?: IGateway) => void, onDelete: (record?: IGateway) => void diff --git a/packages/base/src/page/AvailabilityZone/List/index.tsx b/packages/base/src/page/AvailabilityZone/List/index.tsx index cfc6056fc..b61659179 100644 --- a/packages/base/src/page/AvailabilityZone/List/index.tsx +++ b/packages/base/src/page/AvailabilityZone/List/index.tsx @@ -1,4 +1,4 @@ -import { PageHeader } from '@actiontech/shared'; +import { PageHeader } from '@actiontech/dms-kit'; import { useTranslation } from 'react-i18next'; import { AvailabilityZonePageHeaderActions, @@ -27,24 +27,18 @@ import { IListGatewaysParams } from '@actiontech/shared/lib/api/base/service/Gat import { AvailabilityZoneListColumns } from './column'; import { usePermission } from '@actiontech/shared/lib/features'; import { message, Space } from 'antd'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; - +import { ResponseCode } from '@actiontech/dms-kit'; const AvailabilityZoneList: React.FC = () => { const { t } = useTranslation(); const dispatch = useDispatch(); - const [messageApi, contextHolder] = message.useMessage(); - const { parse2TableActionPermissions } = usePermission(); - const { tableChange, pagination } = useTableRequestParams< IGateway, IListGatewaysParams >(); - const { requestErrorMessage, handleTableRequestError } = useTableRequestError(); - const { data: gateways, loading: getGatewaysLoading, @@ -62,7 +56,6 @@ const AvailabilityZoneList: React.FC = () => { refreshDeps: [pagination] } ); - const onCreate = () => { dispatch( updateAvailabilityZoneModalStatus({ @@ -71,7 +64,6 @@ const AvailabilityZoneList: React.FC = () => { }) ); }; - const tableActions = useMemo(() => { const onEdit = (record?: IGateway) => { dispatch( @@ -80,9 +72,12 @@ const AvailabilityZoneList: React.FC = () => { status: true }) ); - dispatch(updateSelectAvailabilityZone({ availabilityZone: record })); + dispatch( + updateSelectAvailabilityZone({ + availabilityZone: record + }) + ); }; - const onDelete = (record?: IGateway) => { DmsApi.GatewayService.DeleteGateway({ gateway_id: record?.gateway_id ?? '' @@ -98,7 +93,6 @@ const AvailabilityZoneList: React.FC = () => { AvailabilityZoneTableActions(onEdit, onDelete) ); }, [dispatch, parse2TableActionPermissions, refresh, messageApi, t]); - useEffect(() => { const { unsubscribe } = EventEmitter.subscribe( EmitterKey.Refresh_Availability_Zone_Page, @@ -106,9 +100,7 @@ const AvailabilityZoneList: React.FC = () => { ); return unsubscribe; }, [refresh]); - const pageHeaderActions = AvailabilityZonePageHeaderActions(onCreate); - return ( <> { ); }; - export default AvailabilityZoneList; diff --git a/packages/base/src/page/BindUser/index.ce.test.tsx b/packages/base/src/page/BindUser/index.ce.test.tsx index 297fd51cd..25b41458f 100644 --- a/packages/base/src/page/BindUser/index.ce.test.tsx +++ b/packages/base/src/page/BindUser/index.ce.test.tsx @@ -8,9 +8,9 @@ import { baseSuperRender } from '../../testUtils/superRender'; import dms from '@actiontech/shared/lib/testUtil/mockApi/base/global'; import BindUser from '.'; import { getBySelector } from '@actiontech/shared/lib/testUtil/customQuery'; -import { eventEmitter } from '@actiontech/shared/lib/utils/EventEmitter'; -import EmitterKey from '@actiontech/shared/lib/data/EmitterKey'; -import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths'; +import { eventEmitter } from '@actiontech/dms-kit/es/utils/EventEmitter'; +import EmitterKey from '@actiontech/dms-kit/es/data/EmitterKey'; +import { ROUTE_PATHS } from '@actiontech/dms-kit'; jest.mock('react-router-dom', () => { return { diff --git a/packages/base/src/page/BindUser/index.test.tsx b/packages/base/src/page/BindUser/index.test.tsx index c870af4f8..ec1646b49 100644 --- a/packages/base/src/page/BindUser/index.test.tsx +++ b/packages/base/src/page/BindUser/index.test.tsx @@ -4,14 +4,14 @@ import { useDispatch } from 'react-redux'; import { baseSuperRender } from '../../testUtils/superRender'; import dms from '@actiontech/shared/lib/testUtil/mockApi/base/global'; import { getBySelector } from '@actiontech/shared/lib/testUtil/customQuery'; -import { eventEmitter } from '@actiontech/shared/lib/utils/EventEmitter'; -import EmitterKey from '@actiontech/shared/lib/data/EmitterKey'; -import { LocalStorageWrapper } from '@actiontech/shared'; +import { eventEmitter } from '@actiontech/dms-kit/es/utils/EventEmitter'; +import EmitterKey from '@actiontech/dms-kit/es/data/EmitterKey'; +import { LocalStorageWrapper } from '@actiontech/dms-kit'; import { CompanyNoticeDisplayStatusEnum, StorageKey -} from '@actiontech/shared/lib/enum'; -import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths'; +} from '@actiontech/dms-kit'; +import { ROUTE_PATHS } from '@actiontech/dms-kit'; import BindUser from '.'; diff --git a/packages/base/src/page/BindUser/index.tsx b/packages/base/src/page/BindUser/index.tsx index 724899f62..35056ac07 100644 --- a/packages/base/src/page/BindUser/index.tsx +++ b/packages/base/src/page/BindUser/index.tsx @@ -4,56 +4,43 @@ import { useDispatch } from 'react-redux'; import { Typography, Form } from 'antd'; import { OauthLoginFormFields } from './index.type'; import { updateToken } from '../../store/user'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import OAuth2 from '@actiontech/shared/lib/api/base/service/OAuth2'; import LoginLayout from '../Login/components/LoginLayout'; -import { - BasicButton, - BasicInput, - useTypedNavigate, - useTypedQuery -} from '@actiontech/shared'; -import { DMS_DEFAULT_WEB_TITLE } from '@actiontech/shared/lib/data/common'; -import { eventEmitter } from '@actiontech/shared/lib/utils/EventEmitter'; -import EmitterKey from '@actiontech/shared/lib/data/EmitterKey'; +import { BasicButton, BasicInput } from '@actiontech/dms-kit'; +import { useTypedNavigate, useTypedQuery } from '@actiontech/shared'; +import { DMS_DEFAULT_WEB_TITLE } from '@actiontech/dms-kit'; +import { eventEmitter } from '@actiontech/dms-kit/es/utils/EventEmitter'; +import EmitterKey from '@actiontech/dms-kit/es/data/EmitterKey'; import useBrowserVersionTips from '../../hooks/useBrowserVersionTips'; import { LockFilled, UserFilled } from '@actiontech/icons'; import useThemeStyleData from '../../hooks/useThemeStyleData'; import { OPEN_CLOUD_BEAVER_URL_PARAM_NAME, ROUTE_PATHS -} from '@actiontech/shared/lib/data/routePaths'; -import { LocalStorageWrapper } from '@actiontech/shared'; +} from '@actiontech/dms-kit'; +import { LocalStorageWrapper } from '@actiontech/dms-kit'; import { StorageKey, CompanyNoticeDisplayStatusEnum -} from '@actiontech/shared/lib/enum'; - +} from '@actiontech/dms-kit'; const BindUser = () => { const navigate = useTypedNavigate(); - const { baseTheme } = useThemeStyleData(); - const dispatch = useDispatch(); - const { t } = useTranslation(); - const extractQueries = useTypedQuery(); const urlParams = useMemo(() => { return extractQueries(ROUTE_PATHS.BASE.USER_BIND.index); }, [extractQueries]); - useBrowserVersionTips(); - const loginLock = useRef(false); - const concatToken = (token = '') => { if (!token) { return ''; } return `Bearer ${token}`; }; - const navigateToTarget = useCallback(() => { const encodedTarget = urlParams?.target; if (encodedTarget) { @@ -70,7 +57,6 @@ const BindUser = () => { navigate(ROUTE_PATHS.BASE.HOME); } }, [navigate, urlParams]); - const login = (values: OauthLoginFormFields) => { const oauth2Token = urlParams?.oauth2_token; loginLock.current = true; @@ -92,7 +78,11 @@ const BindUser = () => { }) .then((res) => { if (res.data.code === ResponseCode.SUCCESS) { - dispatch(updateToken({ token: concatToken(res.data.data?.token) })); + dispatch( + updateToken({ + token: concatToken(res.data.data?.token) + }) + ); navigateToTarget(); // #if [ee] LocalStorageWrapper.set( @@ -106,7 +96,6 @@ const BindUser = () => { loginLock.current = false; }); }; - useEffect(() => { const error = urlParams?.error; if (error) { @@ -130,7 +119,11 @@ const BindUser = () => { navigate(ROUTE_PATHS.BASE.LOGIN.index.path); return; } - dispatch(updateToken({ token: concatToken(token) })); + dispatch( + updateToken({ + token: concatToken(token) + }) + ); navigateToTarget(); }, [ dispatch, @@ -141,7 +134,6 @@ const BindUser = () => { urlParams?.error, urlParams?.user_exist ]); - return (
@@ -212,5 +204,4 @@ const BindUser = () => { ); }; - export default BindUser; diff --git a/packages/base/src/page/CloudBeaver/List/column.tsx b/packages/base/src/page/CloudBeaver/List/column.tsx index 5d24a052e..1086597df 100644 --- a/packages/base/src/page/CloudBeaver/List/column.tsx +++ b/packages/base/src/page/CloudBeaver/List/column.tsx @@ -5,22 +5,17 @@ import { import { IListCBOperationLogsParams } from '@actiontech/shared/lib/api/base/service/CBOperationLogs/index.d'; import { ICBOperationLog } from '@actiontech/shared/lib/api/base/service/common'; import { t } from '../../../locale'; -import { formatTime } from '@actiontech/shared/lib/utils/Common'; +import { formatTime } from '@actiontech/dms-kit'; import ResultIconRender from 'sqle/src/components/AuditResultMessage/ResultIconRender'; import { OperationOperationTypeEnum } from '@actiontech/shared/lib/api/base/service/common.enum'; -import { - CustomAvatar, - SQLRenderer, - BasicTypographyEllipsis -} from '@actiontech/shared'; - +import { CustomAvatar } from '@actiontech/dms-kit'; +import { SQLRenderer, BasicTypographyEllipsis } from '@actiontech/shared'; export type CBOperationListFilterParamType = PageInfoWithoutIndexAndSize< IListCBOperationLogsParams & { page_index: number; }, 'project_uid' >; - export const CBOperationListColumns = ( onOpenDrawer: (record: ICBOperationLog) => void ): ActiontechTableColumn => { diff --git a/packages/base/src/page/CloudBeaver/List/index.test.tsx b/packages/base/src/page/CloudBeaver/List/index.test.tsx index 8398976f4..d4dedacf0 100644 --- a/packages/base/src/page/CloudBeaver/List/index.test.tsx +++ b/packages/base/src/page/CloudBeaver/List/index.test.tsx @@ -18,7 +18,7 @@ import { createSpyFailResponse } from '@actiontech/shared/lib/testUtil/mockApi'; import { listCBOperationLogsMockData } from '@actiontech/shared/lib/testUtil/mockApi/base/cloudBeaver/data'; import { ModalName } from '../../../data/ModalName'; import { ModalName as SqleModalName } from 'sqle/src/data/ModalName'; -import { SystemRole } from '@actiontech/shared/lib/enum'; +import { SystemRole } from '@actiontech/dms-kit'; jest.mock('react-redux', () => { return { diff --git a/packages/base/src/page/CloudBeaver/components/OperationStatistics.tsx b/packages/base/src/page/CloudBeaver/components/OperationStatistics.tsx index 711a9f0d4..76d0a8329 100644 --- a/packages/base/src/page/CloudBeaver/components/OperationStatistics.tsx +++ b/packages/base/src/page/CloudBeaver/components/OperationStatistics.tsx @@ -1,7 +1,7 @@ import { Col, Typography, Space } from 'antd'; import { AccountStatisticsStyleWrapper } from '../style'; import { useTranslation } from 'react-i18next'; -import { floatToPercent } from '@actiontech/shared/lib/utils/Math'; +import { floatToPercent } from '@actiontech/dms-kit'; const OperationStatistics: React.FC<{ total?: number; diff --git a/packages/base/src/page/CloudBeaver/hooks/useCBOperationTips.ts b/packages/base/src/page/CloudBeaver/hooks/useCBOperationTips.ts index 8dcb46e90..c3e916aa0 100644 --- a/packages/base/src/page/CloudBeaver/hooks/useCBOperationTips.ts +++ b/packages/base/src/page/CloudBeaver/hooks/useCBOperationTips.ts @@ -1,6 +1,6 @@ import { useBoolean } from 'ahooks'; import { useCallback, useState, useMemo } from 'react'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import CBOperationLogs from '@actiontech/shared/lib/api/base/service/CBOperationLogs'; import { IGetCBOperationLogTipsParams } from '@actiontech/shared/lib/api/base/service/CBOperationLogs/index.d'; diff --git a/packages/base/src/page/CloudBeaver/index.ce.test.tsx b/packages/base/src/page/CloudBeaver/index.ce.test.tsx index 2e3708041..36d2069c9 100644 --- a/packages/base/src/page/CloudBeaver/index.ce.test.tsx +++ b/packages/base/src/page/CloudBeaver/index.ce.test.tsx @@ -6,7 +6,7 @@ import cloudBeaver from '@actiontech/shared/lib/testUtil/mockApi/base/cloudBeave import { act, cleanup, fireEvent, screen } from '@testing-library/react'; import { createSpySuccessResponse } from '@actiontech/shared/lib/testUtil/mockApi'; import { enableSqlQueryUrlData } from '@actiontech/shared/lib/testUtil/mockApi/base/cloudBeaver/data'; -import { OPEN_CLOUD_BEAVER_URL_PARAM_NAME } from '@actiontech/shared/lib/data/routePaths'; +import { OPEN_CLOUD_BEAVER_URL_PARAM_NAME } from '@actiontech/dms-kit'; import { baseSuperRender } from '../../testUtils/superRender'; describe('test base/page/CloudBeaver', () => { diff --git a/packages/base/src/page/CloudBeaver/index.test.tsx b/packages/base/src/page/CloudBeaver/index.test.tsx index 02edb1612..c312f5de8 100644 --- a/packages/base/src/page/CloudBeaver/index.test.tsx +++ b/packages/base/src/page/CloudBeaver/index.test.tsx @@ -11,7 +11,7 @@ import userCenter from '@actiontech/shared/lib/testUtil/mockApi/base/userCenter' import dbServices from '@actiontech/shared/lib/testUtil/mockApi/base/dbServices'; import { useDispatch, useSelector } from 'react-redux'; import { driverMeta } from 'sqle/src/hooks/useDatabaseType/index.test.data'; -import { OPEN_CLOUD_BEAVER_URL_PARAM_NAME } from '@actiontech/shared/lib/data/routePaths'; +import { OPEN_CLOUD_BEAVER_URL_PARAM_NAME } from '@actiontech/dms-kit'; jest.mock('react-redux', () => { return { diff --git a/packages/base/src/page/CloudBeaver/index.tsx b/packages/base/src/page/CloudBeaver/index.tsx index a2d01846c..b4779a6e5 100644 --- a/packages/base/src/page/CloudBeaver/index.tsx +++ b/packages/base/src/page/CloudBeaver/index.tsx @@ -3,27 +3,19 @@ import { Card, Space, Typography, Spin } from 'antd'; import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import cloudBeaver from '@actiontech/shared/lib/api/base/service/CloudBeaver'; -import { - PageHeader, - EnterpriseFeatureDisplay, - BasicButton, - EmptyBox, - useTypedQuery -} from '@actiontech/shared'; +import { PageHeader, BasicButton, EmptyBox } from '@actiontech/dms-kit'; +import { EnterpriseFeatureDisplay, useTypedQuery } from '@actiontech/shared'; import { CloudBeaverContentStyleWrapper, CloudBeaverContentSpaceStyleWrapper, CloudBeaverContentIconStyleWrapper } from './style'; import CBOperationLogsList from './List/index'; -import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths'; - +import { ROUTE_PATHS } from '@actiontech/dms-kit'; const CloudBeaver = () => { const { t } = useTranslation(); const extractQueries = useTypedQuery(); - const [getOperationLogsLoading, setGetOperationLogsLoading] = useState(false); - const { data, loading, runAsync } = useRequest( () => { return cloudBeaver.GetSQLQueryConfiguration().then((res) => { @@ -34,19 +26,16 @@ const CloudBeaver = () => { manual: true } ); - useEffect(() => { runAsync().then((res) => { if (res?.enable_sql_query && res.sql_query_root_uri) { const params = extractQueries(ROUTE_PATHS.BASE.CLOUD_BEAVER.index); - if (params?.open_cloud_beaver === 'true') { window.location.href = res.sql_query_root_uri; } } }); }, [extractQueries, runAsync]); - const openCloudBeaver = () => { runAsync().then((res) => { if (res?.enable_sql_query && res.sql_query_root_uri) { @@ -54,7 +43,6 @@ const CloudBeaver = () => { } }); }; - return ( <> { ); }; - export default CloudBeaver; diff --git a/packages/base/src/page/DataExportManagement/Common/AuditResultList/index.tsx b/packages/base/src/page/DataExportManagement/Common/AuditResultList/index.tsx index 742cd730f..40024d01f 100644 --- a/packages/base/src/page/DataExportManagement/Common/AuditResultList/index.tsx +++ b/packages/base/src/page/DataExportManagement/Common/AuditResultList/index.tsx @@ -1,5 +1,5 @@ -import { BasicSegmented } from '@actiontech/shared'; -import { SegmentedRowStyleWrapper } from '@actiontech/shared/lib/styleWrapper/element'; +import { BasicSegmented } from '@actiontech/dms-kit'; +import { SegmentedRowStyleWrapper } from '@actiontech/dms-kit'; import AuditResultTable from './Table'; import { useState } from 'react'; import { AuditResultListProps } from './index.type'; @@ -7,10 +7,9 @@ import { AuditResultStyleWrapper } from './style'; import { useRequest } from 'ahooks'; import DataExportTask from '@actiontech/shared/lib/api/base/service/DataExportTask'; import { IGetDataExportTask } from '@actiontech/shared/lib/api/base/service/common'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import DbServiceSegmentedLabel from '../DbServiceSegmentedLabel'; import { AuditTaskResV1AuditLevelEnum } from '@actiontech/shared/lib/api/sqle/service/common.enum'; - const AuditResultList: React.FC = ({ taskIDs, projectID, @@ -18,13 +17,10 @@ const AuditResultList: React.FC = ({ onSuccessGetDataExportTaskSqls }) => { const [tasks, setTasks] = useState([]); - const [currentTaskID, setCurrentTaskID] = useState(); - const handleChangeCurrentTask = (taskID?: string) => { setCurrentTaskID(taskID); }; - useRequest( () => DataExportTask.BatchGetDataExportTask({ @@ -43,7 +39,6 @@ const AuditResultList: React.FC = ({ refreshDeps: taskIDs } ); - return ( @@ -75,5 +70,4 @@ const AuditResultList: React.FC = ({ ); }; - export default AuditResultList; diff --git a/packages/base/src/page/DataExportManagement/Common/BackToWorkflowList/index.tsx b/packages/base/src/page/DataExportManagement/Common/BackToWorkflowList/index.tsx index 59079ff7a..c3b353ffd 100644 --- a/packages/base/src/page/DataExportManagement/Common/BackToWorkflowList/index.tsx +++ b/packages/base/src/page/DataExportManagement/Common/BackToWorkflowList/index.tsx @@ -1,20 +1,23 @@ -import { BasicButton, TypedLink } from '@actiontech/shared'; +import { BasicButton } from '@actiontech/dms-kit'; +import { TypedLink } from '@actiontech/shared'; import { useCurrentProject } from '@actiontech/shared/lib/features'; import { useTranslation } from 'react-i18next'; import { LeftArrowOutlined } from '@actiontech/icons'; -import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths'; - +import { ROUTE_PATHS } from '@actiontech/dms-kit'; const BackToWorkflowList: React.FC = () => { const { projectID } = useCurrentProject(); const { t } = useTranslation(); - return ( - + }> {t('dmsDataExport.create.backToList')} ); }; - export default BackToWorkflowList; diff --git a/packages/base/src/page/DataExportManagement/Common/BasicInfoWrapper/index.tsx b/packages/base/src/page/DataExportManagement/Common/BasicInfoWrapper/index.tsx index 789170308..8a77c4c4e 100644 --- a/packages/base/src/page/DataExportManagement/Common/BasicInfoWrapper/index.tsx +++ b/packages/base/src/page/DataExportManagement/Common/BasicInfoWrapper/index.tsx @@ -1,9 +1,8 @@ import classNames from 'classnames'; import { BasicInfoWrapperProps } from './index.type'; -import { EmptyBox } from '@actiontech/shared'; +import { EmptyBox } from '@actiontech/dms-kit'; import { DataExportStatusDictionary } from '../index.data'; import { BasicInfoStyleWrapper } from './style'; - const BasicInfoWrapper: React.FC = ({ title, desc, @@ -82,5 +81,4 @@ const BasicInfoWrapper: React.FC = ({ ); }; - export default BasicInfoWrapper; diff --git a/packages/base/src/page/DataExportManagement/Create/components/CreateTask/BaseInfoForm/BaseInfoFormItem.tsx b/packages/base/src/page/DataExportManagement/Create/components/CreateTask/BaseInfoForm/BaseInfoFormItem.tsx index f55af8dcb..8f16b8c24 100644 --- a/packages/base/src/page/DataExportManagement/Create/components/CreateTask/BaseInfoForm/BaseInfoFormItem.tsx +++ b/packages/base/src/page/DataExportManagement/Create/components/CreateTask/BaseInfoForm/BaseInfoFormItem.tsx @@ -1,16 +1,16 @@ +import { BasicInput } from '@actiontech/dms-kit'; import { - BasicInput, FormInputBotBorder, FormItemLabel, FormItemNoLabel -} from '@actiontech/shared'; -import { workflowNameRule } from '@actiontech/shared/lib/utils/FormRule'; +} from '@actiontech/dms-kit'; +import { workflowNameRule } from '@actiontech/dms-kit'; import { ReactNode } from 'react'; import { useTranslation } from 'react-i18next'; - -const BaseInfoFormItem: React.FC<{ slot?: ReactNode }> = ({ slot }) => { +const BaseInfoFormItem: React.FC<{ + slot?: ReactNode; +}> = ({ slot }) => { const { t } = useTranslation(); - return ( <> = ({ slot }) => { ); }; - export default BaseInfoFormItem; diff --git a/packages/base/src/page/DataExportManagement/Create/components/CreateTask/BaseInfoForm/index.tsx b/packages/base/src/page/DataExportManagement/Create/components/CreateTask/BaseInfoForm/index.tsx index a51544402..2faae9825 100644 --- a/packages/base/src/page/DataExportManagement/Create/components/CreateTask/BaseInfoForm/index.tsx +++ b/packages/base/src/page/DataExportManagement/Create/components/CreateTask/BaseInfoForm/index.tsx @@ -3,8 +3,8 @@ import { FormAreaBlockStyleWrapper, FormAreaLineStyleWrapper, FormStyleWrapper -} from '@actiontech/shared/lib/components/CustomForm/style'; -import { FormItemBigTitle } from '@actiontech/shared/lib/components/CustomForm'; +} from '@actiontech/dms-kit/es/components/CustomForm/style'; +import { FormItemBigTitle } from '@actiontech/dms-kit'; import BaseInfoFormItem from './BaseInfoFormItem'; import { CreateExportTaskFormEntryProps } from '../index.type'; import { BriefcaseFilled } from '@actiontech/icons'; diff --git a/packages/base/src/page/DataExportManagement/Create/components/CreateTask/ExportFormAction/index.tsx b/packages/base/src/page/DataExportManagement/Create/components/CreateTask/ExportFormAction/index.tsx index 15aab979f..a2e6cb7c5 100644 --- a/packages/base/src/page/DataExportManagement/Create/components/CreateTask/ExportFormAction/index.tsx +++ b/packages/base/src/page/DataExportManagement/Create/components/CreateTask/ExportFormAction/index.tsx @@ -1,11 +1,10 @@ import { useTranslation } from 'react-i18next'; import { ExportFormActionProps } from './index.type'; -import { BasicButton, BasicToolTip } from '@actiontech/shared'; +import { BasicButton, BasicToolTip } from '@actiontech/dms-kit'; import { Space } from 'antd'; -import { FormatLanguageSupport } from '@actiontech/shared/lib/utils/FormatterSQL'; +import { FormatLanguageSupport } from '@actiontech/dms-kit'; import { InfoCircleOutlined } from '@actiontech/icons'; import useThemeStyleData from '../../../../../../hooks/useThemeStyleData'; - const ExportFormAction: React.FC = ({ auditAction, auditLoading, @@ -36,5 +35,4 @@ const ExportFormAction: React.FC = ({ ); }; - export default ExportFormAction; diff --git a/packages/base/src/page/DataExportManagement/Create/components/CreateTask/ExportMethodForm/ExportMethodFormItem.tsx b/packages/base/src/page/DataExportManagement/Create/components/CreateTask/ExportMethodForm/ExportMethodFormItem.tsx index 14f730884..67d8a019f 100644 --- a/packages/base/src/page/DataExportManagement/Create/components/CreateTask/ExportMethodForm/ExportMethodFormItem.tsx +++ b/packages/base/src/page/DataExportManagement/Create/components/CreateTask/ExportMethodForm/ExportMethodFormItem.tsx @@ -1,21 +1,19 @@ -import { FormItemNoLabel } from '@actiontech/shared/lib/components/CustomForm'; +import { FormItemNoLabel } from '@actiontech/dms-kit'; import { MonacoEditor, useMonacoEditor } from '@actiontech/shared/lib/components/MonacoEditor'; -import { whiteSpaceSql } from '@actiontech/shared/lib/utils/FormRule'; +import { whiteSpaceSql } from '@actiontech/dms-kit'; import { useTranslation } from 'react-i18next'; import { CreateExportTaskFormEntryProps } from '../index.type'; import { ExportMethodEnum } from './index.enum'; -import { ModeSwitcher } from '@actiontech/shared'; +import { ModeSwitcher } from '@actiontech/dms-kit'; import { PanelCardOutlined } from '@actiontech/icons'; -import { SQL_EDITOR_PLACEHOLDER_VALUE } from '@actiontech/shared/lib/data/common'; - +import { SQL_EDITOR_PLACEHOLDER_VALUE } from '@actiontech/dms-kit'; const ExportMethodFormItem: React.FC< Pick > = ({ methodForm }) => { const { t } = useTranslation(); - const { editorDidMount } = useMonacoEditor(methodForm, { formName: 'sql' }); @@ -27,7 +25,9 @@ const ExportMethodFormItem: React.FC< { label: t('dmsDataExport.create.form.method.manualInput'), value: ExportMethodEnum.sql, - colProps: { span: 8 }, + colProps: { + span: 8 + }, icon: } ]} @@ -60,5 +60,4 @@ const ExportMethodFormItem: React.FC< ); }; - export default ExportMethodFormItem; diff --git a/packages/base/src/page/DataExportManagement/Create/components/CreateTask/ExportMethodForm/index.tsx b/packages/base/src/page/DataExportManagement/Create/components/CreateTask/ExportMethodForm/index.tsx index 68ab9926f..df4f69aa2 100644 --- a/packages/base/src/page/DataExportManagement/Create/components/CreateTask/ExportMethodForm/index.tsx +++ b/packages/base/src/page/DataExportManagement/Create/components/CreateTask/ExportMethodForm/index.tsx @@ -1,10 +1,10 @@ import { FormAreaBlockStyleWrapper, FormStyleWrapper -} from '@actiontech/shared/lib/components/CustomForm/style'; +} from '@actiontech/dms-kit/es/components/CustomForm/style'; import { CreateExportTaskFormEntryProps } from '../index.type'; import { useTranslation } from 'react-i18next'; -import { FormItemSubTitle } from '@actiontech/shared/lib/components/CustomForm'; +import { FormItemSubTitle } from '@actiontech/dms-kit'; import ExportMethodFormItem from './ExportMethodFormItem'; diff --git a/packages/base/src/page/DataExportManagement/Create/components/CreateTask/ExportSourceForm/ExportSourceFormItem.tsx b/packages/base/src/page/DataExportManagement/Create/components/CreateTask/ExportSourceForm/ExportSourceFormItem.tsx index b2ecf757b..7ec2a8335 100644 --- a/packages/base/src/page/DataExportManagement/Create/components/CreateTask/ExportSourceForm/ExportSourceFormItem.tsx +++ b/packages/base/src/page/DataExportManagement/Create/components/CreateTask/ExportSourceForm/ExportSourceFormItem.tsx @@ -1,5 +1,5 @@ -import { BasicSelect } from '@actiontech/shared'; -import { FormItemLabel } from '@actiontech/shared/lib/components/CustomForm'; +import { BasicSelect } from '@actiontech/dms-kit'; +import { FormItemLabel } from '@actiontech/dms-kit'; import { useTranslation } from 'react-i18next'; import useDbService from '../../../../../../hooks/useDbService'; import { useEffect, useMemo } from 'react'; @@ -10,22 +10,18 @@ import { CreateExportTaskFormEntryProps } from '../index.type'; import { Form, SelectProps } from 'antd'; import dayjs from 'dayjs'; import { RingPieFilled } from '@actiontech/icons'; -import { CommonIconStyleWrapper } from '@actiontech/shared/lib/styleWrapper/element'; - +import { CommonIconStyleWrapper } from '@actiontech/dms-kit'; const ExportSourceFormItem: React.FC< Pick > = ({ sourceForm, baseForm }) => { const { t } = useTranslation(); const { projectID, projectName } = useCurrentProject(); - const { updateDbServiceList, generateDbServiceIDSelectOptions, dbServiceList } = useDbService(); - const dbServiceID = Form.useWatch('dbService', sourceForm); - const dbServiceName = useMemo(() => { const name = dbServiceList.find((v) => v.id === dbServiceID)?.name; return name; @@ -36,7 +32,6 @@ const ExportSourceFormItem: React.FC< projectName, dbServiceName ); - const dbServiceChangeHandle: SelectProps['onChange'] = (id) => { const name = dbServiceList.find((v) => v.id === id)?.name; if (!baseForm.getFieldValue('workflow_subject')) { @@ -46,7 +41,6 @@ const ExportSourceFormItem: React.FC< ); } }; - useEffect(() => { updateDbServiceList({ project_uid: projectID, @@ -54,7 +48,6 @@ const ExportSourceFormItem: React.FC< ListDBServiceTipsFunctionalModuleEnum.create_export_task }); }, [projectID, updateDbServiceList]); - return ( <> {/* } name="business" - > + > - */} + */} @@ -134,5 +127,4 @@ const ExportSourceFormItem: React.FC< ); }; - export default ExportSourceFormItem; diff --git a/packages/base/src/page/DataExportManagement/Create/components/CreateTask/ExportSourceForm/index.tsx b/packages/base/src/page/DataExportManagement/Create/components/CreateTask/ExportSourceForm/index.tsx index 0a3956cb4..420ee62ba 100644 --- a/packages/base/src/page/DataExportManagement/Create/components/CreateTask/ExportSourceForm/index.tsx +++ b/packages/base/src/page/DataExportManagement/Create/components/CreateTask/ExportSourceForm/index.tsx @@ -1,15 +1,14 @@ import { useTranslation } from 'react-i18next'; import { CreateExportTaskFormEntryProps } from '../index.type'; -import { FormItemSubTitle } from '@actiontech/shared/lib/components/CustomForm'; +import { FormItemSubTitle } from '@actiontech/dms-kit'; import ExportTaskFormItem from './ExportSourceFormItem'; import { FormAreaBlockStyleWrapper, FormAreaLineStyleWrapper, formItemLayout -} from '@actiontech/shared/lib/components/CustomForm/style'; +} from '@actiontech/dms-kit/es/components/CustomForm/style'; import { ExportSourceFormStyleWrapper } from './style'; -import { BasicToolTip } from '@actiontech/shared'; - +import { BasicToolTip } from '@actiontech/dms-kit'; const ExportSourceForm: React.FC< Pick > = ({ sourceForm, baseForm }) => { @@ -38,5 +37,4 @@ const ExportSourceForm: React.FC< ); }; - export default ExportSourceForm; diff --git a/packages/base/src/page/DataExportManagement/Create/components/CreateTask/ExportSourceForm/style.ts b/packages/base/src/page/DataExportManagement/Create/components/CreateTask/ExportSourceForm/style.ts index 0e0657864..9d8a6f780 100644 --- a/packages/base/src/page/DataExportManagement/Create/components/CreateTask/ExportSourceForm/style.ts +++ b/packages/base/src/page/DataExportManagement/Create/components/CreateTask/ExportSourceForm/style.ts @@ -1,4 +1,4 @@ -import { FormStyleWrapper } from '@actiontech/shared/lib/components/CustomForm/style'; +import { FormStyleWrapper } from '@actiontech/dms-kit/es/components/CustomForm/style'; import { styled } from '@mui/material/styles'; export const ExportSourceFormStyleWrapper = styled(FormStyleWrapper)` diff --git a/packages/base/src/page/DataExportManagement/Create/components/CreateTask/index.tsx b/packages/base/src/page/DataExportManagement/Create/components/CreateTask/index.tsx index 7a59c8d12..6208b8826 100644 --- a/packages/base/src/page/DataExportManagement/Create/components/CreateTask/index.tsx +++ b/packages/base/src/page/DataExportManagement/Create/components/CreateTask/index.tsx @@ -1,17 +1,16 @@ import BaseInfoForm from './BaseInfoForm'; import ExportMethodForm from './ExportMethodForm'; import ExportSourceForm from './ExportSourceForm'; -import { FormAreaBlockStyleWrapper } from '@actiontech/shared/lib/components/CustomForm/style'; +import { FormAreaBlockStyleWrapper } from '@actiontech/dms-kit/es/components/CustomForm/style'; import useCreateExportTaskForm from '../../hooks/useCreateExportTaskForm'; import ExportFormAction from './ExportFormAction'; import { Spin } from 'antd'; -import { BasicButton, PageHeader } from '@actiontech/shared'; -import { PageLayoutHasFixedHeaderStyleWrapper } from '@actiontech/shared/lib/styleWrapper/element'; +import { BasicButton, PageHeader } from '@actiontech/dms-kit'; +import { PageLayoutHasFixedHeaderStyleWrapper } from '@actiontech/dms-kit'; import { useTranslation } from 'react-i18next'; import BackToWorkflowList from '../../../Common/BackToWorkflowList'; import useCreateDataExportReduxManage from '../../hooks/index.redux'; import { CreateDataExportPageEnum } from '../../../../../store/dataExport'; - const CreateExportTask: React.FC = () => { const { t } = useTranslation(); const { updatePageState } = useCreateDataExportReduxManage(); @@ -24,7 +23,6 @@ const CreateExportTask: React.FC = () => { auditLoading, resetAllForms } = useCreateExportTaskForm(); - return ( @@ -41,7 +39,11 @@ const CreateExportTask: React.FC = () => { - + { return auditAction().then((res) => { @@ -59,5 +61,4 @@ const CreateExportTask: React.FC = () => { ); }; - export default CreateExportTask; diff --git a/packages/base/src/page/DataExportManagement/Create/components/SubmitResult/index.tsx b/packages/base/src/page/DataExportManagement/Create/components/SubmitResult/index.tsx index b1cd7b21d..826b31f65 100644 --- a/packages/base/src/page/DataExportManagement/Create/components/SubmitResult/index.tsx +++ b/packages/base/src/page/DataExportManagement/Create/components/SubmitResult/index.tsx @@ -1,9 +1,9 @@ -import { BasicButton, BasicResult, TypedLink } from '@actiontech/shared'; +import { BasicButton, BasicResult } from '@actiontech/dms-kit'; +import { TypedLink } from '@actiontech/shared'; import { useCurrentProject } from '@actiontech/shared/lib/features'; import { useTranslation } from 'react-i18next'; import useCreateDataExportReduxManage from '../../hooks/index.redux'; -import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths'; - +import { ROUTE_PATHS } from '@actiontech/dms-kit'; const ExportWorkflowSubmitResult: React.FC = () => { const { t } = useTranslation(); const { projectID } = useCurrentProject(); @@ -17,7 +17,10 @@ const ExportWorkflowSubmitResult: React.FC = () => { {t('dmsDataExport.create.result.guide')} @@ -27,5 +30,4 @@ const ExportWorkflowSubmitResult: React.FC = () => { /> ); }; - export default ExportWorkflowSubmitResult; diff --git a/packages/base/src/page/DataExportManagement/Create/components/SubmitWorkflow/SubmitWorkflowButton/index.tsx b/packages/base/src/page/DataExportManagement/Create/components/SubmitWorkflow/SubmitWorkflowButton/index.tsx index 0e05b2bc5..92edf0e80 100644 --- a/packages/base/src/page/DataExportManagement/Create/components/SubmitWorkflow/SubmitWorkflowButton/index.tsx +++ b/packages/base/src/page/DataExportManagement/Create/components/SubmitWorkflow/SubmitWorkflowButton/index.tsx @@ -1,8 +1,8 @@ -import { ActionButton, BasicButton } from '@actiontech/shared'; +import { BasicButton } from '@actiontech/dms-kit'; import { SubmitWorkflowButtonProps } from './index.type'; import { useTranslation } from 'react-i18next'; import { InfoHexagonOutlined } from '@actiontech/icons'; - +import { ActionButton } from '@actiontech/shared'; const SubmitWorkflowButton: React.FC = ({ loading, onClick, @@ -10,7 +10,6 @@ const SubmitWorkflowButton: React.FC = ({ executeSQLsIsDQL }) => { const { t } = useTranslation(); - if (hasExceptionAuditRule) { return ( = ({ title: t('dmsDataExport.create.submit.hasExceptionRule'), okText: t('dmsDataExport.create.submit.continueSubmission'), onConfirm: onClick, - okButtonProps: { loading } + okButtonProps: { + loading + } }} /> ); } - if (!executeSQLsIsDQL) { return ( = ({ /> ); } - return ( {t('dmsDataExport.create.submit.buttonText')} ); }; - export default SubmitWorkflowButton; diff --git a/packages/base/src/page/DataExportManagement/Create/components/SubmitWorkflow/UpdateInfoDrawer/BaseInfoTag.tsx b/packages/base/src/page/DataExportManagement/Create/components/SubmitWorkflow/UpdateInfoDrawer/BaseInfoTag.tsx index 259115875..40af1a78c 100644 --- a/packages/base/src/page/DataExportManagement/Create/components/SubmitWorkflow/UpdateInfoDrawer/BaseInfoTag.tsx +++ b/packages/base/src/page/DataExportManagement/Create/components/SubmitWorkflow/UpdateInfoDrawer/BaseInfoTag.tsx @@ -1,4 +1,4 @@ -import { BasicTag } from '@actiontech/shared'; +import { BasicTag } from '@actiontech/dms-kit'; import { Space } from 'antd'; import dayjs from 'dayjs'; import { @@ -7,7 +7,6 @@ import { } from '@actiontech/shared/lib/features'; import { FlagFilled, UserFilled, ClockCircleFilled } from '@actiontech/icons'; import useThemeStyleData from '../../../../../../hooks/useThemeStyleData'; - const BaseInfoTag: React.FC = () => { const { projectName } = useCurrentProject(); const { username } = useCurrentUser(); @@ -35,5 +34,4 @@ const BaseInfoTag: React.FC = () => { ); }; - export default BaseInfoTag; diff --git a/packages/base/src/page/DataExportManagement/Create/components/SubmitWorkflow/UpdateInfoDrawer/index.tsx b/packages/base/src/page/DataExportManagement/Create/components/SubmitWorkflow/UpdateInfoDrawer/index.tsx index 439049811..f1b569a97 100644 --- a/packages/base/src/page/DataExportManagement/Create/components/SubmitWorkflow/UpdateInfoDrawer/index.tsx +++ b/packages/base/src/page/DataExportManagement/Create/components/SubmitWorkflow/UpdateInfoDrawer/index.tsx @@ -1,4 +1,4 @@ -import { BasicDrawer } from '@actiontech/shared'; +import { BasicDrawer } from '@actiontech/dms-kit'; import useCreateDataExportReduxManage from '../../../hooks/index.redux'; import useCreateExportTaskForm from '../../../hooks/useCreateExportTaskForm'; import { useRef } from 'react'; @@ -7,7 +7,7 @@ import { Divider, Spin } from 'antd'; import BaseInfoFormItem from '../../CreateTask/BaseInfoForm/BaseInfoFormItem'; import { useTranslation } from 'react-i18next'; import ExportSourceFormItem from '../../CreateTask/ExportSourceForm/ExportSourceFormItem'; -import { formItemLayout } from '@actiontech/shared/lib/components/CustomForm/style'; +import { formItemLayout } from '@actiontech/dms-kit/es/components/CustomForm/style'; import ExportMethodFormItem from '../../CreateTask/ExportMethodForm/ExportMethodFormItem'; import { UpdateBseInfoFormStyleWrapper, @@ -18,12 +18,9 @@ import { } from './style'; import ExportFormAction from '../../CreateTask/ExportFormAction'; import BaseInfoTag from './BaseInfoTag'; - const UpdateInfoDrawer: React.FC = () => { const { t } = useTranslation(); - const syncDataReady = useRef(false); - const { formValues, updateModalStatus, updateDataExportInfoOpen } = useCreateDataExportReduxManage(); const { @@ -34,25 +31,28 @@ const UpdateInfoDrawer: React.FC = () => { formatSQLAction, auditLoading } = useCreateExportTaskForm(); - const closeHandle = () => { if (auditLoading) { return; } - updateModalStatus({ modalName: ModalName.DMS_UPDATE_EXPORT_TASK_INFO, status: false }); }; - return ( { if (open && !syncDataReady.current) { - baseForm.setFieldsValue({ ...formValues?.baseValues }); - sourceForm.setFieldsValue({ ...formValues?.sourceValues }); - methodForm.setFieldsValue({ ...formValues?.methodValues }); + baseForm.setFieldsValue({ + ...formValues?.baseValues + }); + sourceForm.setFieldsValue({ + ...formValues?.sourceValues + }); + methodForm.setFieldsValue({ + ...formValues?.methodValues + }); syncDataReady.current = true; } }} @@ -75,7 +75,11 @@ const UpdateInfoDrawer: React.FC = () => { } /> - + { - + { ); }; - export default UpdateInfoDrawer; diff --git a/packages/base/src/page/DataExportManagement/Create/components/SubmitWorkflow/UpdateInfoDrawer/style.ts b/packages/base/src/page/DataExportManagement/Create/components/SubmitWorkflow/UpdateInfoDrawer/style.ts index 3202859e5..4cbfef8d1 100644 --- a/packages/base/src/page/DataExportManagement/Create/components/SubmitWorkflow/UpdateInfoDrawer/style.ts +++ b/packages/base/src/page/DataExportManagement/Create/components/SubmitWorkflow/UpdateInfoDrawer/style.ts @@ -1,4 +1,4 @@ -import { FormStyleWrapper } from '@actiontech/shared/lib/components/CustomForm/style'; +import { FormStyleWrapper } from '@actiontech/dms-kit/es/components/CustomForm/style'; import { styled } from '@mui/material/styles'; export const UpdateTaskInfoFormTitleStyleWrapper = styled('div')` diff --git a/packages/base/src/page/DataExportManagement/Create/components/SubmitWorkflow/index.tsx b/packages/base/src/page/DataExportManagement/Create/components/SubmitWorkflow/index.tsx index 6c0c71910..75e37bfff 100644 --- a/packages/base/src/page/DataExportManagement/Create/components/SubmitWorkflow/index.tsx +++ b/packages/base/src/page/DataExportManagement/Create/components/SubmitWorkflow/index.tsx @@ -2,7 +2,7 @@ import { useCurrentProject } from '@actiontech/shared/lib/features'; import useCreateDataExportReduxManage from '../../hooks/index.redux'; import { useCallback, useEffect, useState } from 'react'; import UpdateInfoDrawer from './UpdateInfoDrawer'; -import { BasicButton, PageHeader } from '@actiontech/shared'; +import { BasicButton, PageHeader } from '@actiontech/dms-kit'; import { useTranslation } from 'react-i18next'; import BackToWorkflowList from '../../../Common/BackToWorkflowList'; import { Space } from 'antd'; @@ -10,12 +10,11 @@ import { ModalName } from '../../../../../data/ModalName'; import BasicInfoWrapper from '../../../Common/BasicInfoWrapper'; import AuditResultList from '../../../Common/AuditResultList'; import DataExportWorkflows from '@actiontech/shared/lib/api/base/service/DataExportWorkflows'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { CreateDataExportPageEnum } from '../../../../../store/dataExport'; import useCheckTaskAuditRuleExceptionStatus from '../../hooks/useCheckTaskAuditRuleExceptionStatus'; import { IListDataExportTaskSQL } from '@actiontech/shared/lib/api/base/service/common'; import SubmitWorkflowButton from './SubmitWorkflowButton'; - const SubmitExportWorkflow: React.FC = () => { const { t } = useTranslation(); const { @@ -29,15 +28,12 @@ const SubmitExportWorkflow: React.FC = () => { updateWorkflowID } = useCreateDataExportReduxManage(); const { projectID } = useCurrentProject(); - const [executeSQLsIsDQL, updateExecuteSQLsTypeIsDQL] = useState(true); - const { hasExceptionAuditRule, updateTaskAuditRuleExceptionStatus, resetTaskAuditRuleExceptionStatus } = useCheckTaskAuditRuleExceptionStatus(); - const onSuccessGetDataExportTaskSqls = useCallback( (taskSqls: IListDataExportTaskSQL[]) => { updateTaskAuditRuleExceptionStatus(taskSqls); @@ -47,12 +43,10 @@ const SubmitExportWorkflow: React.FC = () => { }, [updateTaskAuditRuleExceptionStatus] ); - const onErrorGetDataExportTaskSqls = useCallback(() => { resetTaskAuditRuleExceptionStatus(); updateExecuteSQLsTypeIsDQL(true); }, [resetTaskAuditRuleExceptionStatus]); - const onSubmit = () => { updateSubmitLoading(true); DataExportWorkflows.AddDataExportWorkflow({ @@ -60,7 +54,10 @@ const SubmitExportWorkflow: React.FC = () => { data_export_workflow: { name: formValues?.baseValues.workflow_subject ?? '', desc: formValues?.baseValues.desc, - tasks: taskIDs?.map((v) => ({ task_uid: v ?? '' })) ?? [] + tasks: + taskIDs?.map((v) => ({ + task_uid: v ?? '' + })) ?? [] } }) .then((res) => { @@ -73,11 +70,9 @@ const SubmitExportWorkflow: React.FC = () => { updateSubmitLoading(false); }); }; - useEffect(() => { initModalStatus(); }, [initModalStatus]); - return ( <> { ); }; - export default SubmitExportWorkflow; diff --git a/packages/base/src/page/DataExportManagement/Create/hooks/__tests__/useCreateExportTaskForm.test.tsx b/packages/base/src/page/DataExportManagement/Create/hooks/__tests__/useCreateExportTaskForm.test.tsx index ca5c6917b..b8c4aeb85 100644 --- a/packages/base/src/page/DataExportManagement/Create/hooks/__tests__/useCreateExportTaskForm.test.tsx +++ b/packages/base/src/page/DataExportManagement/Create/hooks/__tests__/useCreateExportTaskForm.test.tsx @@ -17,7 +17,7 @@ import dataExport from '@actiontech/shared/lib/testUtil/mockApi/base/dataExport' import { AddDataExportTaskResponseData } from '@actiontech/shared/lib/testUtil/mockApi/base/dataExport/data'; import { useState } from 'react'; import { createSpyFailResponse } from '@actiontech/shared/lib/testUtil/mockApi'; -import { formatterSQL } from '@actiontech/shared/lib/utils/FormatterSQL'; +import { formatterSQL } from '@actiontech/dms-kit'; describe('test base/DataExport/Create/hooks/useCreateExportTaskForm', () => { const CustomCom = ({ diff --git a/packages/base/src/page/DataExportManagement/Create/hooks/useCreateExportTaskForm.ts b/packages/base/src/page/DataExportManagement/Create/hooks/useCreateExportTaskForm.ts index fcff8d67f..0d3ef8cd4 100644 --- a/packages/base/src/page/DataExportManagement/Create/hooks/useCreateExportTaskForm.ts +++ b/packages/base/src/page/DataExportManagement/Create/hooks/useCreateExportTaskForm.ts @@ -8,8 +8,8 @@ import { MethodFormFieldsType, SourceFormFieldsType } from '../components/CreateTask/index.type'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; -import { formatterSQL } from '@actiontech/shared/lib/utils/FormatterSQL'; +import { ResponseCode } from '@actiontech/dms-kit'; +import { formatterSQL } from '@actiontech/dms-kit'; const useCreateExportTaskForm = () => { const [baseForm] = useForm(); diff --git a/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/ExportTaskList/ResultCard/AuditResultTag.tsx b/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/ExportTaskList/ResultCard/AuditResultTag.tsx index f92df3658..64b82a3f0 100644 --- a/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/ExportTaskList/ResultCard/AuditResultTag.tsx +++ b/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/ExportTaskList/ResultCard/AuditResultTag.tsx @@ -1,4 +1,4 @@ -import { BasicTag } from '@actiontech/shared'; +import { BasicTag } from '@actiontech/dms-kit'; import { useTranslation } from 'react-i18next'; import { RuleResV1LevelEnum } from '@actiontech/shared/lib/api/sqle/service/common.enum'; import { useMemo } from 'react'; @@ -10,30 +10,25 @@ import { CloseCircleFilled, CheckCircleFilled } from '@actiontech/icons'; - -const AuditResultTag: React.FC<{ auditResult?: IAuditSQLResult[] }> = ({ - auditResult -}) => { +const AuditResultTag: React.FC<{ + auditResult?: IAuditSQLResult[]; +}> = ({ auditResult }) => { const { t } = useTranslation(); - const noticeResult = useMemo(() => { return ( auditResult?.filter((i) => i.level === RuleResV1LevelEnum.notice) || [] ); }, [auditResult]); - const errorResult = useMemo(() => { return ( auditResult?.filter((i) => i.level === RuleResV1LevelEnum.error) || [] ); }, [auditResult]); - const warnResult = useMemo(() => { return ( auditResult?.filter((i) => i.level === RuleResV1LevelEnum.warn) || [] ); }, [auditResult]); - if (!auditResult?.length) { return ( = ({ ); } }; - export default AuditResultTag; diff --git a/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/ExportTaskList/ResultCard/AuditResultTree.tsx b/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/ExportTaskList/ResultCard/AuditResultTree.tsx index a6c963475..0729c93b3 100644 --- a/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/ExportTaskList/ResultCard/AuditResultTree.tsx +++ b/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/ExportTaskList/ResultCard/AuditResultTree.tsx @@ -5,7 +5,7 @@ import { IAuditSQLResult } from '@actiontech/shared/lib/api/base/service/common' import AuditResultMessage from 'sqle/src/components/AuditResultMessage'; import { ExportResultTreeStyleWrapper } from '../../style'; import { DownOutlined } from '@actiontech/icons'; -import { CommonIconStyleWrapper } from '@actiontech/shared/lib/styleWrapper/element'; +import { CommonIconStyleWrapper } from '@actiontech/dms-kit'; const AuditResultTree: React.FC<{ auditResult?: IAuditSQLResult[] }> = ({ auditResult diff --git a/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/ExportTaskList/ResultCard/__tests__/index.test.tsx b/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/ExportTaskList/ResultCard/__tests__/index.test.tsx index ca1d863c3..c759c0a1d 100644 --- a/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/ExportTaskList/ResultCard/__tests__/index.test.tsx +++ b/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/ExportTaskList/ResultCard/__tests__/index.test.tsx @@ -3,7 +3,7 @@ import ExportResultCard from '..'; import { baseSuperRender } from '../../../../../../../../testUtils/superRender'; import { ListDataExportTaskSQLsResponseData } from '@actiontech/shared/lib/testUtil/mockApi/base/dataExport/data'; import { mockDataExportDetailRedux } from '../../../../../testUtils/mockUseDataExportDetailReduxManage'; -import { Copy } from '@actiontech/shared'; +import { Copy } from '@actiontech/dms-kit'; describe('test base/DataExport/Detail/ExportTaskList/ResultCard', () => { it('should match snapshot', () => { diff --git a/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/ExportTaskList/ResultCard/index.tsx b/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/ExportTaskList/ResultCard/index.tsx index 19aeaf317..f5565930d 100644 --- a/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/ExportTaskList/ResultCard/index.tsx +++ b/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/ExportTaskList/ResultCard/index.tsx @@ -1,4 +1,5 @@ -import { BasicButton, Copy, HighlightCode } from '@actiontech/shared'; +import { BasicButton } from '@actiontech/dms-kit'; +import { Copy, HighlightCode } from '@actiontech/dms-kit'; import { Divider, Space, message } from 'antd'; import { useTranslation } from 'react-i18next'; import { ExportResultCardProp } from './index.type'; @@ -10,18 +11,14 @@ import { } from '../../style'; import AuditResultTag from './AuditResultTag'; import { DownOutlined } from '@actiontech/icons'; -import { CommonIconStyleWrapper } from '@actiontech/shared/lib/styleWrapper/element'; - +import { CommonIconStyleWrapper } from '@actiontech/dms-kit'; const ExportResultCard: React.FC = (props) => { const { t } = useTranslation(); - const [messageApi, contextHolder] = message.useMessage(); - const onCopyExecSql = () => { Copy.copyTextByTextarea(props.sql ?? ''); messageApi.success(t('common.copied')); }; - return ( {contextHolder} @@ -88,5 +85,4 @@ const ExportResultCard: React.FC = (props) => { ); }; - export default ExportResultCard; diff --git a/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/OverviewList/column.tsx b/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/OverviewList/column.tsx index e0ae69451..0def62b3e 100644 --- a/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/OverviewList/column.tsx +++ b/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/OverviewList/column.tsx @@ -5,12 +5,11 @@ import { } from '@actiontech/shared/lib/components/ActiontechTable'; import { t } from '../../../../../../locale'; import ExportTaskStatus from '../../../../Common/TaskStatus'; -import { formatTime } from '@actiontech/shared/lib/utils/Common'; +import { formatTime } from '@actiontech/dms-kit'; import dayjs from 'dayjs'; import { GetDataExportTaskStatusEnum } from '@actiontech/shared/lib/api/base/service/common.enum'; -import { BasicToolTip } from '@actiontech/shared'; +import { BasicToolTip } from '@actiontech/dms-kit'; import { InfoCircleOutlined } from '@actiontech/icons'; - export const OverviewListColumn: () => ActiontechTableColumn< IGetDataExportTask, unknown, @@ -59,14 +58,12 @@ export const OverviewListColumn: () => ActiontechTableColumn< } ]; }; - const checkExportTimeHasExpired = (startTime?: string, timeout = 24) => { if (!startTime || !dayjs(startTime)) { return true; } return dayjs().isAfter(dayjs(startTime).add(timeout, 'hour')); }; - export const OverviewListAction: ( downloadLoading: boolean, downloadAction: (taskID: string) => void diff --git a/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/index.tsx b/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/index.tsx index 19b2d40a3..ae651c321 100644 --- a/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/index.tsx +++ b/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/index.tsx @@ -1,7 +1,7 @@ import { useTranslation } from 'react-i18next'; import { WorkflowDetailExportResultStyleWrapper } from './style'; -import { SegmentedRowStyleWrapper } from '@actiontech/shared/lib/styleWrapper/element'; -import { BasicButton, BasicSegmented, EmptyBox } from '@actiontech/shared'; +import { SegmentedRowStyleWrapper } from '@actiontech/dms-kit'; +import { BasicButton, BasicSegmented, EmptyBox } from '@actiontech/dms-kit'; import useDataExportDetailReduxManage from '../../hooks/index.redux'; import OverviewList from './OverviewList'; import ExportTaskList from './ExportTaskList'; @@ -11,15 +11,12 @@ import DataExportTask from '@actiontech/shared/lib/api/base/service/DataExportTa import { useCurrentProject } from '@actiontech/shared/lib/features'; import { useBoolean } from 'ahooks'; import { PanelCardOutlined } from '@actiontech/icons'; - const OVERVIEW_TAB_KEY = 'OVERVIEW_TAB_KEY'; - const ExportDetail: React.FC = () => { const { t } = useTranslation(); const { projectID } = useCurrentProject(); const { taskInfos, curTaskID, updateCurTaskID } = useDataExportDetailReduxManage(); - const generateCurrentTaskLabel = ( dbServiceName?: string, auditLevel?: AuditTaskResV1AuditLevelEnum @@ -27,7 +24,6 @@ const ExportDetail: React.FC = () => { if (!dbServiceName) { return '-'; } - return ( { /> ); }; - const [ downloadSQLsLoading, { setFalse: finishDownloadSQLs, setTrue: startDownloadSQLs } @@ -51,7 +46,6 @@ const ExportDetail: React.FC = () => { finishDownloadSQLs(); } }; - return (
@@ -99,5 +93,4 @@ const ExportDetail: React.FC = () => { ); }; - export default ExportDetail; diff --git a/packages/base/src/page/DataExportManagement/Detail/components/PageHeaderAction/actions.tsx b/packages/base/src/page/DataExportManagement/Detail/components/PageHeaderAction/actions.tsx index 5d8c09c94..36cd5e51f 100644 --- a/packages/base/src/page/DataExportManagement/Detail/components/PageHeaderAction/actions.tsx +++ b/packages/base/src/page/DataExportManagement/Detail/components/PageHeaderAction/actions.tsx @@ -6,7 +6,6 @@ import { import { ActionButton } from '@actiontech/shared'; import { ActionMeta } from './index.type'; import { Divider } from 'antd'; - export const CloseWorkflowAction = (closeWorkflowButtonMeta: ActionMeta) => { return ( @@ -26,7 +25,6 @@ export const CloseWorkflowAction = (closeWorkflowButtonMeta: ActionMeta) => { ); }; - export const RejectWorkflowAction = (rejectWorkflowButtonMeta: ActionMeta) => { return ( @@ -38,7 +36,6 @@ export const RejectWorkflowAction = (rejectWorkflowButtonMeta: ActionMeta) => { ); }; - export const ApproveWorkflowAction = ( approveWorkflowButtonMeta: ActionMeta ) => { @@ -56,7 +53,6 @@ export const ApproveWorkflowAction = ( ); }; - export const ExecuteWorkflowAction = (executeExportButtonMeta: ActionMeta) => { return ( { const { t } = useTranslation(); - const [messageApi, messageContextHolder] = message.useMessage(); - const { workflowStepOpen, updateWorkflowStepOpen } = useDataExportDetailReduxManage(); - const workflowDetailClickHandle = () => { updateWorkflowStepOpen(true); }; - const { closeWorkflowButtonMeta, approveWorkflowButtonMeta, executeExportButtonMeta, rejectWorkflowButtonMeta } = useActionButtonState(messageApi); - return ( {messageContextHolder} @@ -64,5 +58,4 @@ const ExportDetailPageHeaderAction: React.FC = () => { ); }; - export default ExportDetailPageHeaderAction; diff --git a/packages/base/src/page/DataExportManagement/Detail/components/RejectReason/RejectWorkflowModal/index.tsx b/packages/base/src/page/DataExportManagement/Detail/components/RejectReason/RejectWorkflowModal/index.tsx index 457c86131..38a4fcbaa 100644 --- a/packages/base/src/page/DataExportManagement/Detail/components/RejectReason/RejectWorkflowModal/index.tsx +++ b/packages/base/src/page/DataExportManagement/Detail/components/RejectReason/RejectWorkflowModal/index.tsx @@ -1,4 +1,4 @@ -import { BasicButton, BasicInput, BasicModal } from '@actiontech/shared'; +import { BasicButton, BasicInput, BasicModal } from '@actiontech/dms-kit'; import { Form, message } from 'antd'; import { useTranslation } from 'react-i18next'; import { RejectWorkflowModalFormFields } from './index.type'; @@ -7,34 +7,27 @@ import { RejectWorkflowModalAlertStyleWrapper } from './style'; import { useBoolean } from 'ahooks'; import DataExportWorkflows from '@actiontech/shared/lib/api/base/service/DataExportWorkflows'; import { useCurrentProject } from '@actiontech/shared/lib/features'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import EmitterKey from '../../../../../../data/EmitterKey'; import eventEmitter from '../../../../../../utils/EventEmitter'; - const RejectWorkflowModal: React.FC = () => { const { workflowRejectOpen, updateWorkflowRejectOpen, workflowInfo } = useDataExportDetailReduxManage(); - const closeModal = () => { updateWorkflowRejectOpen(false); }; const { projectID } = useCurrentProject(); const [messageApi, messageContextHolder] = message.useMessage(); - const [form] = Form.useForm(); - const { t } = useTranslation(); - const resetAndCloseRejectModal = () => { form.resetFields(); closeModal(); }; - const [ rejectWorkflowLoading, { setFalse: finishRejectWorkflow, setTrue: startRejectWorkflow } ] = useBoolean(); - const rejectWorkflow = ( workflowID: string, values: RejectWorkflowModalFormFields @@ -59,7 +52,6 @@ const RejectWorkflowModal: React.FC = () => { finishRejectWorkflow(); }); }; - return ( { ); }; - export default RejectWorkflowModal; diff --git a/packages/base/src/page/DataExportManagement/Detail/components/WorkflowRecordInfo/WorkflowBasicInfo.tsx b/packages/base/src/page/DataExportManagement/Detail/components/WorkflowRecordInfo/WorkflowBasicInfo.tsx index 4c016cd24..95ea0a236 100644 --- a/packages/base/src/page/DataExportManagement/Detail/components/WorkflowRecordInfo/WorkflowBasicInfo.tsx +++ b/packages/base/src/page/DataExportManagement/Detail/components/WorkflowRecordInfo/WorkflowBasicInfo.tsx @@ -1,11 +1,11 @@ import { useTranslation } from 'react-i18next'; import { WorkflowBasicInfoProps } from './index.type'; -import { CustomAvatar } from '@actiontech/shared'; +import { CustomAvatar } from '@actiontech/dms-kit'; import { Space } from 'antd'; import WorkflowStatus from '../../../Common/WorkflowStatus'; import { ListDataExportWorkflowStatusEnum } from '@actiontech/shared/lib/api/base/service/common.enum'; import { ClockCircleOutlined } from '@actiontech/icons'; -import { CommonIconStyleWrapper } from '@actiontech/shared/lib/styleWrapper/element'; +import { CommonIconStyleWrapper } from '@actiontech/dms-kit'; const WorkflowBasicInfo: React.FC = ({ createTime, createUserName, @@ -59,5 +59,4 @@ const WorkflowBasicInfo: React.FC = ({
); }; - export default WorkflowBasicInfo; diff --git a/packages/base/src/page/DataExportManagement/Detail/components/WorkflowRecordInfo/WorkflowSteps.tsx b/packages/base/src/page/DataExportManagement/Detail/components/WorkflowRecordInfo/WorkflowSteps.tsx index 8ed9310f1..38d4e26a9 100644 --- a/packages/base/src/page/DataExportManagement/Detail/components/WorkflowRecordInfo/WorkflowSteps.tsx +++ b/packages/base/src/page/DataExportManagement/Detail/components/WorkflowRecordInfo/WorkflowSteps.tsx @@ -4,8 +4,8 @@ import { WorkflowStepsProps } from './index.type'; import { useCallback, useMemo } from 'react'; import { CustomSteps, WorkflowStepsItemStyleWrapper } from './style'; import { Space } from 'antd'; -import { formatTime } from '@actiontech/shared/lib/utils/Common'; -import { EmptyBox } from '@actiontech/shared'; +import { formatTime } from '@actiontech/dms-kit'; +import { EmptyBox } from '@actiontech/dms-kit'; import useThemeStyleData from '../../../../../hooks/useThemeStyleData'; import { WorkflowRecordStatusEnum } from '@actiontech/shared/lib/api/base/service/common.enum'; import { IWorkflowStep } from '@actiontech/shared/lib/api/base/service/common'; @@ -16,7 +16,6 @@ import { PlusCircleFilled, CheckCircleFilled } from '@actiontech/icons'; - const WorkflowSteps: React.FC = ({ workflowSteps, currentStepNumber, @@ -38,11 +37,9 @@ const WorkflowSteps: React.FC = ({ ) { return 2; } - if (workflowStatus === WorkflowRecordStatusEnum.wait_for_export) { return 3; } - if ( [ WorkflowRecordStatusEnum.exporting, @@ -54,7 +51,6 @@ const WorkflowSteps: React.FC = ({ return 4; } }, [currentStepNumber, workflowStatus]); - const renderTitle = useCallback( (type?: string) => { if (type === 'create') { @@ -68,16 +64,13 @@ const WorkflowSteps: React.FC = ({ if (type === 'approve') { return t('dmsDataExport.detail.record.steps.approve'); } - if (type === 'execute') { return t('dmsDataExport.detail.record.steps.execute'); } - return t('dmsDataExport.detail.operator.unknown'); }, [t] ); - const renderOrderStepsItemContent = useCallback( (step: IWorkflowStep) => { if (step.type === 'execute') { @@ -142,7 +135,6 @@ const WorkflowSteps: React.FC = ({ taskStatusNumber?.exporting ] ); - const renderOrderStepsItem = useCallback( (title: string, step: any) => { return ( @@ -155,13 +147,11 @@ const WorkflowSteps: React.FC = ({ }, [renderOrderStepsItemContent] ); - const renderOrderStepsItemIcon = useCallback( (type?: string) => { if (type === 'create') { return ; } - if (type === 'approve') { const isRejected = workflowStatus === WorkflowRecordStatusEnum.rejected; return ( @@ -171,7 +161,6 @@ const WorkflowSteps: React.FC = ({ /> ); } - if (type === 'execute') { if ( workflowStatus && @@ -182,7 +171,6 @@ const WorkflowSteps: React.FC = ({ ) { return ; } - if (workflowStatus === WorkflowRecordStatusEnum.failed) { return ; } @@ -191,7 +179,6 @@ const WorkflowSteps: React.FC = ({ }, [workflowStatus, sharedTheme.uiToken.colorWarning] ); - const stepsItems = useMemo(() => { if (!workflowSteps) { return []; @@ -202,7 +189,9 @@ const WorkflowSteps: React.FC = ({ { type: 'create', number: 1, - operation_user: { name: createUser }, + operation_user: { + name: createUser + }, operation_time: createTime }, { @@ -210,14 +199,18 @@ const WorkflowSteps: React.FC = ({ type: 'approve', number: 2 }, - { type: 'execute', number: 3 } + { + type: 'execute', + number: 3 + } ].map((v, i) => { const isNextRejected = workflowSteps[i + 1]?.state === 'rejected'; - return { title: renderOrderStepsItem(renderTitle(v.type), v), icon: renderOrderStepsItemIcon(v.type), - className: classNames({ 'prev-rejected-step': isNextRejected }) + className: classNames({ + 'prev-rejected-step': isNextRejected + }) }; }); }, [ @@ -243,5 +236,4 @@ const WorkflowSteps: React.FC = ({
); }; - export default WorkflowSteps; diff --git a/packages/base/src/page/DataExportManagement/Detail/components/WorkflowRecordInfo/index.tsx b/packages/base/src/page/DataExportManagement/Detail/components/WorkflowRecordInfo/index.tsx index b292739f5..06a3b1c36 100644 --- a/packages/base/src/page/DataExportManagement/Detail/components/WorkflowRecordInfo/index.tsx +++ b/packages/base/src/page/DataExportManagement/Detail/components/WorkflowRecordInfo/index.tsx @@ -1,7 +1,7 @@ import { useTranslation } from 'react-i18next'; import { WorkflowStepsStyleWrapper } from './style'; import WorkflowBasicInfo from './WorkflowBasicInfo'; -import { formatTime } from '@actiontech/shared/lib/utils/Common'; +import { formatTime } from '@actiontech/dms-kit'; import WorkflowSteps from './WorkflowSteps'; import useDataExportDetailReduxManage from '../../hooks/index.redux'; import { CloseOutlined } from '@actiontech/icons'; diff --git a/packages/base/src/page/DataExportManagement/Detail/hooks/useExportDetailAction.ts b/packages/base/src/page/DataExportManagement/Detail/hooks/useExportDetailAction.ts index b2084ec4a..f19bd7709 100644 --- a/packages/base/src/page/DataExportManagement/Detail/hooks/useExportDetailAction.ts +++ b/packages/base/src/page/DataExportManagement/Detail/hooks/useExportDetailAction.ts @@ -2,7 +2,7 @@ import DataExportWorkflows from '@actiontech/shared/lib/api/base/service/DataExp import EmitterKey from '../../../../data/EmitterKey'; import eventEmitter from '../../../../utils/EventEmitter'; import { useCurrentProject } from '@actiontech/shared/lib/features'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { useTranslation } from 'react-i18next'; import { useBoolean } from 'ahooks'; import { MessageInstance } from 'antd/es/message/interface'; diff --git a/packages/base/src/page/DataExportManagement/Detail/hooks/useInitDataWithRequest.ts b/packages/base/src/page/DataExportManagement/Detail/hooks/useInitDataWithRequest.ts index 735c1b358..ba73b5f63 100644 --- a/packages/base/src/page/DataExportManagement/Detail/hooks/useInitDataWithRequest.ts +++ b/packages/base/src/page/DataExportManagement/Detail/hooks/useInitDataWithRequest.ts @@ -1,6 +1,6 @@ import DataExportTask from '@actiontech/shared/lib/api/base/service/DataExportTask'; import DataExportWorkflows from '@actiontech/shared/lib/api/base/service/DataExportWorkflows'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { useCurrentProject } from '@actiontech/shared/lib/features'; import useDataExportDetailReduxManage from './index.redux'; import { useRequest } from 'ahooks'; @@ -9,7 +9,7 @@ import eventEmitter from '../../../../utils/EventEmitter'; import EmitterKey from '../../../../data/EmitterKey'; import { GetDataExportTaskStatusEnum } from '@actiontech/shared/lib/api/base/service/common.enum'; import { useTypedParams } from '@actiontech/shared'; -import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths'; +import { ROUTE_PATHS } from '@actiontech/dms-kit'; const useInitDataWithRequest = () => { const { workflowID } = diff --git a/packages/base/src/page/DataExportManagement/Detail/index.tsx b/packages/base/src/page/DataExportManagement/Detail/index.tsx index 19ffa374a..d6eee6f09 100644 --- a/packages/base/src/page/DataExportManagement/Detail/index.tsx +++ b/packages/base/src/page/DataExportManagement/Detail/index.tsx @@ -1,7 +1,7 @@ import { Spin } from 'antd'; import { WorkflowDetailStyleWrapper } from './style'; import BackToWorkflowList from '../Common/BackToWorkflowList'; -import { EmptyBox, PageHeader } from '@actiontech/shared'; +import { EmptyBox, PageHeader } from '@actiontech/dms-kit'; import { useEffect, useMemo } from 'react'; import useDataExportDetailReduxManage from './hooks/index.redux'; import BasicInfoWrapper from '../Common/BasicInfoWrapper'; @@ -15,25 +15,20 @@ import ExportDetail from './components/ExportDetail'; import ExportDetailPageHeaderAction from './components/PageHeaderAction'; import WorkflowRecordInfo from './components/WorkflowRecordInfo'; import RejectWorkflowModal from './components/RejectReason/RejectWorkflowModal'; - const WorkflowDetail: React.FC = () => { const { clearAllDetailState, workflowInfo, workflowStepOpen } = useDataExportDetailReduxManage(); - const { getTaskInfosLoading, getWorkflowLoading } = useInitDataWithRequest(); - const currentRejectedStep = useMemo(() => { return workflowInfo?.workflow_record?.workflow_step_list?.find( (v) => v.state === WorkflowStepStateEnum.rejected ); }, [workflowInfo?.workflow_record?.workflow_step_list]); - useEffect(() => { return () => { clearAllDetailState(); }; }, [clearAllDetailState]); - return ( @@ -70,5 +65,4 @@ const WorkflowDetail: React.FC = () => { ); }; - export default WorkflowDetail; diff --git a/packages/base/src/page/DataExportManagement/List/__tests__/index.test.tsx b/packages/base/src/page/DataExportManagement/List/__tests__/index.test.tsx index f50caa19b..fdf0ca963 100644 --- a/packages/base/src/page/DataExportManagement/List/__tests__/index.test.tsx +++ b/packages/base/src/page/DataExportManagement/List/__tests__/index.test.tsx @@ -16,7 +16,7 @@ import { getBySelector } from '@actiontech/shared/lib/testUtil/customQuery'; import { DataExportWorkflowList } from '@actiontech/shared/lib/testUtil/mockApi/base/dataExport/data'; -import { SystemRole } from '@actiontech/shared/lib/enum'; +import { SystemRole } from '@actiontech/dms-kit'; jest.mock('react-router-dom', () => { return { diff --git a/packages/base/src/page/DataExportManagement/List/actions.tsx b/packages/base/src/page/DataExportManagement/List/actions.tsx index 06457695c..a9e382045 100644 --- a/packages/base/src/page/DataExportManagement/List/actions.tsx +++ b/packages/base/src/page/DataExportManagement/List/actions.tsx @@ -6,8 +6,7 @@ import { } from '@actiontech/shared/lib/features'; import { MinusCircleOutlined, PlusOutlined } from '@actiontech/icons'; import { ActionButton } from '@actiontech/shared'; -import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths'; - +import { ROUTE_PATHS } from '@actiontech/dms-kit'; export const DataExportManagementTableToolbarActions = ({ disabled, loading, @@ -39,7 +38,6 @@ export const DataExportManagementTableToolbarActions = ({ } ]; }; - export const DataExportManagementCreateAction = ( projectID: string ): React.ReactNode => { @@ -52,7 +50,9 @@ export const DataExportManagementCreateAction = ( icon={} link={{ to: ROUTE_PATHS.BASE.DATA_EXPORT.create, - params: { projectID } + params: { + projectID + } }} /> diff --git a/packages/base/src/page/DataExportManagement/List/column.tsx b/packages/base/src/page/DataExportManagement/List/column.tsx index 4b3d8f08f..1bb0c7008 100644 --- a/packages/base/src/page/DataExportManagement/List/column.tsx +++ b/packages/base/src/page/DataExportManagement/List/column.tsx @@ -5,20 +5,21 @@ import { PageInfoWithoutIndexAndSize } from '@actiontech/shared/lib/components/ActiontechTable'; import { t } from '../../../locale'; -import { formatTime } from '@actiontech/shared/lib/utils/Common'; -import { CustomAvatar, BasicTypographyEllipsis } from '@actiontech/shared'; +import { formatTime } from '@actiontech/dms-kit'; +import { CustomAvatar } from '@actiontech/dms-kit'; +import { BasicTypographyEllipsis } from '@actiontech/shared'; import WorkflowStatus from '../Common/WorkflowStatus'; import { IListDataExportWorkflow } from '@actiontech/shared/lib/api/base/service/common'; import { IListDataExportWorkflowsParams } from '@actiontech/shared/lib/api/base/service/DataExportWorkflows/index.d'; -import { TableColumnWithIconStyleWrapper } from '@actiontech/shared/lib/styleWrapper/element'; +import { TableColumnWithIconStyleWrapper } from '@actiontech/dms-kit'; import { BriefcaseFilled } from '@actiontech/icons'; import { IListDataExportWorkflowWithExtraParams } from './index.type'; - export type ExportWorkflowListFilterParamType = PageInfoWithoutIndexAndSize< - IListDataExportWorkflowsParams & { page_index: number }, + IListDataExportWorkflowsParams & { + page_index: number; + }, 'project_uid' >; - export const ExportWorkflowExtraFilterMeta: () => ActiontechTableFilterMeta< IListDataExportWorkflowWithExtraParams, ExportWorkflowListFilterParamType @@ -40,7 +41,6 @@ export const ExportWorkflowExtraFilterMeta: () => ActiontechTableFilterMeta< ] ]); }; - export const ExportWorkflowListColumn: ( projectID: string ) => ActiontechTableColumn< diff --git a/packages/base/src/page/DataExportManagement/List/components/WorkflowStatusFilter.tsx b/packages/base/src/page/DataExportManagement/List/components/WorkflowStatusFilter.tsx index b6480fa9b..fc82856ee 100644 --- a/packages/base/src/page/DataExportManagement/List/components/WorkflowStatusFilter.tsx +++ b/packages/base/src/page/DataExportManagement/List/components/WorkflowStatusFilter.tsx @@ -1,8 +1,7 @@ import { useTranslation } from 'react-i18next'; -import { BasicSegmented } from '@actiontech/shared'; +import { BasicSegmented } from '@actiontech/dms-kit'; import { ListDataExportWorkflowsFilterByStatusEnum } from '@actiontech/shared/lib/api/base/service/DataExportWorkflows/index.enum'; import { DataExportStatusDictionary } from '../../Common/index.data'; - const WorkflowStatusFilter: React.FC<{ status: ListDataExportWorkflowsFilterByStatusEnum | 'all'; onChange: (status: ListDataExportWorkflowsFilterByStatusEnum | 'all') => void; @@ -33,5 +32,4 @@ const WorkflowStatusFilter: React.FC<{ /> ); }; - export default WorkflowStatusFilter; diff --git a/packages/base/src/page/DataExportManagement/List/index.tsx b/packages/base/src/page/DataExportManagement/List/index.tsx index d3f753d20..e17ea374d 100644 --- a/packages/base/src/page/DataExportManagement/List/index.tsx +++ b/packages/base/src/page/DataExportManagement/List/index.tsx @@ -1,4 +1,5 @@ -import { PageHeader, useTypedNavigate } from '@actiontech/shared'; +import { PageHeader } from '@actiontech/dms-kit'; +import { useTypedNavigate } from '@actiontech/shared'; import { useTableRequestParams, TableToolbar, @@ -34,39 +35,30 @@ import { IListDataExportWorkflow } from '@actiontech/shared/lib/api/base/service import { ListDBServiceTipsFunctionalModuleEnum } from '@actiontech/shared/lib/api/base/service/DBService/index.enum'; import { ListDataExportWorkflowsFilterByStatusEnum } from '@actiontech/shared/lib/api/base/service/DataExportWorkflows/index.enum'; import useMemberTips from '../../../hooks/useMemberTips'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { ListDataExportWorkflowStatusEnum } from '@actiontech/shared/lib/api/base/service/common.enum'; -import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths'; +import { ROUTE_PATHS } from '@actiontech/dms-kit'; import { DataExportManagementTableToolbarActions, DataExportManagementCreateAction } from './actions'; import { IListDataExportWorkflowWithExtraParams } from './index.type'; - const ExportWorkflowList: React.FC = () => { const { t } = useTranslation(); const navigate = useTypedNavigate(); - const [messageApi, messageContextHolder] = message.useMessage(); - const { projectID } = useCurrentProject(); const { username } = useCurrentUser(); - const { parse2TableToolbarActionPermissions, checkActionPermission } = usePermission(); - const [filterStatus, setFilterStatus] = useState< ListDataExportWorkflowsFilterByStatusEnum | 'all' >('all'); - const [selectedRowKeys, setSelectedRowKeys] = useState([]); - const { requestErrorMessage, handleTableRequestError } = useTableRequestError(); - const { dbServiceIDOptions, updateDbServiceList } = useDbService(); const { memberOptions, updateMemberTips } = useMemberTips(); - const { tableFilterInfo, updateTableFilterInfo, @@ -79,22 +71,18 @@ const ExportWorkflowList: React.FC = () => { IListDataExportWorkflowWithExtraParams, ExportWorkflowListFilterParamType >(); - const columns = useMemo(() => { return ExportWorkflowListColumn(projectID); }, [projectID]); - const { filterButtonMeta, filterContainerMeta, updateAllSelectedFilterItem } = useTableFilterContainer< IListDataExportWorkflowWithExtraParams, ExportWorkflowListFilterParamType >(columns, updateTableFilterInfo, ExportWorkflowExtraFilterMeta()); - const tableSetting: ColumnsSettingProps = { tableName: 'export_workflow_list', username: username }; - const filterCustomProps = useMemo(() => { return new Map< keyof IListDataExportWorkflowWithExtraParams, @@ -106,23 +94,40 @@ const ExportWorkflowList: React.FC = () => { options: dbServiceIDOptions } ], - ['created_at', { showTime: true }], - ['exported_at', { showTime: true }], - ['creater', { options: memberOptions }], - ['current_step_assignee_user_list', { options: memberOptions }] + [ + 'created_at', + { + showTime: true + } + ], + [ + 'exported_at', + { + showTime: true + } + ], + [ + 'creater', + { + options: memberOptions + } + ], + [ + 'current_step_assignee_user_list', + { + options: memberOptions + } + ] ]); }, [dbServiceIDOptions, memberOptions]); - const rowSelection = { selectedRowKeys, onChange: (keys: string[]) => { setSelectedRowKeys(keys); } }; - const [batchCloseConfirmLoading, setBatchCloseConfirmLoading] = useState(false); - const { data: exportWorkflowList, loading, @@ -144,7 +149,6 @@ const ExportWorkflowList: React.FC = () => { refreshDeps: [tableFilterInfo, pagination, filterStatus] } ); - const batchCloseWorkflowAction = useCallback(() => { const canCancel: boolean = selectedRowKeys.every((e) => { const status = exportWorkflowList?.list?.filter( @@ -157,7 +161,6 @@ const ExportWorkflowList: React.FC = () => { }); if (canCancel) { setBatchCloseConfirmLoading(true); - DataExportWorkflows.CancelDataExportWorkflow({ payload: { data_export_workflow_uids: selectedRowKeys @@ -189,7 +192,6 @@ const ExportWorkflowList: React.FC = () => { exportWorkflowList?.list, refresh ]); - const tableToolbarActions = useMemo(() => { return parse2TableToolbarActionPermissions( DataExportManagementTableToolbarActions({ @@ -204,16 +206,16 @@ const ExportWorkflowList: React.FC = () => { selectedRowKeys, batchCloseWorkflowAction ]); - useEffect(() => { updateDbServiceList({ project_uid: projectID, functional_module: ListDBServiceTipsFunctionalModuleEnum.create_export_task }); - updateMemberTips({ project_uid: projectID }); + updateMemberTips({ + project_uid: projectID + }); }, [projectID, updateDbServiceList, updateMemberTips]); - return (
{messageContextHolder} @@ -224,7 +226,10 @@ const ExportWorkflowList: React.FC = () => { { return { onClick() { navigate(ROUTE_PATHS.BASE.DATA_EXPORT.detail, { - params: { projectID, workflowID: record.workflow_uid ?? '' } + params: { + projectID, + workflowID: record.workflow_uid ?? '' + } }); } }; @@ -284,5 +292,4 @@ const ExportWorkflowList: React.FC = () => {
); }; - export default ExportWorkflowList; diff --git a/packages/base/src/page/DataExportManagement/index.tsx b/packages/base/src/page/DataExportManagement/index.tsx index fd8114196..877dec9f3 100644 --- a/packages/base/src/page/DataExportManagement/index.tsx +++ b/packages/base/src/page/DataExportManagement/index.tsx @@ -1,12 +1,10 @@ import { Typography } from 'antd'; import { useTranslation } from 'react-i18next'; import { EnterpriseFeatureDisplay } from '@actiontech/shared'; -import { PageHeader } from '@actiontech/shared'; +import { PageHeader } from '@actiontech/dms-kit'; import { Outlet } from 'react-router-dom'; - const DataExportManagement: React.FC = () => { const { t } = useTranslation(); - return (
{/* #if [ce] */} @@ -25,5 +23,4 @@ const DataExportManagement: React.FC = () => {
); }; - export default DataExportManagement; diff --git a/packages/base/src/page/DataSource/components/AddDataSource/index.tsx b/packages/base/src/page/DataSource/components/AddDataSource/index.tsx index f56c6b477..d65debd9b 100644 --- a/packages/base/src/page/DataSource/components/AddDataSource/index.tsx +++ b/packages/base/src/page/DataSource/components/AddDataSource/index.tsx @@ -3,40 +3,33 @@ import { useBoolean } from 'ahooks'; import { useCallback } from 'react'; import { useForm } from 'antd/es/form/Form'; import { Space, Typography } from 'antd'; -import { PageLayoutHasFixedHeaderStyleWrapper } from '@actiontech/shared/lib/styleWrapper/element'; +import { PageLayoutHasFixedHeaderStyleWrapper } from '@actiontech/dms-kit'; import { BasicButton, PageHeader, BasicResult, - EmptyBox, - BackButton, - useTypedNavigate -} from '@actiontech/shared'; + EmptyBox +} from '@actiontech/dms-kit'; +import { BackButton, useTypedNavigate } from '@actiontech/shared'; import DataSourceForm from '../Form'; import EmitterKey from '../../../../data/EmitterKey'; import EventEmitter from '../../../../utils/EventEmitter'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { IDBServiceV2 } from '@actiontech/shared/lib/api/base/service/common'; import { DataSourceFormField } from '../Form/index.type'; import { DmsApi } from '@actiontech/shared/lib/api'; import { DataSourceFormContextProvide } from '../../context'; import useCheckConnectable from '../../hooks/useCheckConnectable'; - const AddDataSource = () => { const { t } = useTranslation(); - const navigate = useTypedNavigate(); - const [form] = useForm(); - const { onCheckConnectable, loading, connectAble, connectErrorMessage } = useCheckConnectable(form); - const [resultVisible, { setTrue: showResult, setFalse: hideResult }] = useBoolean(); const [submitLoading, { setTrue: startSubmit, setFalse: submitFinish }] = useBoolean(); - const addDatabase = async (values: DataSourceFormField) => { startSubmit(); const dbService: IDBServiceV2 = { @@ -95,21 +88,17 @@ const AddDataSource = () => { submitFinish(); }); }; - const resetAndHideResult = useCallback(() => { hideResult(); form.resetFields(); // eslint-disable-next-line react-hooks/exhaustive-deps }, [form]); - const onReset = () => { EventEmitter.emit(EmitterKey.DMS_Reset_DataSource_Form); }; - const onSubmit = async () => { EventEmitter.emit(EmitterKey.DMS_Submit_DataSource_Form); }; - return ( { ); }; - export default AddDataSource; diff --git a/packages/base/src/page/DataSource/components/BatchImportDataSource/index.tsx b/packages/base/src/page/DataSource/components/BatchImportDataSource/index.tsx index 193199004..edc794428 100644 --- a/packages/base/src/page/DataSource/components/BatchImportDataSource/index.tsx +++ b/packages/base/src/page/DataSource/components/BatchImportDataSource/index.tsx @@ -2,27 +2,24 @@ import { BasicButton, PageHeader, EmptyBox, - BasicResult, - TypedLink -} from '@actiontech/shared'; + BasicResult +} from '@actiontech/dms-kit'; +import { TypedLink } from '@actiontech/shared'; import { useTranslation } from 'react-i18next'; import BatchImportDataSourceForm from '../../../Project/BatchImportDataSource/UploadForm'; import { useCurrentProject } from '@actiontech/shared/lib/features'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import useBatchImportDataSource from '../../../Project/BatchImportDataSource/hooks/useBatchImportDataSource'; import { UploadProps } from 'antd'; import { useCallback } from 'react'; import { LeftArrowOutlined } from '@actiontech/icons'; -import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths'; +import { ROUTE_PATHS } from '@actiontech/dms-kit'; import { DmsApi } from '@actiontech/shared/lib/api'; import ConnectableErrorModal from '../../../Project/BatchImportDataSource/ConnectableErrorModal'; import useBatchCheckConnectable from '../../../Project/BatchImportDataSource/hooks/useBatchCheckConnectable'; - const BatchImportDataSource = () => { const { t } = useTranslation(); - const { projectID } = useCurrentProject(); - const { importLoading, setImportPending, @@ -37,7 +34,6 @@ const BatchImportDataSource = () => { uploadCheckStatus, clearUploadCheckStatus } = useBatchImportDataSource(); - const { batchCheckConnectable, batchCheckConnectableLoading, @@ -46,7 +42,6 @@ const BatchImportDataSource = () => { hideConnectErrorModal, connectableInfo } = useBatchCheckConnectable(); - const onSubmit = async () => { setImportPending(); DmsApi.DBServiceService.ImportDBServicesOfOneProjectV2({ @@ -63,7 +58,6 @@ const BatchImportDataSource = () => { hideConnectErrorModal(); }); }; - const onCheckConnectableBeforeSubmit = async () => { await form.validateFields(); await batchCheckConnectable(dbServices ?? []).then((res) => { @@ -74,7 +68,6 @@ const BatchImportDataSource = () => { } }); }; - const onUploadCustomRequest = useCallback< Required['customRequest'] >( @@ -86,7 +79,9 @@ const BatchImportDataSource = () => { project_uid: projectID, db_services_file: option.file }, - { responseType: 'blob' } + { + responseType: 'blob' + } ) .then((res) => { importServicesCheck(res); @@ -98,14 +93,15 @@ const BatchImportDataSource = () => { }, [importServicesCheck, projectID, setDBservices, clearUploadCheckStatus] ); - return ( <> }> {t('dmsDataSource.backDesc')} @@ -160,5 +156,4 @@ const BatchImportDataSource = () => { ); }; - export default BatchImportDataSource; diff --git a/packages/base/src/page/DataSource/components/Form/EnvironmentField/index.tsx b/packages/base/src/page/DataSource/components/Form/EnvironmentField/index.tsx index a53d8796b..8ae7550a9 100644 --- a/packages/base/src/page/DataSource/components/Form/EnvironmentField/index.tsx +++ b/packages/base/src/page/DataSource/components/Form/EnvironmentField/index.tsx @@ -1,36 +1,27 @@ -import { - EditableSelect, - EditableSelectProps, - EditableSelectOption -} from '@actiontech/shared'; +import { EditableSelect } from '@actiontech/dms-kit'; +import { EditableSelectProps, EditableSelectOption } from '@actiontech/dms-kit'; import { useState } from 'react'; import { useTranslation } from 'react-i18next'; import { DmsApi } from '@actiontech/shared/lib/api'; import { message } from 'antd'; import { useRequest } from 'ahooks'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { IListDBServiceV2 } from '@actiontech/shared/lib/api/base/service/common'; import { useBoolean } from 'ahooks'; - interface EnvironmentFieldProps extends Omit { projectID?: string; } - const EnvironmentField: React.FC = ({ projectID, ...props }) => { const { t } = useTranslation(); - const [messageApi, contextHolder] = message.useMessage(); - const [boundServices, setBoundServices] = useState([]); - const [ operationLoading, { setTrue: startOperationLoading, setFalse: stopOperationLoading } ] = useBoolean(); - const { data: environmentTags, refresh, @@ -54,7 +45,6 @@ const EnvironmentField: React.FC = ({ ready: !!projectID } ); - const onAdd = (v: string) => { startOperationLoading(); DmsApi.ProjectService.CreateEnvironmentTag({ @@ -73,7 +63,6 @@ const EnvironmentField: React.FC = ({ stopOperationLoading(); }); }; - const deleteEnvironmentTag = (environmentTagUid: string) => { startOperationLoading(); DmsApi.ProjectService.DeleteEnvironmentTag({ @@ -92,7 +81,6 @@ const EnvironmentField: React.FC = ({ stopOperationLoading(); }); }; - const onDelete = (item: EditableSelectOption) => { const environmentTagUid = item.value.toString(); DmsApi.DBServiceService.ListDBServicesV2({ @@ -112,7 +100,6 @@ const EnvironmentField: React.FC = ({ stopOperationLoading(); }); }; - const onUpdate = (item: EditableSelectOption) => { startOperationLoading(); DmsApi.ProjectService.UpdateEnvironmentTag({ @@ -132,7 +119,6 @@ const EnvironmentField: React.FC = ({ stopOperationLoading(); }); }; - return ( <> {contextHolder} @@ -163,5 +149,4 @@ const EnvironmentField: React.FC = ({ ); }; - export default EnvironmentField; diff --git a/packages/base/src/page/DataSource/components/Form/FormItem/index.tsx b/packages/base/src/page/DataSource/components/Form/FormItem/index.tsx index efcded7e3..9467eaf97 100644 --- a/packages/base/src/page/DataSource/components/Form/FormItem/index.tsx +++ b/packages/base/src/page/DataSource/components/Form/FormItem/index.tsx @@ -11,16 +11,12 @@ import { BasicSwitch, EmptyBox, TestDatabaseConnectButton -} from '@actiontech/shared'; -import { - FormItemLabel, - FormItemNoLabel -} from '@actiontech/shared/lib/components/CustomForm'; -import { validatorPort } from '@actiontech/shared/lib/utils/FormRule'; +} from '@actiontech/dms-kit'; +import { FormItemLabel, FormItemNoLabel } from '@actiontech/dms-kit'; +import { validatorPort } from '@actiontech/dms-kit'; import AutoCreatedFormItemByApi from 'sqle/src/components/BackendForm/AutoCreatedFormItemByApi'; import { FormItem } from 'sqle/src/components/BackendForm'; import { DataSourceFormContext } from '../../../context'; - const DatabaseFormItem: React.FC<{ form: FormInstance; isUpdate?: boolean; @@ -31,26 +27,23 @@ const DatabaseFormItem: React.FC<{ isExternalInstance?: boolean; }> = (props) => { const { t } = useTranslation(); - const formContext = useContext(DataSourceFormContext); - const [ hideConnectionInfo, { setFalse: setConnectionInfoShow, setTrue: setConnectionInfoHide } ] = useBoolean(true); - const [needUpdatePassword, setNeedUpdatePassword] = useState(false); const changeNeedUpdatePassword = (check: boolean) => { setNeedUpdatePassword(check); - props.form.setFieldsValue({ needUpdatePassword: check }); + props.form.setFieldsValue({ + needUpdatePassword: check + }); }; - const testDatabaseConnect = async () => { formContext?.onCheckConnectable(props.currentAsyncParams).finally(() => { setConnectionInfoShow(); }); }; - useEffect(() => { const resetConnectAbleStatus = () => { setConnectionInfoHide(); @@ -67,7 +60,6 @@ const DatabaseFormItem: React.FC<{ }; // eslint-disable-next-line react-hooks/exhaustive-deps }, []); - return ( <> ); }; - export default DatabaseFormItem; diff --git a/packages/base/src/page/DataSource/components/Form/MaintenanceTimePicker/MaintenanceTimePicker.tsx b/packages/base/src/page/DataSource/components/Form/MaintenanceTimePicker/MaintenanceTimePicker.tsx index 2a99d675a..e10f0a95d 100644 --- a/packages/base/src/page/DataSource/components/Form/MaintenanceTimePicker/MaintenanceTimePicker.tsx +++ b/packages/base/src/page/DataSource/components/Form/MaintenanceTimePicker/MaintenanceTimePicker.tsx @@ -9,9 +9,8 @@ import { BasicRangePicker, BasicTag, EmptyBox -} from '@actiontech/shared'; +} from '@actiontech/dms-kit'; import { MaintenanceTimePickerPopoverWrapper } from './style'; - const MaintenanceTimePicker: React.FC = (props) => { const { value = [], onChange } = props; const [messageApi, contextHolder] = message.useMessage(); @@ -19,11 +18,8 @@ const MaintenanceTimePicker: React.FC = (props) => { popoverVisible, { toggle: popoverVisibleChange, setFalse: closePopover } ] = useBoolean(); - const { t } = useTranslation(); - const [range, setRange] = useState<[Dayjs | null, Dayjs | null] | null>(); - const turnMomentToMaintenanceTime = ( startMoment: Dayjs, endMoment: Dayjs @@ -39,7 +35,6 @@ const MaintenanceTimePicker: React.FC = (props) => { } }; }; - const add = () => { if (range && range[0] && range[1]) { const newRange = turnMomentToMaintenanceTime(range[0], range[1]); @@ -61,19 +56,15 @@ const MaintenanceTimePicker: React.FC = (props) => { closePopover(); setRange(null); }; - const deleteTime = (index: number) => { onChange?.([...value.slice(0, index), ...value.slice(index + 1)]); }; - const addZero = (num: number) => { return num < 10 ? `0${num}` : num; }; - const generateKey = (time: MaintenanceTimeValue) => { return `${time.startTime.hour}${time.startTime.minute}${time.endTime.hour}${time.endTime.minute}`; }; - return ( {contextHolder} @@ -130,5 +121,4 @@ const MaintenanceTimePicker: React.FC = (props) => { ); }; - export default MaintenanceTimePicker; diff --git a/packages/base/src/page/DataSource/components/Form/SqlAuditFields/ConfirmSwitch.tsx b/packages/base/src/page/DataSource/components/Form/SqlAuditFields/ConfirmSwitch.tsx index 5be69f79e..2bf672bd0 100644 --- a/packages/base/src/page/DataSource/components/Form/SqlAuditFields/ConfirmSwitch.tsx +++ b/packages/base/src/page/DataSource/components/Form/SqlAuditFields/ConfirmSwitch.tsx @@ -1,42 +1,35 @@ -import { BasicSwitch } from '@actiontech/shared'; +import { BasicSwitch } from '@actiontech/dms-kit'; import { Popconfirm } from 'antd'; import { useTranslation } from 'react-i18next'; import { useState } from 'react'; - type ConfirmSwitchProps = { checked?: boolean; onChange?: (value: boolean) => void; onConfirm?: () => void; }; - const ConfirmSwitch: React.FC = ({ checked, onChange, onConfirm }) => { const { t } = useTranslation(); - const [auditRequiredPopupVisible, setAuditRequiredPopupVisible] = useState(false); - const onOpenChange = (open: boolean) => { if (!checked) { return; } setAuditRequiredPopupVisible(open); }; - const onSwitchChange = (value: boolean) => { if (value) { onChange?.(value); } }; - const onInnerConfirm = () => { onChange?.(false); onConfirm?.(); }; - return ( = ({ ); }; - export default ConfirmSwitch; diff --git a/packages/base/src/page/DataSource/components/Form/SqlAuditFields/index.tsx b/packages/base/src/page/DataSource/components/Form/SqlAuditFields/index.tsx index f5dd27604..825fc3f7e 100644 --- a/packages/base/src/page/DataSource/components/Form/SqlAuditFields/index.tsx +++ b/packages/base/src/page/DataSource/components/Form/SqlAuditFields/index.tsx @@ -5,19 +5,18 @@ import { BasicSelect, BasicSwitch, EmptyBox -} from '@actiontech/shared'; -import { FormAreaBlockStyleWrapper } from '@actiontech/shared/lib/components/CustomForm/style'; +} from '@actiontech/dms-kit'; +import { FormAreaBlockStyleWrapper } from '@actiontech/dms-kit/es/components/CustomForm/style'; import { FormItemLabel, FormItemSubTitle, CustomLabelContent -} from '@actiontech/shared/lib/components/CustomForm'; +} from '@actiontech/dms-kit'; import Select, { SelectProps, BaseOptionType } from 'antd/es/select'; import { SQLQueryConfigAllowQueryWhenLessThanAuditLevelEnum } from '@actiontech/shared/lib/api/base/service/common.enum'; import { FaLessThanEqualOutlined } from '@actiontech/icons'; import ConfirmSwitch from './ConfirmSwitch'; import { SqlAuditFieldsSubTitleWrapper } from '../style'; - type SqlAuditFieldsValue = { needSqlAuditService: boolean; ruleTemplateId: string; @@ -29,26 +28,20 @@ type SqlAuditFieldsValue = { workbenchTemplateName: string; allowQueryWhenLessThanAuditLevel: string; }; - type SqlAuditFieldsProps = { getTemplateOptionsLoading: boolean; ruleTemplateOptions: SelectProps['options']; onNeedAuditForSqlQueryChange: (value: boolean) => void; }; - const SqlAuditFields: React.FC = ({ getTemplateOptionsLoading, ruleTemplateOptions, onNeedAuditForSqlQueryChange }) => { const { t } = useTranslation(); - const form = Form.useFormInstance(); - const needSqlAuditService = Form.useWatch('needSqlAuditService'); - const needAuditForSqlQuery = Form.useWatch('needAuditForSqlQuery'); - const changeRuleTemplate = ( value: string, option: BaseOptionType, @@ -58,7 +51,6 @@ const SqlAuditFields: React.FC = ({ [key]: option.key }); }; - return ( @@ -244,5 +236,4 @@ const SqlAuditFields: React.FC = ({ ); }; - export default SqlAuditFields; diff --git a/packages/base/src/page/DataSource/components/Form/index.tsx b/packages/base/src/page/DataSource/components/Form/index.tsx index 6fc69f787..c1c4928ef 100644 --- a/packages/base/src/page/DataSource/components/Form/index.tsx +++ b/packages/base/src/page/DataSource/components/Form/index.tsx @@ -14,17 +14,17 @@ import { BasicSelect, BasicSwitch, EmptyBox, - TypedLink, BasicModal, BasicButton, ReminderInformation -} from '@actiontech/shared'; +} from '@actiontech/dms-kit'; +import { TypedLink } from '@actiontech/shared'; import { FormAreaBlockStyleWrapper, FormAreaLineStyleWrapper, FormStyleWrapper, formItemLayout -} from '@actiontech/shared/lib/components/CustomForm/style'; +} from '@actiontech/dms-kit/es/components/CustomForm/style'; import { FormInputBotBorder, FormItemBigTitle, @@ -32,8 +32,8 @@ import { FormItemNoLabel, FormItemSubTitle, CustomLabelContent -} from '@actiontech/shared/lib/components/CustomForm'; -import { nameRule } from '@actiontech/shared/lib/utils/FormRule'; +} from '@actiontech/dms-kit'; +import { nameRule } from '@actiontech/dms-kit'; import DatabaseFormItem from './FormItem'; import MaintenanceTimePicker from './MaintenanceTimePicker'; import { turnDataSourceAsyncFormToCommon } from '../../tool'; @@ -45,19 +45,18 @@ import classNames from 'classnames'; import { DatabaseFilled } from '@actiontech/icons'; import Icon from '@ant-design/icons'; import useProjectTips from '../../../../hooks/useProjectTips'; -import { SQLE_INSTANCE_SOURCE_NAME } from '@actiontech/shared/lib/data/common'; +import { SQLE_INSTANCE_SOURCE_NAME } from '@actiontech/dms-kit'; import system from '@actiontech/shared/lib/api/sqle/service/system'; import { getSystemModuleStatusDbTypeEnum, getSystemModuleStatusModuleNameEnum } from '@actiontech/shared/lib/api/sqle/service/system/index.enum'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import EnvironmentField from './EnvironmentField'; import { DataSourceFormContext } from '../../context'; import { useBoolean } from 'ahooks'; import { FormCheckConnectableInfoModalWrapper } from './style'; import SqlAuditFields from './SqlAuditFields'; - const DataSourceForm: React.FC = (props) => { const { t } = useTranslation(); const isExternalInstance = useMemo(() => { @@ -66,31 +65,22 @@ const DataSourceForm: React.FC = (props) => { } return props.defaultData.source !== SQLE_INSTANCE_SOURCE_NAME; }, [props.defaultData]); - const formContext = useContext(DataSourceFormContext); - const [databaseType, setDatabaseType] = useState(''); const [currentDBTypeSupportBackup, setCurrentDBTypeSupportBackup] = useState(false); - const [modalOpen, { setTrue: openModal, setFalse: closeModal }] = useBoolean(false); - const { driverMeta, loading: updateDriverListLoading, updateDriverList, generateDriverSelectOptions } = useDbServiceDriver(); - const { updateProjects, projectIDOptions } = useProjectTips(); - const { projectID } = useCurrentProject(); - const project = Form.useWatch('project', props.form); - const enableBackup = Form.useWatch('enableBackup', props.form); - const getBackupSupportStatus = useCallback((value: string) => { system .getSystemModuleStatus({ @@ -103,7 +93,6 @@ const DataSourceForm: React.FC = (props) => { } }); }, []); - const databaseTypeChange = useCallback( (value: string) => { setDatabaseType(value); @@ -148,7 +137,6 @@ const DataSourceForm: React.FC = (props) => { } = useRequest(() => rule_template.getRuleTemplateTipsV1({}).then((res) => res.data.data ?? []) ); - const ruleTemplateOptions = useMemo(() => { return [...ruleTemplateList, ...globalRuleTemplateList] .filter((v) => (databaseType ? v.db_type === databaseType : true)) @@ -160,7 +148,6 @@ const DataSourceForm: React.FC = (props) => { }; }); }, [ruleTemplateList, globalRuleTemplateList, databaseType]); - const changeAuditEnabled = (check: boolean) => { if (!check) { props.form.setFieldsValue({ @@ -182,15 +169,12 @@ const DataSourceForm: React.FC = (props) => { if (!driverMeta || !databaseType) { return []; } - const temp = driverMeta.find((item) => item.db_type === databaseType); if (!temp) { return []; } - return turnDataSourceAsyncFormToCommon(temp.params ?? []); }, [databaseType, driverMeta]); - useEffect(() => { if (!!props.defaultData) { props.form.setFieldsValue({ @@ -268,12 +252,14 @@ const DataSourceForm: React.FC = (props) => { props.form.resetFields(); setDatabaseType(''); }, [props.form]); - const submit = useCallback(async () => { const values = props.form.getFieldsValue(); if (values.params) { values.asyncParams = mergeFromValueIntoParams(values.params, params).map( - (v) => ({ name: v.key, value: v.value }) + (v) => ({ + name: v.key, + value: v.value + }) ); delete values.params; } @@ -281,7 +267,6 @@ const DataSourceForm: React.FC = (props) => { closeModal(); }); }, [mergeFromValueIntoParams, params, props, closeModal]); - useEffect(() => { const { unsubscribe: unsubscribeReset } = EventEmitter.subscribe( EmitterKey.DMS_Reset_DataSource_Form, @@ -289,7 +274,6 @@ const DataSourceForm: React.FC = (props) => { ); return unsubscribeReset; }, [reset]); - const onCheckConnectableBeforeSubmit = useCallback(async () => { const values = await props.form.validateFields(); if (props.isUpdate && !values.needUpdatePassword) { @@ -304,7 +288,6 @@ const DataSourceForm: React.FC = (props) => { } }); }, [formContext, submit, openModal, props, params]); - useEffect(() => { const { unsubscribe: unsubscribeSubmit } = EventEmitter.subscribe( EmitterKey.DMS_Submit_DataSource_Form, @@ -312,19 +295,16 @@ const DataSourceForm: React.FC = (props) => { ); return unsubscribeSubmit; }, [onCheckConnectableBeforeSubmit]); - useEffect(() => { updateDriverList(); updateProjects(); }, [updateDriverList, updateProjects]); - useEffect(() => { if (projectID) { props.form.setFieldValue('project', projectID); } // eslint-disable-next-line react-hooks/exhaustive-deps }, [projectID]); - const hasBorder = () => { let border = false; // #if [dms] @@ -332,7 +312,6 @@ const DataSourceForm: React.FC = (props) => { // #endif return border; }; - return ( } @@ -363,8 +342,12 @@ const DataSourceForm: React.FC = (props) => { }, ...nameRule() ]} - labelCol={{ span: 0 }} - wrapperCol={{ span: 24 }} + labelCol={{ + span: 0 + }} + wrapperCol={{ + span: 24 + }} > = (props) => { @@ -409,7 +396,11 @@ const DataSourceForm: React.FC = (props) => { className="has-required-style" label={t('dmsDataSource.dataSourceForm.environmentAttribute')} name="environmentTagId" - rules={[{ required: true }]} + rules={[ + { + required: true + } + ]} > @@ -431,7 +422,9 @@ const DataSourceForm: React.FC = (props) => { {/* #if [sqle] */} = (props) => { } name="is_enable_masking" valuePropName="checked" - labelCol={{ span: 12 }} - wrapperCol={{ span: 11, push: 1 }} + labelCol={{ + span: 12 + }} + wrapperCol={{ + span: 11, + push: 1 + }} > @@ -569,5 +567,4 @@ const DataSourceForm: React.FC = (props) => { ); }; - export default DataSourceForm; diff --git a/packages/base/src/page/DataSource/components/List/ConnectionResultColumn.tsx b/packages/base/src/page/DataSource/components/List/ConnectionResultColumn.tsx index b5702a839..be551c036 100644 --- a/packages/base/src/page/DataSource/components/List/ConnectionResultColumn.tsx +++ b/packages/base/src/page/DataSource/components/List/ConnectionResultColumn.tsx @@ -1,22 +1,19 @@ import { useTranslation } from 'react-i18next'; -import { BasicTag, BasicToolTip } from '@actiontech/shared'; -import { formatTime } from '@actiontech/shared/lib/utils/Common'; +import { BasicTag, BasicToolTip } from '@actiontech/dms-kit'; +import { formatTime } from '@actiontech/dms-kit'; import { Space, Typography } from 'antd'; import { ListDBServiceV2LastConnectionTestStatusEnum } from '@actiontech/shared/lib/api/base/service/common.enum'; - type Props = { connectionStatus?: ListDBServiceV2LastConnectionTestStatusEnum; connectionTestTime?: string; connectionErrorMessage?: string; }; - const ConnectionStatusColumn: React.FC = ({ connectionStatus, connectionTestTime, connectionErrorMessage }) => { const { t } = useTranslation(); - if ( connectionStatus === ListDBServiceV2LastConnectionTestStatusEnum.connect_success @@ -31,13 +28,18 @@ const ConnectionStatusColumn: React.FC = ({ } > - + {t('dmsDataSource.databaseList.connectSucceed')} ); } - if ( connectionStatus === ListDBServiceV2LastConnectionTestStatusEnum.connect_failed @@ -61,14 +63,18 @@ const ConnectionStatusColumn: React.FC = ({ } > - + {t('dmsDataSource.databaseList.connectFailed')} ); } - return <>-; }; - export default ConnectionStatusColumn; diff --git a/packages/base/src/page/DataSource/components/List/actions.tsx b/packages/base/src/page/DataSource/components/List/actions.tsx index 44297185f..bc2bd6af2 100644 --- a/packages/base/src/page/DataSource/components/List/actions.tsx +++ b/packages/base/src/page/DataSource/components/List/actions.tsx @@ -8,8 +8,7 @@ import { t } from '../../../../locale'; import { PlusOutlined } from '@actiontech/icons'; import { ActionButton } from '@actiontech/shared'; import { ReactNode } from 'react'; -import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths'; - +import { ROUTE_PATHS } from '@actiontech/dms-kit'; export const DataSourceListActions = ( onNavigateUpdateDataSource: (uid: string) => void, onDeleteDataSource: (uid: string, name: string) => void, @@ -33,7 +32,9 @@ export const DataSourceListActions = ( { key: 'delete-db-service', text: t('common.delete'), - buttonProps: () => ({ danger: true }), + buttonProps: () => ({ + danger: true + }), confirm: (record) => ({ title: t('dmsDataSource.deleteDatabase.confirmMessage', { name: record?.name @@ -84,7 +85,6 @@ export const DataSourceListActions = ( ] }; }; - export const DataSourcePageHeaderActions = ( projectID: string, batchTestDatabaseConnection: () => void, @@ -115,7 +115,9 @@ export const DataSourcePageHeaderActions = ( actionType="navigate-link" link={{ to: ROUTE_PATHS.BASE.DATA_SOURCE.batch_import, - params: { projectID } + params: { + projectID + } }} /> @@ -136,7 +138,9 @@ export const DataSourcePageHeaderActions = ( actionType="navigate-link" link={{ to: ROUTE_PATHS.BASE.DATA_SOURCE.create, - params: { projectID } + params: { + projectID + } }} /> diff --git a/packages/base/src/page/DataSource/components/List/columns.tsx b/packages/base/src/page/DataSource/components/List/columns.tsx index 407603fe4..b8baaf975 100644 --- a/packages/base/src/page/DataSource/components/List/columns.tsx +++ b/packages/base/src/page/DataSource/components/List/columns.tsx @@ -1,10 +1,11 @@ -import { timeAddZero } from '@actiontech/shared/lib/utils/Common'; +import { timeAddZero } from '@actiontech/dms-kit'; import { Tag } from 'antd'; import { t } from '../../../../locale'; import { IListDBServiceV2 } from '@actiontech/shared/lib/api/base/service/common'; import { ActiontechTableColumn } from '@actiontech/shared/lib/components/ActiontechTable'; import { IListDBServicesV2Params } from '@actiontech/shared/lib/api/base/service/DBService/index.d'; -import { BasicTypographyEllipsis, DatabaseTypeLogo } from '@actiontech/shared'; +import { DatabaseTypeLogo } from '@actiontech/dms-kit'; +import { BasicTypographyEllipsis } from '@actiontech/shared'; import ScanTypeTagsCell from 'sqle/src/page/SqlManagementConf/List/ScanTypeTagsCell'; import ConnectionResultColumn from './ConnectionResultColumn'; import { ServiceEnvironmentTagStyleWrapper } from './style'; @@ -18,7 +19,6 @@ export type DataSourceListParamType = Omit< IListDBServicesV2Params, 'page_index' | 'page_size' | 'project_uid' >; - export const DataSourceColumns = ( getLogoUrlByDbType: (dbType: string) => string ): ActiontechTableColumn< @@ -80,7 +80,6 @@ export const DataSourceColumns = ( filterKey: 'filter_by_db_type', render: (dbType) => { if (!dbType) return '-'; - return ( { const { t } = useTranslation(); - const navigate = useTypedNavigate(); const extractQuery = useTypedQuery(); const [modalApi, modalContextHolder] = Modal.useModal(); const [messageApi, messageContextHolder] = message.useMessage(); const { parse2TableActionPermissions } = usePermission(); const { projectID } = useCurrentProject(); - const [ batchTestDatabaseConnectionPending, { setFalse: finishTestConnection, setTrue: startTestConnection } ] = useBoolean(); - const { dbDriverOptions, getLogoUrlByDbType, @@ -67,15 +60,12 @@ const DataSourceList = () => { loading: getDbServiceOptionsLoading, updateDbServiceList } = useDbService(); - const { environmentOptions, loading: getEnvironmentListLoading, updateEnvironmentList } = useServiceEnvironment(); - const { generateDatabaseTestConnectionStatusSelectOptions } = useStaticTips(); - const { tableFilterInfo, updateTableFilterInfo, @@ -90,7 +80,6 @@ const DataSourceList = () => { }); const { requestErrorMessage, handleTableRequestError } = useTableRequestError(); - const createEnableMaskingParams = ( params: DataSourceListParamType, enableMasking: DataMaskingFilterTypeEnum @@ -99,7 +88,6 @@ const DataSourceList = () => { params.is_enable_masking = enableMasking === DataMaskingFilterTypeEnum.checked; }; - const { data: dataSourceList, loading, @@ -125,32 +113,40 @@ const DataSourceList = () => { ready: !!projectID } ); - const navigateToUpdatePage = useCallback( (dbServiceUid: string) => { navigate(ROUTE_PATHS.BASE.DATA_SOURCE.update, { - params: { projectID, dbServiceUid } + params: { + projectID, + dbServiceUid + } }); }, [navigate, projectID] ); - const navigateToSqlManagementConf = useCallback( (uid: string, environment: string, instanceAuditPlanId?: string) => { if (instanceAuditPlanId) { navigate(ROUTE_PATHS.SQLE.SQL_MANAGEMENT_CONF.update, { - params: { projectID, id: instanceAuditPlanId } + params: { + projectID, + id: instanceAuditPlanId + } }); } else { navigate(ROUTE_PATHS.SQLE.SQL_MANAGEMENT_CONF.create, { - params: { projectID }, - queries: { instance_id: uid, environment_tag: environment } + params: { + projectID + }, + queries: { + instance_id: uid, + environment_tag: environment + } }); } }, [navigate, projectID] ); - const deleteDatabase = useCallback( (dbServiceUid: string, dvServiceName: string) => { const hideLoading = messageApi.loading( @@ -179,7 +175,6 @@ const DataSourceList = () => { }, [messageApi, refresh, t, projectID] ); - const testDatabaseConnection = useCallback( (dbServiceUid: string, dbServiceName: string) => { const hide = messageApi.loading( @@ -222,7 +217,6 @@ const DataSourceList = () => { }, [messageApi, modalApi, projectID, refresh, t] ); - const batchTestDatabaseConnection = () => { if (!dataSourceList?.list || dataSourceList.list.length === 0) { messageApi.error(t('dmsDataSource.batchTestConnection.notFoundData')); @@ -250,35 +244,48 @@ const DataSourceList = () => { finishTestConnection(); }); }; - const columns = useMemo( () => DataSourceColumns(getLogoUrlByDbType), [getLogoUrlByDbType] ); - const { filterButtonMeta, filterContainerMeta, updateAllSelectedFilterItem } = useTableFilterContainer(columns, updateTableFilterInfo); - const filterCustomProps = useMemo(() => { return new Map([ [ 'name', - { options: dbServiceOptions, loading: getDbServiceOptionsLoading } + { + options: dbServiceOptions, + loading: getDbServiceOptionsLoading + } ], [ 'db_type', - { options: dbDriverOptions, loading: getDriveOptionsLoading } + { + options: dbDriverOptions, + loading: getDriveOptionsLoading + } ], [ 'last_connection_test_status', - { options: generateDatabaseTestConnectionStatusSelectOptions } + { + options: generateDatabaseTestConnectionStatusSelectOptions + } ], [ 'environment_tag', - { options: environmentOptions, loading: getEnvironmentListLoading } + { + options: environmentOptions, + loading: getEnvironmentListLoading + } ], // #if [dms] - ['is_enable_masking', { options: filterDataMaskOptions }] + [ + 'is_enable_masking', + { + options: filterDataMaskOptions + } + ] // #endif ]); }, [ @@ -290,7 +297,6 @@ const DataSourceList = () => { environmentOptions, getEnvironmentListLoading ]); - const tableActions = useMemo(() => { return parse2TableActionPermissions( DataSourceListActions( @@ -312,16 +318,16 @@ const DataSourceList = () => { batchTestDatabaseConnection, batchTestDatabaseConnectionPending ); - useEffect(() => { if (projectID) { updateDriverList(); - updateDbServiceList({ project_uid: projectID }); + updateDbServiceList({ + project_uid: projectID + }); updateEnvironmentList(projectID); } // eslint-disable-next-line react-hooks/exhaustive-deps }, [projectID]); - return ( <> {modalContextHolder} @@ -339,7 +345,10 @@ const DataSourceList = () => { } /> { ); }; - export default DataSourceList; diff --git a/packages/base/src/page/DataSource/components/List/style.ts b/packages/base/src/page/DataSource/components/List/style.ts index 0a342ca30..af7b6a241 100644 --- a/packages/base/src/page/DataSource/components/List/style.ts +++ b/packages/base/src/page/DataSource/components/List/style.ts @@ -1,6 +1,5 @@ import { styled } from '@mui/material/styles'; -import { BasicTag } from '@actiontech/shared'; - +import { BasicTag } from '@actiontech/dms-kit'; /** * todo Basic宽度默认占据一行 使用时不太方便 后续对BasicTag的样式进行调整 */ diff --git a/packages/base/src/page/DataSource/components/UpdateDataSource/index.tsx b/packages/base/src/page/DataSource/components/UpdateDataSource/index.tsx index b622b5a4e..73b440453 100644 --- a/packages/base/src/page/DataSource/components/UpdateDataSource/index.tsx +++ b/packages/base/src/page/DataSource/components/UpdateDataSource/index.tsx @@ -2,17 +2,12 @@ import { useTranslation } from 'react-i18next'; import { useBoolean } from 'ahooks'; import { useCallback, useEffect, useState } from 'react'; import { Button, message, Empty, Typography, Spin } from 'antd'; -import { - BasicButton, - EmptyBox, - PageHeader, - useTypedNavigate, - useTypedParams -} from '@actiontech/shared'; -import { PageLayoutHasFixedHeaderStyleWrapper } from '@actiontech/shared/lib/styleWrapper/element'; +import { BasicButton, EmptyBox, PageHeader } from '@actiontech/dms-kit'; +import { useTypedNavigate, useTypedParams } from '@actiontech/shared'; +import { PageLayoutHasFixedHeaderStyleWrapper } from '@actiontech/dms-kit'; import DataSourceForm from '../Form'; import { useForm } from 'antd/es/form/Form'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { useCurrentProject } from '@actiontech/shared/lib/features'; import EmitterKey from '../../../../data/EmitterKey'; import EventEmitter from '../../../../utils/EventEmitter'; @@ -20,34 +15,27 @@ import { DataSourceFormField } from '../Form/index.type'; import { IListDBServiceV2 } from '@actiontech/shared/lib/api/base/service/common'; import { IUpdateDBServiceV2Params } from '@actiontech/shared/lib/api/base/service/DBService/index.d'; import { LeftArrowOutlined } from '@actiontech/icons'; -import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths'; +import { ROUTE_PATHS } from '@actiontech/dms-kit'; import { DmsApi } from '@actiontech/shared/lib/api'; import { DataSourceFormContextProvide } from '../../context'; import useCheckConnectable from '../../hooks/useCheckConnectable'; - const UpdateDataSource = () => { const { t } = useTranslation(); - const navigate = useTypedNavigate(); const [messageApi, messageContextHolder] = message.useMessage(); - const { projectID } = useCurrentProject(); - const [initError, setInitError] = useState(''); const [form] = useForm(); const urlParams = useTypedParams(); - const { onCheckConnectable, loading, connectAble, connectErrorMessage } = useCheckConnectable(form); - const [retryLoading, setRetryLoading] = useState(false); const [submitLoading, { setTrue: startSubmit, setFalse: submitFinish }] = useBoolean(); const [instanceInfo, setInstanceInfo] = useState< IListDBServiceV2 | undefined >(); - const updateDatabase = async (values: DataSourceFormField) => { startSubmit(); const params: IUpdateDBServiceV2Params = { @@ -102,7 +90,6 @@ const UpdateDataSource = () => { if (!!values.needUpdatePassword && !!values.password && params.db_service) { params.db_service.password = values.password; } - return DmsApi.DBServiceService.UpdateDBServiceV2(params) .then((res) => { if (res.data.code === ResponseCode.SUCCESS) { @@ -121,11 +108,9 @@ const UpdateDataSource = () => { submitFinish(); }); }; - const onSubmitForm = async () => { EventEmitter.emit(EmitterKey.DMS_Submit_DataSource_Form); }; - const getInstanceInfo = useCallback(() => { setRetryLoading(true); DmsApi.DBServiceService.ListDBServicesV2({ @@ -137,7 +122,10 @@ const UpdateDataSource = () => { .then((res) => { if (res.data.code === ResponseCode.SUCCESS) { const instance = res.data.data?.[0]; - setInstanceInfo({ ...instance, password: '' }); + setInstanceInfo({ + ...instance, + password: '' + }); setInitError(''); } else { setInitError(res.data.message ?? t('common.unknownError')); @@ -147,13 +135,11 @@ const UpdateDataSource = () => { setRetryLoading(false); }); }, [projectID, t, urlParams.dbServiceUid]); - useEffect(() => { if (!!urlParams.dbServiceUid && !!projectID) { getInstanceInfo(); } }, [getInstanceInfo, projectID, urlParams.dbServiceUid]); - return ( {messageContextHolder} @@ -221,5 +207,4 @@ const UpdateDataSource = () => { ); }; - export default UpdateDataSource; diff --git a/packages/base/src/page/DataSource/hooks/useCheckConnectable.ts b/packages/base/src/page/DataSource/hooks/useCheckConnectable.ts index b1dce46b6..f1e17875f 100644 --- a/packages/base/src/page/DataSource/hooks/useCheckConnectable.ts +++ b/packages/base/src/page/DataSource/hooks/useCheckConnectable.ts @@ -4,7 +4,7 @@ import { DataSourceFormField } from '../components/Form/index.type'; import { FormItem } from 'sqle/src/components/BackendForm'; import { useBoolean } from 'ahooks'; import { DmsApi } from '@actiontech/shared/lib/api/'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import useAsyncParams from 'sqle/src/components/BackendForm/useAsyncParams'; import { getDBServiceConnectableErrorMessage, diff --git a/packages/base/src/page/DataSourceManagement/action.tsx b/packages/base/src/page/DataSourceManagement/action.tsx index b6860d262..809d4e609 100644 --- a/packages/base/src/page/DataSourceManagement/action.tsx +++ b/packages/base/src/page/DataSourceManagement/action.tsx @@ -7,8 +7,7 @@ import { import { ReactNode } from 'react'; import { DataSourceManagerSegmentedKey } from './index.type'; import { t } from '../../locale'; -import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths'; - +import { ROUTE_PATHS } from '@actiontech/dms-kit'; export const DataSourceManagementPageHeaderActions = ( activeKey: DataSourceManagerSegmentedKey, onBatchTestConnection: () => void @@ -30,7 +29,9 @@ export const DataSourceManagementPageHeaderActions = ( icon={} hidden={activeKey !== DataSourceManagerSegmentedKey.SyncDataSource} actionType="navigate-link" - link={{ to: ROUTE_PATHS.BASE.SYNC_DATA_SOURCE.create }} + link={{ + to: ROUTE_PATHS.BASE.SYNC_DATA_SOURCE.create + }} /> ), @@ -42,7 +43,9 @@ export const DataSourceManagementPageHeaderActions = ( text={t('dmsGlobalDataSource.batchImportDataSource.buttonText')} hidden={activeKey !== DataSourceManagerSegmentedKey.GlobalDataSource} actionType="navigate-link" - link={{ to: ROUTE_PATHS.BASE.GLOBAL_DATA_SOURCE.batch_import }} + link={{ + to: ROUTE_PATHS.BASE.GLOBAL_DATA_SOURCE.batch_import + }} /> ), @@ -56,7 +59,9 @@ export const DataSourceManagementPageHeaderActions = ( icon={} hidden={activeKey !== DataSourceManagerSegmentedKey.GlobalDataSource} actionType="navigate-link" - link={{ to: ROUTE_PATHS.BASE.GLOBAL_DATA_SOURCE.create }} + link={{ + to: ROUTE_PATHS.BASE.GLOBAL_DATA_SOURCE.create + }} /> ), diff --git a/packages/base/src/page/DataSourceManagement/index.tsx b/packages/base/src/page/DataSourceManagement/index.tsx index 798237fd6..7724946b1 100644 --- a/packages/base/src/page/DataSourceManagement/index.tsx +++ b/packages/base/src/page/DataSourceManagement/index.tsx @@ -2,10 +2,9 @@ import { useTranslation } from 'react-i18next'; import { PageHeader, SegmentedTabs, - SegmentedTabsProps, - useTypedNavigate, - useTypedQuery -} from '@actiontech/shared'; + SegmentedTabsProps +} from '@actiontech/dms-kit'; +import { useTypedNavigate, useTypedQuery } from '@actiontech/shared'; import { DataSourceManagerSegmentedKey } from './index.type'; import { useEffect, useMemo, useState } from 'react'; import { Space } from 'antd'; @@ -20,19 +19,15 @@ import { usePermission } from '@actiontech/shared/lib/features'; import { DataSourceManagementPageHeaderActions } from './action'; -import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths'; - +import { ROUTE_PATHS } from '@actiontech/dms-kit'; const DataSourceManagement: React.FC = () => { const { t } = useTranslation(); const [activeKey, setActiveKey] = useState( DataSourceManagerSegmentedKey.GlobalDataSource ); - const { checkPagePermission } = usePermission(); - const extractQuery = useTypedQuery(); const navigate = useTypedNavigate(); - const onRefresh = () => { if (activeKey === DataSourceManagerSegmentedKey.GlobalDataSource) { eventEmitter.emit(EmitterKey.DMS_Refresh_Global_Data_Source); @@ -40,10 +35,11 @@ const DataSourceManagement: React.FC = () => { eventEmitter.emit(EmitterKey.DMS_Refresh_Sync_Data_Source); } }; - const tabItems = useMemo(() => { const items: Array< - SegmentedTabsProps['items'][0] & { permission: PermissionsConstantType } + SegmentedTabsProps['items'][0] & { + permission: PermissionsConstantType; + } > = [ { label: t('dmsGlobalDataSource.pageTitle'), @@ -60,7 +56,6 @@ const DataSourceManagement: React.FC = () => { permission: PERMISSIONS.PAGES.BASE.SYNC_DATA_SOURCE } ]; - return items.filter((item) => checkPagePermission(item.permission)); }, [checkPagePermission, t]); @@ -94,7 +89,6 @@ const DataSourceManagement: React.FC = () => { setActiveKey(searchParams.active as DataSourceManagerSegmentedKey); } }, [extractQuery]); - return (
{ onChange={(key) => { setActiveKey(key); navigate(ROUTE_PATHS.BASE.DATA_SOURCE_MANAGEMENT.index, { - queries: { active: key }, + queries: { + active: key + }, replace: true }); }} @@ -125,5 +121,4 @@ const DataSourceManagement: React.FC = () => {
); }; - export default DataSourceManagement; diff --git a/packages/base/src/page/GlobalDataSource/BatchImportDataSource/index.tsx b/packages/base/src/page/GlobalDataSource/BatchImportDataSource/index.tsx index bbb0c43cf..93055fcfc 100644 --- a/packages/base/src/page/GlobalDataSource/BatchImportDataSource/index.tsx +++ b/packages/base/src/page/GlobalDataSource/BatchImportDataSource/index.tsx @@ -2,12 +2,12 @@ import { BasicButton, PageHeader, EmptyBox, - BasicResult, - BackButton -} from '@actiontech/shared'; + BasicResult +} from '@actiontech/dms-kit'; +import { BackButton } from '@actiontech/shared'; import { useTranslation } from 'react-i18next'; import BatchImportDataSourceForm from '../../Project/BatchImportDataSource/UploadForm'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import useBatchImportDataSource from '../../Project/BatchImportDataSource/hooks/useBatchImportDataSource'; import { UploadProps } from 'antd'; import { useCallback } from 'react'; @@ -15,10 +15,8 @@ import { LeftArrowOutlined } from '@actiontech/icons'; import { DmsApi } from '@actiontech/shared/lib/api'; import ConnectableErrorModal from '../../Project/BatchImportDataSource/ConnectableErrorModal'; import useBatchCheckConnectable from '../../Project/BatchImportDataSource/hooks/useBatchCheckConnectable'; - const GlobalBatchImportDataSource = () => { const { t } = useTranslation(); - const { importLoading, setImportPending, @@ -33,7 +31,6 @@ const GlobalBatchImportDataSource = () => { uploadCheckStatus, clearUploadCheckStatus } = useBatchImportDataSource(); - const { batchCheckConnectable, batchCheckConnectableLoading, @@ -42,7 +39,6 @@ const GlobalBatchImportDataSource = () => { hideConnectErrorModal, connectableInfo } = useBatchCheckConnectable(); - const onSubmit = async () => { setImportPending(); DmsApi.ProjectService.ImportDBServicesOfProjectsV2({ @@ -58,7 +54,6 @@ const GlobalBatchImportDataSource = () => { hideConnectErrorModal(); }); }; - const onCheckConnectableBeforeSubmit = async () => { await form.validateFields(); await batchCheckConnectable(dbServices ?? []).then((res) => { @@ -69,7 +64,6 @@ const GlobalBatchImportDataSource = () => { } }); }; - const onUploadCustomRequest = useCallback< Required['customRequest'] >( @@ -77,8 +71,12 @@ const GlobalBatchImportDataSource = () => { setDBservices([]); clearUploadCheckStatus(); DmsApi.ProjectService.ImportDBServicesOfProjectsCheckV2( - { db_services_file: option.file }, - { responseType: 'blob' } + { + db_services_file: option.file + }, + { + responseType: 'blob' + } ) .then((res) => { importServicesCheck(res); @@ -90,7 +88,6 @@ const GlobalBatchImportDataSource = () => { }, [importServicesCheck, setDBservices, clearUploadCheckStatus] ); - return ( <> { ); }; - export default GlobalBatchImportDataSource; diff --git a/packages/base/src/page/GlobalDataSource/List/__tests__/index.test.tsx b/packages/base/src/page/GlobalDataSource/List/__tests__/index.test.tsx index 83c109b72..0685bd17c 100644 --- a/packages/base/src/page/GlobalDataSource/List/__tests__/index.test.tsx +++ b/packages/base/src/page/GlobalDataSource/List/__tests__/index.test.tsx @@ -18,7 +18,7 @@ import { superRender } from '@actiontech/shared/lib/testUtil/superRender'; import { mockUseCurrentProject } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentProject'; import { mockUseCurrentUser } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentUser'; import { mockUseDbServiceDriver } from '@actiontech/shared/lib/testUtil/mockHook/mockUseDbServiceDriver'; -import { SystemRole } from '@actiontech/shared/lib/enum'; +import { SystemRole } from '@actiontech/dms-kit'; import eventEmitter from '../../../../utils/EventEmitter'; import EmitterKey from '../../../../data/EmitterKey'; diff --git a/packages/base/src/page/GlobalDataSource/List/columns.tsx b/packages/base/src/page/GlobalDataSource/List/columns.tsx index a3e5c7b2c..12a2ebf8f 100644 --- a/packages/base/src/page/GlobalDataSource/List/columns.tsx +++ b/packages/base/src/page/GlobalDataSource/List/columns.tsx @@ -1,4 +1,4 @@ -import { timeAddZero } from '@actiontech/shared/lib/utils/Common'; +import { timeAddZero } from '@actiontech/dms-kit'; import { Tag } from 'antd'; import { t } from '../../../locale'; import { IListGlobalDBServiceV2 } from '@actiontech/shared/lib/api/base/service/common'; @@ -7,15 +7,16 @@ import { PageInfoWithoutIndexAndSize } from '@actiontech/shared/lib/components/ActiontechTable'; import { IListGlobalDBServicesV2Params } from '@actiontech/shared/lib/api/base/service/DBService/index.d'; -import { BasicTypographyEllipsis, DatabaseTypeLogo } from '@actiontech/shared'; +import { DatabaseTypeLogo } from '@actiontech/dms-kit'; +import { BasicTypographyEllipsis } from '@actiontech/shared'; import ConnectionResultColumn from '../../DataSource/components/List/ConnectionResultColumn'; import { ListDBServiceV2LastConnectionTestStatusEnum } from '@actiontech/shared/lib/api/base/service/common.enum'; import { ServiceEnvironmentTagStyleWrapper } from '../../DataSource/components/List/style'; - export type GLobalDataSourceListParamType = PageInfoWithoutIndexAndSize< - IListGlobalDBServicesV2Params & { page_index: number } + IListGlobalDBServicesV2Params & { + page_index: number; + } >; - export const GlobalDataSourceColumns = ( getLogoUrlByDbType: (dbType: string) => string ): ActiontechTableColumn< @@ -99,7 +100,6 @@ export const GlobalDataSourceColumns = ( filterKey: 'filter_by_db_type', render: (dbType) => { if (!dbType) return '-'; - return ( { const [dbTypeList, setDBTypeList] = useState([]); const [loading, { setTrue, setFalse }] = useBoolean(); const { getLogoUrlByDbType } = useDbServiceDriver(); - const updateDbTypeList = React.useCallback(() => { setTrue(); DBService.ListGlobalDBServicesTips() @@ -25,7 +23,6 @@ const useGlobalDataSourceType = () => { setFalse(); }); }, [setFalse, setTrue]); - const dbTypeOptions = useMemo(() => { return dbTypeList.map((item) => ({ value: item, @@ -35,7 +32,6 @@ const useGlobalDataSourceType = () => { ) })); }, [dbTypeList, getLogoUrlByDbType]); - return { updateDbTypeList, loading, @@ -43,5 +39,4 @@ const useGlobalDataSourceType = () => { dbTypeOptions }; }; - export default useGlobalDataSourceType; diff --git a/packages/base/src/page/Home/DefaultScene/__tests__/index.ce.test.tsx b/packages/base/src/page/Home/DefaultScene/__tests__/index.ce.test.tsx index c7036afa0..b79e0a5f0 100644 --- a/packages/base/src/page/Home/DefaultScene/__tests__/index.ce.test.tsx +++ b/packages/base/src/page/Home/DefaultScene/__tests__/index.ce.test.tsx @@ -4,7 +4,7 @@ import { mockUseCurrentUser } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentUser'; import { baseSuperRender } from '../../../../testUtils/superRender'; import CEDefaultScene from '../index.ce'; -import { SystemRole } from '@actiontech/shared/lib/enum'; +import { SystemRole } from '@actiontech/dms-kit'; describe('test base/home/CEDefaultScene', () => { it('should match snapshot when role is admin', () => { diff --git a/packages/base/src/page/Home/DefaultScene/__tests__/index.test.tsx b/packages/base/src/page/Home/DefaultScene/__tests__/index.test.tsx index dbfefa2fa..62407a414 100644 --- a/packages/base/src/page/Home/DefaultScene/__tests__/index.test.tsx +++ b/packages/base/src/page/Home/DefaultScene/__tests__/index.test.tsx @@ -8,7 +8,7 @@ import { ignoreConsoleErrors, UtilsConsoleErrorStringsEnum } from '@actiontech/shared/lib/testUtil/common'; -import { SystemRole } from '@actiontech/shared/lib/enum'; +import { SystemRole } from '@actiontech/dms-kit'; jest.mock('react-router-dom', () => { return { diff --git a/packages/base/src/page/Home/DefaultScene/components/NotFoundProject/index.tsx b/packages/base/src/page/Home/DefaultScene/components/NotFoundProject/index.tsx index 70642a25c..095f08884 100644 --- a/packages/base/src/page/Home/DefaultScene/components/NotFoundProject/index.tsx +++ b/packages/base/src/page/Home/DefaultScene/components/NotFoundProject/index.tsx @@ -4,7 +4,7 @@ import { ProjectSelectorLabelStyleWrapper } from '../../../../Nav/SideMenu/Proje import ProjectSelectorModal from '../../../../Project/Detail/NotFoundRecentlyProject/ProjectSelectorModal'; import { NotFoundProjectProps } from './index.type'; import { FlagFilled } from '@actiontech/icons'; -import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths'; +import { ROUTE_PATHS } from '@actiontech/dms-kit'; import { useTypedNavigate } from '@actiontech/shared'; const NotFoundProject: React.FC = ({ diff --git a/packages/base/src/page/Home/DefaultScene/components/StepItems/base.tsx b/packages/base/src/page/Home/DefaultScene/components/StepItems/base.tsx index 2f45293d0..b270aecb0 100644 --- a/packages/base/src/page/Home/DefaultScene/components/StepItems/base.tsx +++ b/packages/base/src/page/Home/DefaultScene/components/StepItems/base.tsx @@ -1,9 +1,9 @@ -import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths'; +import { ROUTE_PATHS } from '@actiontech/dms-kit'; import { t } from '../../../../../locale'; import { DataSourceManagerSegmentedKey } from '../../../../DataSourceManagement/index.type'; import { DevopsStepsProps, UserDevopsStepsFactory } from '../../index.type'; import { MemberFilled, DatabaseFilled } from '@actiontech/icons'; -import { CommonIconStyleWrapper } from '@actiontech/shared/lib/styleWrapper/element'; +import { CommonIconStyleWrapper } from '@actiontech/dms-kit'; export const getDatabaseManagerSteps: ( arg: DevopsStepsProps diff --git a/packages/base/src/page/Home/DefaultScene/components/StepItems/index.data.tsx b/packages/base/src/page/Home/DefaultScene/components/StepItems/index.data.tsx index e670bf9a8..33e45868f 100644 --- a/packages/base/src/page/Home/DefaultScene/components/StepItems/index.data.tsx +++ b/packages/base/src/page/Home/DefaultScene/components/StepItems/index.data.tsx @@ -1,4 +1,4 @@ -import { StringDictionary } from '@actiontech/shared/lib/types/common.type'; +import { StringDictionary } from '@actiontech/dms-kit/es/types/common.type'; import { t } from '../../../../../locale/index'; import { DevopsStepsProps, UserDevopsStepsFactory } from '../../index.type'; @@ -16,7 +16,7 @@ import { getSQLEOperateStepItem } from './sqle'; import { LockFilled, SnippetsFilled, UtilOutlined } from '@actiontech/icons'; -import { CommonIconStyleWrapper } from '@actiontech/shared/lib/styleWrapper/element'; +import { CommonIconStyleWrapper } from '@actiontech/dms-kit'; export const UserTypeDictionary: StringDictionary = { admin: t('dmsHome.defaultScene.header.adminUser'), diff --git a/packages/base/src/page/Home/DefaultScene/components/StepItems/sqle.tsx b/packages/base/src/page/Home/DefaultScene/components/StepItems/sqle.tsx index d887ca3fe..0ced15774 100644 --- a/packages/base/src/page/Home/DefaultScene/components/StepItems/sqle.tsx +++ b/packages/base/src/page/Home/DefaultScene/components/StepItems/sqle.tsx @@ -4,7 +4,7 @@ import { UserDevopsStepButtonItem, UserDevopsStepChildren } from '../../index.type'; -import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths'; +import { ROUTE_PATHS } from '@actiontech/dms-kit'; export const getAuditManageStep: ( arg: DevopsStepsProps diff --git a/packages/base/src/page/Home/DefaultScene/index.ce.tsx b/packages/base/src/page/Home/DefaultScene/index.ce.tsx index 0bb3f22e5..b87a96d82 100644 --- a/packages/base/src/page/Home/DefaultScene/index.ce.tsx +++ b/packages/base/src/page/Home/DefaultScene/index.ce.tsx @@ -1,4 +1,4 @@ -import { DEFAULT_PROJECT_ID } from '@actiontech/shared/lib/data/common'; +import { DEFAULT_PROJECT_ID } from '@actiontech/dms-kit'; import { PERMISSIONS, usePermission } from '@actiontech/shared/lib/features'; import { DefaultSceneStepContainerWrapper } from '../style'; import StepItems from './components/StepItems'; diff --git a/packages/base/src/page/Home/index.tsx b/packages/base/src/page/Home/index.tsx index 27b2437eb..e8f733045 100644 --- a/packages/base/src/page/Home/index.tsx +++ b/packages/base/src/page/Home/index.tsx @@ -1,11 +1,9 @@ import DefaultScene from './DefaultScene'; -import { PageHeader } from '@actiontech/shared'; +import { PageHeader } from '@actiontech/dms-kit'; import { useTranslation } from 'react-i18next'; import CEDefaultScene from './DefaultScene/index.ce'; - const Home: React.FC = () => { const { t } = useTranslation(); - return ( <> @@ -17,5 +15,4 @@ const Home: React.FC = () => { ); }; - export default Home; diff --git a/packages/base/src/page/Login/components/LoginForm.tsx b/packages/base/src/page/Login/components/LoginForm.tsx index aaa462dbd..1bcb1140b 100644 --- a/packages/base/src/page/Login/components/LoginForm.tsx +++ b/packages/base/src/page/Login/components/LoginForm.tsx @@ -2,24 +2,15 @@ import { Form, Typography, Space, Checkbox } from 'antd'; import React, { useEffect, useMemo } from 'react'; import { useTranslation } from 'react-i18next'; import { useRequest } from 'ahooks'; -import { - BasicInput, - BasicButton, - BasicToolTip, - useTypedQuery -} from '@actiontech/shared'; +import { BasicInput, BasicButton, BasicToolTip } from '@actiontech/dms-kit'; +import { useTypedQuery } from '@actiontech/shared'; import { LockFilled, UserFilled } from '@actiontech/icons'; import useThemeStyleData from '../../../hooks/useThemeStyleData'; import { LoginFormProps } from '../types'; import { DmsApi } from '@actiontech/shared/lib/api'; -import { SystemRole } from '@actiontech/shared/lib/enum'; -import { - DMS_REDIRECT_KEY_PARAMS_NAME, - ROUTE_PATHS -} from '@actiontech/shared/lib/data/routePaths'; - +import { SystemRole } from '@actiontech/dms-kit'; +import { DMS_REDIRECT_KEY_PARAMS_NAME, ROUTE_PATHS } from '@actiontech/dms-kit'; const OAUTH2_LOGIN_URL = '/v1/dms/oauth2/link'; - const LoginForm: React.FC = ({ onSubmit, loading, @@ -27,12 +18,9 @@ const LoginForm: React.FC = ({ hidden }) => { const { t } = useTranslation(); - const username = Form.useWatch('username', form); const extractQueries = useTypedQuery(); - const { baseTheme } = useThemeStyleData(); - const { run: getOauth2Tips, data: oauthConfig } = useRequest( () => { return DmsApi.OAuth2Service.GetOauth2Tips().then( @@ -43,7 +31,6 @@ const LoginForm: React.FC = ({ manual: true } ); - const { run: getLoginBasicConfig, data: loginBasicConfig } = useRequest( () => { return DmsApi.ConfigurationService.GetLoginTips().then( @@ -54,7 +41,6 @@ const LoginForm: React.FC = ({ manual: true } ); - const oauth2LoginUrl = useMemo(() => { const target = extractQueries(ROUTE_PATHS.BASE.LOGIN.index)?.target; if (target) { @@ -64,13 +50,11 @@ const LoginForm: React.FC = ({ } return OAUTH2_LOGIN_URL; }, [extractQueries]); - const renderLoginButton = () => { const disabledLoginButton = username === SystemRole.admin ? false : !!loginBasicConfig?.disable_user_pwd_login; - const loginNode = ( = ({ ); } - return loginNode; }; @@ -181,5 +164,4 @@ const LoginForm: React.FC = ({ ); }; - export default LoginForm; diff --git a/packages/base/src/page/Login/components/VerificationCodeForm.tsx b/packages/base/src/page/Login/components/VerificationCodeForm.tsx index 6cc722042..fdb527121 100644 --- a/packages/base/src/page/Login/components/VerificationCodeForm.tsx +++ b/packages/base/src/page/Login/components/VerificationCodeForm.tsx @@ -1,14 +1,10 @@ -import { - VerificationCodeInput, - BasicButton, - maskPhoneNumber -} from '@actiontech/shared'; +import { VerificationCodeInput, BasicButton } from '@actiontech/dms-kit'; +import { maskPhoneNumber } from '@actiontech/dms-kit'; import { Form, Typography, Space } from 'antd'; import { useTranslation } from 'react-i18next'; import { VerificationCodeReturnButtonStyleWrapper } from '../style'; import { DmsApi } from '@actiontech/shared/lib/api'; import { VerificationCodeFormProps } from '../types'; - const VerificationCodeForm: React.FC = ({ loading, onVerify, @@ -18,11 +14,11 @@ const VerificationCodeForm: React.FC = ({ phone }) => { const { t } = useTranslation(); - const onSendCode = () => { - return DmsApi.SMSService.SendSmsCode({ username }); + return DmsApi.SMSService.SendSmsCode({ + username + }); }; - return (
@@ -64,5 +60,4 @@ const VerificationCodeForm: React.FC = ({ ); }; - export default VerificationCodeForm; diff --git a/packages/base/src/page/Login/index.test.tsx b/packages/base/src/page/Login/index.test.tsx index 27b0d83f4..ce8c096d8 100644 --- a/packages/base/src/page/Login/index.test.tsx +++ b/packages/base/src/page/Login/index.test.tsx @@ -11,15 +11,15 @@ import { } from '@actiontech/shared/lib/testUtil/mockApi/base/global/data'; import { getBySelector } from '@actiontech/shared/lib/testUtil/customQuery'; import { createSpySuccessResponse } from '@actiontech/shared/lib/testUtil/mockApi'; -import { LocalStorageWrapper } from '@actiontech/shared'; -import { eventEmitter } from '@actiontech/shared/lib/utils/EventEmitter'; +import { LocalStorageWrapper } from '@actiontech/dms-kit'; +import { eventEmitter } from '@actiontech/dms-kit/es/utils/EventEmitter'; import Login from '.'; import { CompanyNoticeDisplayStatusEnum, StorageKey, SystemRole -} from '@actiontech/shared/lib/enum'; -import { OPEN_CLOUD_BEAVER_URL_PARAM_NAME } from '@actiontech/shared/lib/data/routePaths'; +} from '@actiontech/dms-kit'; +import { OPEN_CLOUD_BEAVER_URL_PARAM_NAME } from '@actiontech/dms-kit'; import { ignoreConsoleErrors, UtilsConsoleErrorStringsEnum diff --git a/packages/base/src/page/Login/index.tsx b/packages/base/src/page/Login/index.tsx index 7de641c62..cc11cb26a 100644 --- a/packages/base/src/page/Login/index.tsx +++ b/packages/base/src/page/Login/index.tsx @@ -3,57 +3,45 @@ import { useTranslation } from 'react-i18next'; import { useDispatch } from 'react-redux'; import { updateToken } from '../../store/user'; import LoginLayout from './components/LoginLayout'; -import { useTypedNavigate, useTypedQuery, EmptyBox } from '@actiontech/shared'; +import { EmptyBox } from '@actiontech/dms-kit'; +import { useTypedNavigate, useTypedQuery } from '@actiontech/shared'; import { LoginFormFieldValue, VerificationCodeFormFieldValue } from './types'; import { useBoolean } from 'ahooks'; import useBrowserVersionTips from '../../hooks/useBrowserVersionTips'; -import { LocalStorageWrapper } from '@actiontech/shared'; +import { LocalStorageWrapper } from '@actiontech/dms-kit'; import { StorageKey, CompanyNoticeDisplayStatusEnum, ResponseCode -} from '@actiontech/shared/lib/enum'; +} from '@actiontech/dms-kit'; import { OPEN_CLOUD_BEAVER_URL_PARAM_NAME, ROUTE_PATHS -} from '@actiontech/shared/lib/data/routePaths'; +} from '@actiontech/dms-kit'; import LoginForm from './components/LoginForm'; import VerificationCodeForm from './components/VerificationCodeForm'; import { DmsApi } from '@actiontech/shared/lib/api'; import { useState } from 'react'; - const Login = () => { const { t } = useTranslation(); - useBrowserVersionTips(); - const [loginForm] = Form.useForm(); - const username = Form.useWatch('username', loginForm); - const [verificationCodeForm] = Form.useForm(); - const dispatch = useDispatch(); - const [messageApi, contextHolder] = message.useMessage(); - const [loading, { setTrue, setFalse }] = useBoolean(); - const [phone, setPhone] = useState(); - const [ verifyCodeLoading, { setTrue: verifyCodePending, setFalse: verifyCodeDone } ] = useBoolean(); - const [ allowVerificationCode, { setTrue: showVerificationForm, setFalse: hideVerificationForm } ] = useBoolean(); - const navigate = useTypedNavigate(); const extractQueries = useTypedQuery(); - const addSession = () => { const loginFormValues = loginForm.getFieldsValue(); const verificationCodeFormValues = verificationCodeForm.getFieldsValue(); @@ -106,7 +94,6 @@ const Login = () => { verifyCodeDone(); }); }; - const login = (formData: LoginFormFieldValue) => { // #if [ee] if (!formData.userAgreement) { diff --git a/packages/base/src/page/Member/Drawer/Member/AddMember.tsx b/packages/base/src/page/Member/Drawer/Member/AddMember.tsx index ff8a2e173..105585532 100644 --- a/packages/base/src/page/Member/Drawer/Member/AddMember.tsx +++ b/packages/base/src/page/Member/Drawer/Member/AddMember.tsx @@ -2,7 +2,7 @@ import { useBoolean } from 'ahooks'; import { message, Form, Space } from 'antd'; import { useTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { useCurrentProject } from '@actiontech/shared/lib/features'; import EmitterKey from '../../../../data/EmitterKey'; import { ModalName } from '../../../../data/ModalName'; @@ -13,27 +13,19 @@ import { IMemberFormFields } from '../index.type'; import MemberForm from './MemberForm'; import Member from '@actiontech/shared/lib/api/base/service/Member'; import { IAddMemberParams } from '@actiontech/shared/lib/api/base/service/Member/index.d'; -import { BasicButton } from '@actiontech/shared'; +import { BasicButton } from '@actiontech/dms-kit'; import { MemberDrawerStyledWrapper } from '../../style'; - const AddMember: React.FC = () => { const { t } = useTranslation(); - const dispatch = useDispatch(); - const [form] = Form.useForm(); - const [messageApi, contextHolder] = message.useMessage(); - const [submitLoading, { setFalse: submitFinish, setTrue: startSubmit }] = useBoolean(); - const visible = useSelector( (state: IReduxState) => state.member.modalStatus[ModalName.DMS_Add_Member] ); - const { projectID } = useCurrentProject(); - const submit = async () => { const values = await form.validateFields(); const params: IAddMemberParams = { @@ -58,7 +50,6 @@ const AddMember: React.FC = () => { submitFinish(); }); }; - const onClose = () => { form.resetFields(); dispatch( @@ -68,7 +59,6 @@ const AddMember: React.FC = () => { }) ); }; - return ( { ); }; - export default AddMember; diff --git a/packages/base/src/page/Member/Drawer/Member/MemberForm.tsx b/packages/base/src/page/Member/Drawer/Member/MemberForm.tsx index 66b20ba97..10be80a99 100644 --- a/packages/base/src/page/Member/Drawer/Member/MemberForm.tsx +++ b/packages/base/src/page/Member/Drawer/Member/MemberForm.tsx @@ -1,30 +1,27 @@ import { useEffect } from 'react'; import { Form } from 'antd'; -import { BasicSelect, BasicToolTip, TypedLink } from '@actiontech/shared'; +import { BasicSelect, BasicToolTip } from '@actiontech/dms-kit'; +import { TypedLink } from '@actiontech/shared'; import { Trans, useTranslation } from 'react-i18next'; import { IMemberFormProps } from '../index.type'; import useUsername from '../../../../hooks/useUsername'; import PermissionFields from '../../components/PermissionFields'; -import { filterOptionByLabel } from '@actiontech/shared/lib/components/BasicSelect/utils'; -import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths'; - +import { filterOptionByLabel } from '@actiontech/dms-kit'; +import { ROUTE_PATHS } from '@actiontech/dms-kit'; const MemberForm: React.FC = ({ form, isUpdate, projectID }) => { const { t } = useTranslation(); - const { loading: getUsernameListLoading, updateUsernameList, generateUsernameSelectOption } = useUsername(); - useEffect(() => { updateUsernameList(); }, [updateUsernameList]); - return (
= ({ ); }; - export default MemberForm; diff --git a/packages/base/src/page/Member/Drawer/Member/UpdateMember.tsx b/packages/base/src/page/Member/Drawer/Member/UpdateMember.tsx index 8a01a0906..20fcb7259 100644 --- a/packages/base/src/page/Member/Drawer/Member/UpdateMember.tsx +++ b/packages/base/src/page/Member/Drawer/Member/UpdateMember.tsx @@ -3,7 +3,7 @@ import { message, Form, Space } from 'antd'; import { useEffect } from 'react'; import { useTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import EmitterKey from '../../../../data/EmitterKey'; import { ModalName } from '../../../../data/ModalName'; import { IReduxState } from '../../../../store'; @@ -13,11 +13,10 @@ import { IMemberFormFields } from '../index.type'; import MemberForm from './MemberForm'; import formatMemberRole from '../../Common/formatMemberRole'; import { useCurrentProject } from '@actiontech/shared/lib/features'; -import { BasicButton } from '@actiontech/shared'; +import { BasicButton } from '@actiontech/dms-kit'; import { MemberDrawerStyledWrapper } from '../../style'; import { IUpdateMemberParams } from '@actiontech/shared/lib/api/base/service/Member/index.d'; import Member from '@actiontech/shared/lib/api/base/service/Member'; - const UpdateMember: React.FC = () => { const { t } = useTranslation(); const dispatch = useDispatch(); @@ -30,7 +29,6 @@ const UpdateMember: React.FC = () => { visible: state.member.modalStatus[ModalName.DMS_Update_Member], selectMember: state.member.selectMember })); - const submit = async () => { const values = await form.validateFields(); const params: IUpdateMemberParams = { @@ -59,7 +57,6 @@ const UpdateMember: React.FC = () => { submitFinish(); }); }; - const onClose = () => { form.resetFields(); dispatch( @@ -69,7 +66,6 @@ const UpdateMember: React.FC = () => { }) ); }; - useEffect(() => { if (visible) { form.setFieldsValue({ @@ -83,7 +79,6 @@ const UpdateMember: React.FC = () => { }); } }, [form, selectMember, visible]); - return ( { ); }; - export default UpdateMember; diff --git a/packages/base/src/page/Member/Drawer/MemberGroup/AddMemberGroup.tsx b/packages/base/src/page/Member/Drawer/MemberGroup/AddMemberGroup.tsx index 8b150e73e..5ff5ef7ae 100644 --- a/packages/base/src/page/Member/Drawer/MemberGroup/AddMemberGroup.tsx +++ b/packages/base/src/page/Member/Drawer/MemberGroup/AddMemberGroup.tsx @@ -9,13 +9,12 @@ import { updateMemberModalStatus } from '../../../../store/member'; import EventEmitter from '../../../../utils/EventEmitter'; import { IMemberGroupFormFields } from '../index.type'; import MemberGroupForm from './MemberGroupForm'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { useCurrentProject } from '@actiontech/shared/lib/features'; import { IAddMemberGroupParams } from '@actiontech/shared/lib/api/base/service/MemberGroup/index.d'; import MemberGroup from '@actiontech/shared/lib/api/base/service/MemberGroup'; -import { BasicButton } from '@actiontech/shared'; +import { BasicButton } from '@actiontech/dms-kit'; import { MemberDrawerStyledWrapper } from '../../style'; - const AddMemberGroup: React.FC = () => { const { t } = useTranslation(); const dispatch = useDispatch(); @@ -28,7 +27,6 @@ const AddMemberGroup: React.FC = () => { (state: IReduxState) => state.member.modalStatus[ModalName.DMS_Add_Member_Group] ); - const submit = async () => { const values = await form.validateFields(); const params: IAddMemberGroupParams = { @@ -58,7 +56,6 @@ const AddMemberGroup: React.FC = () => { submitFinish(); }); }; - const onClose = () => { form.resetFields(); dispatch( @@ -68,7 +65,6 @@ const AddMemberGroup: React.FC = () => { }) ); }; - return ( { ); }; - export default AddMemberGroup; diff --git a/packages/base/src/page/Member/Drawer/MemberGroup/MemberGroupForm.tsx b/packages/base/src/page/Member/Drawer/MemberGroup/MemberGroupForm.tsx index 6cbfbe4aa..bbbf442cd 100644 --- a/packages/base/src/page/Member/Drawer/MemberGroup/MemberGroupForm.tsx +++ b/packages/base/src/page/Member/Drawer/MemberGroup/MemberGroupForm.tsx @@ -1,30 +1,26 @@ import { Form } from 'antd'; -import { BasicSelect, BasicInput } from '@actiontech/shared'; +import { BasicSelect, BasicInput } from '@actiontech/dms-kit'; import { useTranslation } from 'react-i18next'; import { IMemberGroupFormProps } from '../index.type'; import PermissionFields from '../../components/PermissionFields'; import { useEffect } from 'react'; import useUsername from '../../../../hooks/useUsername'; -import { nameRule } from '@actiontech/shared/lib/utils/FormRule'; -import { filterOptionByLabel } from '@actiontech/shared/lib/components/BasicSelect/utils'; - +import { nameRule } from '@actiontech/dms-kit'; +import { filterOptionByLabel } from '@actiontech/dms-kit'; const MemberGroupForm: React.FC = ({ form, isUpdate, projectID }) => { const { t } = useTranslation(); - const { loading: getUsernameListLoading, updateUsernameList, generateUsernameSelectOption } = useUsername(); - useEffect(() => { updateUsernameList(); }, [updateUsernameList]); - return (
= ({ ); }; - export default MemberGroupForm; diff --git a/packages/base/src/page/Member/Drawer/MemberGroup/UpdateMemberGroup.tsx b/packages/base/src/page/Member/Drawer/MemberGroup/UpdateMemberGroup.tsx index a987af6ce..f619135ab 100644 --- a/packages/base/src/page/Member/Drawer/MemberGroup/UpdateMemberGroup.tsx +++ b/packages/base/src/page/Member/Drawer/MemberGroup/UpdateMemberGroup.tsx @@ -10,33 +10,25 @@ import { updateMemberModalStatus } from '../../../../store/member'; import EventEmitter from '../../../../utils/EventEmitter'; import { IMemberGroupFormFields } from '../index.type'; import MemberGroupForm from './MemberGroupForm'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { useCurrentProject } from '@actiontech/shared/lib/features'; import formatMemberRole from '../../Common/formatMemberRole'; import { IUpdateMemberGroupParams } from '@actiontech/shared/lib/api/base/service/MemberGroup/index.d'; import MemberGroup from '@actiontech/shared/lib/api/base/service/MemberGroup'; -import { BasicButton } from '@actiontech/shared'; +import { BasicButton } from '@actiontech/dms-kit'; import { MemberDrawerStyledWrapper } from '../../style'; - const UpdateMemberGroup: React.FC = () => { const { t } = useTranslation(); - const dispatch = useDispatch(); - const [messageApi, contextHolder] = message.useMessage(); - const { projectID } = useCurrentProject(); - const [form] = Form.useForm(); - const [submitLoading, { setFalse: submitFinish, setTrue: startSubmit }] = useBoolean(); - const { visible, selectMemberGroup } = useSelector((state: IReduxState) => ({ visible: state.member.modalStatus[ModalName.DMS_Update_Member_Group], selectMemberGroup: state.member.selectMemberGroup })); - const submit = async () => { const values = await form.validateFields(); const params: IUpdateMemberGroupParams = { @@ -66,7 +58,6 @@ const UpdateMemberGroup: React.FC = () => { submitFinish(); }); }; - const onClose = () => { form.resetFields(); dispatch( @@ -76,7 +67,6 @@ const UpdateMemberGroup: React.FC = () => { }) ); }; - useEffect(() => { if (visible) { form.setFieldsValue({ @@ -93,7 +83,6 @@ const UpdateMemberGroup: React.FC = () => { }); } }, [form, visible, selectMemberGroup]); - return ( { ); }; - export default UpdateMemberGroup; diff --git a/packages/base/src/page/Member/List/MemberGroupList.tsx b/packages/base/src/page/Member/List/MemberGroupList.tsx index 105d30c20..20ca9e042 100644 --- a/packages/base/src/page/Member/List/MemberGroupList.tsx +++ b/packages/base/src/page/Member/List/MemberGroupList.tsx @@ -16,7 +16,7 @@ import { IListMemberGroup } from '@actiontech/shared/lib/api/base/service/common import { IListMemberGroupsParams } from '@actiontech/shared/lib/api/base/service/MemberGroup/index.d'; import MemberGroup from '@actiontech/shared/lib/api/base/service/MemberGroup'; import { MemberGroupListColumns } from './column'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { updateMemberModalStatus, updateSelectMemberGroup diff --git a/packages/base/src/page/Member/List/MemberList.tsx b/packages/base/src/page/Member/List/MemberList.tsx index 5c36d0d8f..e691eaa8a 100644 --- a/packages/base/src/page/Member/List/MemberList.tsx +++ b/packages/base/src/page/Member/List/MemberList.tsx @@ -13,7 +13,7 @@ import { useCurrentProject, usePermission } from '@actiontech/shared/lib/features'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { IListMember } from '@actiontech/shared/lib/api/base/service/common'; import { IListMembersParams } from '@actiontech/shared/lib/api/base/service/Member/index.d'; import Member from '@actiontech/shared/lib/api/base/service/Member'; diff --git a/packages/base/src/page/Member/List/__tests__/MemberGroupList.test.tsx b/packages/base/src/page/Member/List/__tests__/MemberGroupList.test.tsx index 9a4236a9d..698de9bca 100644 --- a/packages/base/src/page/Member/List/__tests__/MemberGroupList.test.tsx +++ b/packages/base/src/page/Member/List/__tests__/MemberGroupList.test.tsx @@ -19,7 +19,7 @@ import { createSpySuccessResponse } from '@actiontech/shared/lib/testUtil/mockApi'; import { MemberListTypeEnum } from '../../index.enum'; -import { SystemRole } from '@actiontech/shared/lib/enum'; +import { SystemRole } from '@actiontech/dms-kit'; jest.mock('react-redux', () => { return { diff --git a/packages/base/src/page/Member/List/__tests__/MemberList.test.tsx b/packages/base/src/page/Member/List/__tests__/MemberList.test.tsx index cf855073a..77ef79266 100644 --- a/packages/base/src/page/Member/List/__tests__/MemberList.test.tsx +++ b/packages/base/src/page/Member/List/__tests__/MemberList.test.tsx @@ -19,7 +19,7 @@ import { createSpySuccessResponse } from '@actiontech/shared/lib/testUtil/mockApi'; import { MemberListTypeEnum } from '../../index.enum'; -import { SystemRole } from '@actiontech/shared/lib/enum'; +import { SystemRole } from '@actiontech/dms-kit'; jest.mock('react-redux', () => { return { diff --git a/packages/base/src/page/Member/List/actions.tsx b/packages/base/src/page/Member/List/actions.tsx index f17308022..d967a1b90 100644 --- a/packages/base/src/page/Member/List/actions.tsx +++ b/packages/base/src/page/Member/List/actions.tsx @@ -7,7 +7,7 @@ import { IListMember, IListMemberGroup } from '@actiontech/shared/lib/api/base/service/common'; -import { SystemRole } from '@actiontech/shared/lib/enum'; +import { SystemRole } from '@actiontech/dms-kit'; export const MemberListActions = ( onEditMember: (record: IListMember | undefined) => void, diff --git a/packages/base/src/page/Member/List/column.tsx b/packages/base/src/page/Member/List/column.tsx index 56c4a3be8..7010f26f0 100644 --- a/packages/base/src/page/Member/List/column.tsx +++ b/packages/base/src/page/Member/List/column.tsx @@ -6,11 +6,10 @@ import { IListMemberGroup } from '@actiontech/shared/lib/api/base/service/common'; import ProjectManagePermissions from '../components/ProjectManagePermissions'; -import { BasicToolTip } from '@actiontech/shared'; +import { BasicToolTip } from '@actiontech/dms-kit'; import ProjectTagList from '../../../components/ProjectTagList'; import SystemRoleTagList from '../../../components/SystemRoleTagList'; import ProjectOpPermissions from '../components/ProjectOpPermissions'; - export const MemberListColumns: ActiontechTableColumn = [ { dataIndex: 'user', @@ -64,7 +63,6 @@ export const MemberListColumns: ActiontechTableColumn = [ ) { return '-'; } - if (record.is_project_admin || !!record.current_project_admin?.is_admin) { return ( = [ } title={null} placement="top" - overlayStyle={{ maxWidth: 450 }} + overlayStyle={{ + maxWidth: 450 + }} > ALL ); } - return ; } }, @@ -104,7 +103,6 @@ export const MemberListColumns: ActiontechTableColumn = [ } } ]; - export const MemberGroupListColumns: ActiontechTableColumn = [ { dataIndex: 'name', @@ -151,11 +149,9 @@ export const MemberGroupListColumns: ActiontechTableColumn = [ ) { return '-'; } - if (record.is_project_admin) { return 'ALL'; } - return ; } }, diff --git a/packages/base/src/page/Member/Modal/Member/ManageMemberGroup.tsx b/packages/base/src/page/Member/Modal/Member/ManageMemberGroup.tsx index 0273a378e..72943fb40 100644 --- a/packages/base/src/page/Member/Modal/Member/ManageMemberGroup.tsx +++ b/packages/base/src/page/Member/Modal/Member/ManageMemberGroup.tsx @@ -4,8 +4,8 @@ import { useDispatch, useSelector } from 'react-redux'; import { useTranslation } from 'react-i18next'; import { useRequest } from 'ahooks'; import { useCurrentProject } from '@actiontech/shared/lib/features'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; -import { BasicButton, BasicModal, BasicTag } from '@actiontech/shared'; +import { ResponseCode } from '@actiontech/dms-kit'; +import { BasicButton, BasicModal, BasicTag } from '@actiontech/dms-kit'; import { IReduxState } from '../../../../store'; import { updateMemberModalStatus, @@ -18,19 +18,16 @@ import EventEmitter from '../../../../utils/EventEmitter'; import EmitterKey from '../../../../data/EmitterKey'; import formatMemberRole from '../../Common/formatMemberRole'; import { ManageMemberGroupContainer, MemberGroupCard } from './style'; -import { BasicEmpty } from '@actiontech/shared'; - +import { BasicEmpty } from '@actiontech/dms-kit'; const ManageMemberGroup: React.FC = () => { const { t } = useTranslation(); const dispatch = useDispatch(); const [messageApi, contextHolder] = message.useMessage(); const { projectID } = useCurrentProject(); - const { visible, selectMember } = useSelector((state: IReduxState) => ({ visible: state.member.modalStatus[ModalName.DMS_Manage_Member_Group], selectMember: state.member.selectMember })); - const { data: memberGroups, loading, @@ -52,13 +49,11 @@ const ManageMemberGroup: React.FC = () => { manual: true } ); - useEffect(() => { if (visible && selectMember?.user?.uid) { fetchMemberGroups(); } }, [visible, selectMember?.user?.uid, fetchMemberGroups]); - const onClose = useCallback(() => { dispatch( updateMemberModalStatus({ @@ -67,7 +62,6 @@ const ManageMemberGroup: React.FC = () => { }) ); }, [dispatch]); - const handleEditPermissions = useCallback( (memberGroup: IListMemberGroup) => { dispatch( @@ -85,15 +79,12 @@ const ManageMemberGroup: React.FC = () => { }, [dispatch, onClose] ); - const handleExitGroup = useCallback( (memberGroup: IListMemberGroup) => { if (!selectMember?.user?.uid || !memberGroup.uid) return; - const updatedUserUids = (memberGroup.users || []) .filter((user) => user.uid !== selectMember.user?.uid) .map((user) => user.uid!); - MemberGroup.UpdateMemberGroup({ member_group_uid: memberGroup.uid, project_uid: projectID, @@ -118,19 +109,16 @@ const ManageMemberGroup: React.FC = () => { }, [selectMember?.user?.uid, projectID, messageApi, fetchMemberGroups, t] ); - const renderPermissions = useCallback((roleWithOpRanges: any[] = []) => { if (!roleWithOpRanges || roleWithOpRanges.length === 0) { return '-'; } - return roleWithOpRanges.map((item, index) => ( {item.role_uid?.name} )); }, []); - const renderMemberGroup = useCallback( (group: IListMemberGroup) => ( @@ -166,7 +154,6 @@ const ManageMemberGroup: React.FC = () => { ), [handleEditPermissions, handleExitGroup, renderPermissions, t] ); - return ( { ); }; - export default ManageMemberGroup; diff --git a/packages/base/src/page/Member/__tests__/index.test.tsx b/packages/base/src/page/Member/__tests__/index.test.tsx index 8928b9af9..197e6a249 100644 --- a/packages/base/src/page/Member/__tests__/index.test.tsx +++ b/packages/base/src/page/Member/__tests__/index.test.tsx @@ -14,7 +14,7 @@ import { } from '@actiontech/shared/lib/testUtil/mockHook/data'; import userCenter from '@actiontech/shared/lib/testUtil/mockApi/base/userCenter'; import dbServices from '@actiontech/shared/lib/testUtil/mockApi/base/dbServices'; -import { SystemRole } from '@actiontech/shared/lib/enum'; +import { SystemRole } from '@actiontech/dms-kit'; describe('base/Member', () => { beforeEach(() => { diff --git a/packages/base/src/page/Member/actions.tsx b/packages/base/src/page/Member/actions.tsx index cedd3a88e..a7aabf1e1 100644 --- a/packages/base/src/page/Member/actions.tsx +++ b/packages/base/src/page/Member/actions.tsx @@ -7,7 +7,6 @@ import { ActionButton } from '@actiontech/shared'; import { PlusOutlined } from '@actiontech/icons'; import { ModalName } from '../../data/ModalName'; import { MemberListTypeEnum } from './index.enum'; - export const MemberListPageHeaderActions = ( onClick: (modalName: ModalName) => void, activePage: MemberListTypeEnum diff --git a/packages/base/src/page/Member/components/PermissionFields.tsx b/packages/base/src/page/Member/components/PermissionFields.tsx index 661216473..be7749e14 100644 --- a/packages/base/src/page/Member/components/PermissionFields.tsx +++ b/packages/base/src/page/Member/components/PermissionFields.tsx @@ -2,20 +2,20 @@ import { Col, Form, Spin, Alert } from 'antd'; import { BasicSelect, BasicInput, - FormItemSubTitle, BasicSwitch, EmptyBox -} from '@actiontech/shared'; +} from '@actiontech/dms-kit'; +import { FormItemSubTitle } from '@actiontech/dms-kit'; import { useEffect } from 'react'; import { useTranslation } from 'react-i18next'; import useRole from '../../../hooks/useRole'; import useDbService from '../../../hooks/useDbService'; import { MemberRoleWithOpRangeOpRangeTypeEnum } from '@actiontech/shared/lib/api/base/service/common.enum'; -import { filterOptionByLabel } from '@actiontech/shared/lib/components/BasicSelect/utils'; +import { filterOptionByLabel } from '@actiontech/dms-kit'; import { DrawerFormIconWrapper, FormListAddButtonWrapper -} from '@actiontech/shared/lib/styleWrapper/element'; +} from '@actiontech/dms-kit'; import { MemberRoleSelectorRowStyleWrapper, MemberPermissionCheckboxGroupStyleWrapper @@ -24,42 +24,35 @@ import { PlusCircleFilled, MinusCircleFilled } from '@actiontech/icons'; import { ListOpPermissionsFilterByTargetEnum } from '@actiontech/shared/lib/api/base/service/OpPermission/index.enum'; import useOpPermission from '../../../hooks/useOpPermission'; import { usePermission, PERMISSIONS } from '@actiontech/shared/lib/features'; - type PermissionFieldsProps = { projectID: string; }; - const PermissionFields: React.FC = ({ projectID }) => { const { t } = useTranslation(); - const isProjectAdmin = Form.useWatch('isProjectAdmin'); - const { checkActionPermission } = usePermission(); - const { loading: getRoleListLoading, updateRoleList, generateRoleSelectOption } = useRole(); - const { loading: getDbServiceListLoading, updateDbServiceList, generateDbServiceIDSelectOptions } = useDbService(); - const { loading: getOpPermissionListLoading, updateOpPermissionList, opPermissionList } = useOpPermission(); - useEffect(() => { updateRoleList(); - updateDbServiceList({ project_uid: projectID }); + updateDbServiceList({ + project_uid: projectID + }); updateOpPermissionList(ListOpPermissionsFilterByTargetEnum.project); }, [projectID, updateDbServiceList, updateRoleList, updateOpPermissionList]); - return ( <> @@ -123,7 +116,11 @@ const PermissionFields: React.FC = ({ projectID }) => { label={ index === 0 ? t('dmsMember.roleSelector.opRange') : '' } - rules={[{ required: true }]} + rules={[ + { + required: true + } + ]} > = ({ projectID }) => { {...field} key={field.key} name={[field.name, 'role_uid']} - rules={[{ required: true }]} + rules={[ + { + required: true + } + ]} > popupMatchSelectWidth={false} @@ -207,5 +208,4 @@ const PermissionFields: React.FC = ({ projectID }) => { ); }; - export default PermissionFields; diff --git a/packages/base/src/page/Member/components/ProjectManagePermissions.tsx b/packages/base/src/page/Member/components/ProjectManagePermissions.tsx index 980753b94..fe278abdc 100644 --- a/packages/base/src/page/Member/components/ProjectManagePermissions.tsx +++ b/packages/base/src/page/Member/components/ProjectManagePermissions.tsx @@ -4,15 +4,13 @@ import { ICurrentProjectAdmin, IProjectManagePermission } from '@actiontech/shared/lib/api/base/service/common'; -import { BasicTag, EmptyBox } from '@actiontech/shared'; - +import { BasicTag, EmptyBox } from '@actiontech/dms-kit'; interface ProjectManagePermissionsProps { isProjectAdmin: boolean; currentProjectAdmin?: ICurrentProjectAdmin; managePermissions?: IProjectManagePermission[]; isGroup?: boolean; } - const ProjectManagePermissions: React.FC = ({ isProjectAdmin, currentProjectAdmin, @@ -20,7 +18,6 @@ const ProjectManagePermissions: React.FC = ({ isGroup = false }) => { const { t } = useTranslation(); - if (isProjectAdmin || !!currentProjectAdmin?.is_admin) { return ( @@ -35,14 +32,15 @@ const ProjectManagePermissions: React.FC = ({ } title={null} placement="top" - overlayStyle={{ maxWidth: 450 }} + overlayStyle={{ + maxWidth: 450 + }} > ALL ); } - if (managePermissions.length > 0) { return ( @@ -51,7 +49,9 @@ const ProjectManagePermissions: React.FC = ({ if={!isGroup} defaultNode={ @@ -70,11 +70,15 @@ const ProjectManagePermissions: React.FC = ({ } title={null} placement="top" - overlayStyle={{ maxWidth: 450 }} + overlayStyle={{ + maxWidth: 450 + }} key={permission.uid} > @@ -86,8 +90,6 @@ const ProjectManagePermissions: React.FC = ({ ); } - return '-'; }; - export default ProjectManagePermissions; diff --git a/packages/base/src/page/Member/components/ProjectOpPermissions.tsx b/packages/base/src/page/Member/components/ProjectOpPermissions.tsx index d15420609..14e67309c 100644 --- a/packages/base/src/page/Member/components/ProjectOpPermissions.tsx +++ b/packages/base/src/page/Member/components/ProjectOpPermissions.tsx @@ -3,14 +3,12 @@ import { IProjectRole } from '@actiontech/shared/lib/api/base/service/common'; import { Space, Typography, Popover } from 'antd'; -import { BasicTag } from '@actiontech/shared'; +import { BasicTag } from '@actiontech/dms-kit'; import { t } from '../../../locale'; import React from 'react'; - type ProjectOpPermissionsProps = { permissions: IProjectOpPermission[]; }; - const ProjectOpPermissions: React.FC = ({ permissions }) => { @@ -21,7 +19,6 @@ const ProjectOpPermissions: React.FC = ({ ) => { const roleName = role?.name || ''; const isFromMemberGroup = !!role.member_group; - const popoverContent = (
@@ -37,28 +34,32 @@ const ProjectOpPermissions: React.FC = ({
); - return ( - + {roleName} ); }; - return ( {permissions.map((permission, index) => { const dataSource = permission?.data_source ?? ''; const roles = permission?.roles ?? []; - return ( {dataSource}: @@ -71,5 +72,4 @@ const ProjectOpPermissions: React.FC = ({ ); }; - export default ProjectOpPermissions; diff --git a/packages/base/src/page/Member/index.tsx b/packages/base/src/page/Member/index.tsx index ff8fe80b6..682f4ea19 100644 --- a/packages/base/src/page/Member/index.tsx +++ b/packages/base/src/page/Member/index.tsx @@ -3,11 +3,8 @@ import { useTranslation } from 'react-i18next'; import { useDispatch } from 'react-redux'; import MemberModals from './Modals'; import { Space } from 'antd'; -import { - PageHeader, - SegmentedTabs, - SegmentedTabsProps -} from '@actiontech/shared'; +import { PageHeader, SegmentedTabs } from '@actiontech/dms-kit'; +import { SegmentedTabsProps } from '@actiontech/dms-kit'; import { ProjectMemberStyleWrapper } from './style'; import { MemberListTypeEnum } from './index.enum'; import MemberList from './List/MemberList'; @@ -18,18 +15,13 @@ import { TableRefreshButton } from '@actiontech/shared/lib/components/Actiontech import EventEmitter from '../../utils/EventEmitter'; import EmitterKey from '../../data/EmitterKey'; import { MemberListPageHeaderActions } from './actions'; - const Member: React.FC = () => { const { t } = useTranslation(); - const dispatch = useDispatch(); - const [activePage, setActivePage] = useState(MemberListTypeEnum.member_list); - const onRefreshTable = () => { EventEmitter.emit(EmitterKey.DMS_Refresh_Member_List); }; - const pageItems: SegmentedTabsProps['items'] = [ { value: MemberListTypeEnum.member_list, @@ -42,7 +34,6 @@ const Member: React.FC = () => { children: } ]; - const renderExtraButton = () => { const handleClick = (modalName: ModalName) => { dispatch( @@ -52,12 +43,10 @@ const Member: React.FC = () => { }) ); }; - const pageHeaderActions = MemberListPageHeaderActions( handleClick, activePage ); - return ( <> {pageHeaderActions['add-member']} @@ -65,7 +54,6 @@ const Member: React.FC = () => { ); }; - return ( { ); }; - export default Member; diff --git a/packages/base/src/page/Member/style.ts b/packages/base/src/page/Member/style.ts index 988c05f79..fdbfd419c 100644 --- a/packages/base/src/page/Member/style.ts +++ b/packages/base/src/page/Member/style.ts @@ -1,14 +1,12 @@ import { styled } from '@mui/material/styles'; import { Row, Checkbox } from 'antd'; -import { BasicDrawer } from '@actiontech/shared'; - +import { BasicDrawer } from '@actiontech/dms-kit'; export const ProjectMemberStyleWrapper = styled('section')` .ant-tabs-nav { margin-bottom: 0 !important; padding-left: 24px; } `; - export const FormListDeleteIconWrap = styled('section')` height: 36px; width: 36px; @@ -25,7 +23,6 @@ export const FormListDeleteIconWrap = styled('section')` theme.sharedTheme.components.basicSelect.hover.border}; } `; - export const MemberDrawerStyledWrapper = styled(BasicDrawer)` .member-form-add-button { background-color: ${({ theme }) => @@ -37,13 +34,11 @@ export const MemberDrawerStyledWrapper = styled(BasicDrawer)` font-size: 14px !important; } `; - export const MemberRoleSelectorRowStyleWrapper = styled(Row)` .ant-col { height: 100%; } `; - export const MemberPermissionCheckboxGroupStyleWrapper = styled(Checkbox.Group)` &.ant-checkbox-group { width: 100%; diff --git a/packages/base/src/page/Nav/SideMenu/AvailabilityZoneSelector/__tests__/index.test.tsx b/packages/base/src/page/Nav/SideMenu/AvailabilityZoneSelector/__tests__/index.test.tsx index 95bee9fd8..b4665bcc2 100644 --- a/packages/base/src/page/Nav/SideMenu/AvailabilityZoneSelector/__tests__/index.test.tsx +++ b/packages/base/src/page/Nav/SideMenu/AvailabilityZoneSelector/__tests__/index.test.tsx @@ -8,7 +8,7 @@ import { getBySelector } from '@actiontech/shared/lib/testUtil/customQuery'; import EventEmitter from '../../../../../utils/EventEmitter'; import EmitterKey from '../../../../../data/EmitterKey'; import { useNavigate } from 'react-router-dom'; -import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths'; +import { ROUTE_PATHS } from '@actiontech/dms-kit'; jest.mock('react-router-dom', () => ({ ...jest.requireActual('react-router-dom'), diff --git a/packages/base/src/page/Nav/SideMenu/AvailabilityZoneSelector/index.tsx b/packages/base/src/page/Nav/SideMenu/AvailabilityZoneSelector/index.tsx index e03e40248..d47aa5eba 100644 --- a/packages/base/src/page/Nav/SideMenu/AvailabilityZoneSelector/index.tsx +++ b/packages/base/src/page/Nav/SideMenu/AvailabilityZoneSelector/index.tsx @@ -5,31 +5,26 @@ import { AvailabilityZoneSelectorStyleWrapper, AvailabilityZoneMenuStyleWrapper } from './style'; -import { BasicEmpty, useTypedNavigate } from '@actiontech/shared'; +import { BasicEmpty } from '@actiontech/dms-kit'; +import { useTypedNavigate } from '@actiontech/shared'; import { useTranslation } from 'react-i18next'; import useRecentlySelectedZone from '../../../../hooks/useRecentlySelectedZone'; import { IUidWithName } from '@actiontech/shared/lib/api/base/service/common'; import EventEmitter from '../../../../utils/EventEmitter'; import EmitterKey from '../../../../data/EmitterKey'; -import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths'; - +import { ROUTE_PATHS } from '@actiontech/dms-kit'; type AvailabilityZoneSelectorProps = { zoneTips?: IUidWithName[]; }; - const AvailabilityZoneSelector: React.FC = ({ zoneTips }) => { const { t } = useTranslation(); - const navigate = useTypedNavigate(); - const { availabilityZone, updateRecentlySelectedZone } = useRecentlySelectedZone(); - const [searchText, setSearchText] = useState(''); const [dropdownOpen, setDropdownOpen] = useState(false); - const filteredZones = useCallback(() => { return ( zoneTips?.filter((zone) => @@ -37,7 +32,6 @@ const AvailabilityZoneSelector: React.FC = ({ ) ?? [] ); }, [searchText, zoneTips]); - const handleSelectZone = (zone: IUidWithName) => { updateRecentlySelectedZone(zone); setDropdownOpen(false); @@ -45,7 +39,6 @@ const AvailabilityZoneSelector: React.FC = ({ EventEmitter.emit(EmitterKey.DMS_Reload_Initial_Data); navigate(ROUTE_PATHS.BASE.HOME); }; - const customDropdownRender = () => { const zones = filteredZones(); return ( @@ -85,7 +78,6 @@ const AvailabilityZoneSelector: React.FC = ({ ); } - return (
= ({ ); }; - return ( = ({ ); }; - export default AvailabilityZoneSelector; diff --git a/packages/base/src/page/Nav/SideMenu/MenuList/index.test.tsx b/packages/base/src/page/Nav/SideMenu/MenuList/index.test.tsx index b3228db7f..11cdef782 100644 --- a/packages/base/src/page/Nav/SideMenu/MenuList/index.test.tsx +++ b/packages/base/src/page/Nav/SideMenu/MenuList/index.test.tsx @@ -2,7 +2,7 @@ import { cleanup, act } from '@testing-library/react'; import MenuList from '.'; import { baseSuperRender } from '../../../../testUtils/superRender'; import { useNavigate } from 'react-router-dom'; -import { SystemRole } from '@actiontech/shared/lib/enum'; +import { SystemRole } from '@actiontech/dms-kit'; import { ignoreConsoleErrors, UtilsConsoleErrorStringsEnum diff --git a/packages/base/src/page/Nav/SideMenu/MenuList/menus/base.tsx b/packages/base/src/page/Nav/SideMenu/MenuList/menus/base.tsx index 5c2a76c8c..20125e54f 100644 --- a/packages/base/src/page/Nav/SideMenu/MenuList/menus/base.tsx +++ b/packages/base/src/page/Nav/SideMenu/MenuList/menus/base.tsx @@ -8,7 +8,7 @@ import { } from '@actiontech/icons'; import { GenerateMenuItemI18nConfig } from './index.type'; import { SIDE_MENU_DATA_PLACEHOLDER_KEY } from './common'; -import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths'; +import { ROUTE_PATHS } from '@actiontech/dms-kit'; import { parse2ReactRouterPath } from '@actiontech/shared'; import { PERMISSIONS } from '@actiontech/shared/lib/features'; diff --git a/packages/base/src/page/Nav/SideMenu/MenuList/menus/sqle.tsx b/packages/base/src/page/Nav/SideMenu/MenuList/menus/sqle.tsx index ed36cb60f..ce2c70e2a 100644 --- a/packages/base/src/page/Nav/SideMenu/MenuList/menus/sqle.tsx +++ b/packages/base/src/page/Nav/SideMenu/MenuList/menus/sqle.tsx @@ -23,7 +23,7 @@ import { } from '@actiontech/icons'; import { PERMISSIONS } from '@actiontech/shared/lib/features'; import { parse2ReactRouterPath } from '@actiontech/shared'; -import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths'; +import { ROUTE_PATHS } from '@actiontech/dms-kit'; const projectOverviewMenuItem: GenerateMenuItemI18nConfig = (projectID) => ({ label: 'dmsMenu.projectOverview', diff --git a/packages/base/src/page/Nav/SideMenu/ProjectSelector/MockSelectItemOptions.tsx b/packages/base/src/page/Nav/SideMenu/ProjectSelector/MockSelectItemOptions.tsx index c7ff0bc88..d448b3fb7 100644 --- a/packages/base/src/page/Nav/SideMenu/ProjectSelector/MockSelectItemOptions.tsx +++ b/packages/base/src/page/Nav/SideMenu/ProjectSelector/MockSelectItemOptions.tsx @@ -7,7 +7,7 @@ import { import { IBindProject } from './index.type'; import { FlagFilled, LockOutlined } from '@actiontech/icons'; import { useTypedNavigate } from '@actiontech/shared'; -import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths'; +import { ROUTE_PATHS } from '@actiontech/dms-kit'; const MockSelectItemOptions: React.FC<{ list: IBindProject[]; diff --git a/packages/base/src/page/Nav/SideMenu/ProjectSelector/index.tsx b/packages/base/src/page/Nav/SideMenu/ProjectSelector/index.tsx index 94fef5da4..73089fd93 100644 --- a/packages/base/src/page/Nav/SideMenu/ProjectSelector/index.tsx +++ b/packages/base/src/page/Nav/SideMenu/ProjectSelector/index.tsx @@ -1,24 +1,19 @@ import { useRef, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { InputRef, SelectProps } from 'antd'; -import { - BasicButton, - BasicEmpty, - EmptyBox, - TypedLink -} from '@actiontech/shared'; -import CustomSelectSearchInput from '@actiontech/shared/lib/components/CustomSelect/CustomSelectSearchInput'; +import { BasicButton, BasicEmpty, EmptyBox } from '@actiontech/dms-kit'; +import { TypedLink } from '@actiontech/shared'; import { ProjectSelectorPopupMenuStyleWrapper, ProjectSelectorStyleWrapper } from './style'; -import { CustomSelectPopupMenuStyleWrapper } from '@actiontech/shared/lib/components/CustomSelect/style'; import MockSelectItemOptions from './MockSelectItemOptions'; import { ProjectSelectorProps } from './index.type'; -import { fuzzySearchAndSortByWeight } from '@actiontech/shared/lib/utils/Tool'; +import { fuzzySearchAndSortByWeight } from '@actiontech/dms-kit'; import { ArrowRightOutlined } from '@actiontech/icons'; -import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths'; - +import { ROUTE_PATHS } from '@actiontech/dms-kit'; +import CustomSelectSearchInput from '@actiontech/dms-kit/es/components/CustomSelect/CustomSelectSearchInput'; +import { CustomSelectPopupMenuStyleWrapper } from '@actiontech/dms-kit/es/components/CustomSelect/style'; const ProjectSelector: React.FC = ({ value, prefix, @@ -34,14 +29,12 @@ const ProjectSelector: React.FC = ({ const [lastActiveMenuItem, setLastActiveMenuItem] = useState< Element | undefined >(); - const renderDropdown: SelectProps['dropdownRender'] = (menu) => { const filterBindProjects = fuzzySearchAndSortByWeight( searchValue, bindProjects ?? [], 'project_name' ); - return ( <> @@ -110,7 +103,6 @@ const ProjectSelector: React.FC = ({ ); }; - return ( = ({ dropdownRender={renderDropdown} onDropdownVisibleChange={(visible) => { setOpen(visible); - if (!visible) { setSearchValue(''); } @@ -154,5 +145,4 @@ const ProjectSelector: React.FC = ({ /> ); }; - export default ProjectSelector; diff --git a/packages/base/src/page/Nav/SideMenu/ProjectSelector/index.type.ts b/packages/base/src/page/Nav/SideMenu/ProjectSelector/index.type.ts index 6f7138dce..18a9ad8f7 100644 --- a/packages/base/src/page/Nav/SideMenu/ProjectSelector/index.type.ts +++ b/packages/base/src/page/Nav/SideMenu/ProjectSelector/index.type.ts @@ -1,5 +1,5 @@ +import { CustomSelectProps } from '@actiontech/dms-kit'; import { IUserBindProject } from '@actiontech/shared/lib/api/base/service/common'; -import { CustomSelectProps } from '@actiontech/shared/lib/components/CustomSelect'; export type RecentlyProjectsRecordType = Record< string, diff --git a/packages/base/src/page/Nav/SideMenu/ProjectSelector/style.ts b/packages/base/src/page/Nav/SideMenu/ProjectSelector/style.ts index f6272770e..ba4ff5735 100644 --- a/packages/base/src/page/Nav/SideMenu/ProjectSelector/style.ts +++ b/packages/base/src/page/Nav/SideMenu/ProjectSelector/style.ts @@ -1,5 +1,5 @@ -import { CustomSelect } from '@actiontech/shared/lib/components/CustomSelect'; -import { CustomSelectPopupMenuStyleWrapper } from '@actiontech/shared/lib/components/CustomSelect/style'; +import { CustomSelect } from '@actiontech/dms-kit'; +import { CustomSelectPopupMenuStyleWrapper } from '@actiontech/dms-kit/es/components/CustomSelect/style'; import { styled } from '@mui/material/styles'; diff --git a/packages/base/src/page/Nav/SideMenu/ProjectTitle/index.tsx b/packages/base/src/page/Nav/SideMenu/ProjectTitle/index.tsx index 44a9df5bf..f9a84162d 100644 --- a/packages/base/src/page/Nav/SideMenu/ProjectTitle/index.tsx +++ b/packages/base/src/page/Nav/SideMenu/ProjectTitle/index.tsx @@ -1,4 +1,4 @@ -import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths'; +import { ROUTE_PATHS } from '@actiontech/dms-kit'; import useSystemConfig from '../../../../hooks/useSystemConfig'; import { useTypedNavigate } from '@actiontech/shared'; diff --git a/packages/base/src/page/Nav/SideMenu/QuickActions/__tests__/index.test.tsx b/packages/base/src/page/Nav/SideMenu/QuickActions/__tests__/index.test.tsx index 8a6342316..1979c1a27 100644 --- a/packages/base/src/page/Nav/SideMenu/QuickActions/__tests__/index.test.tsx +++ b/packages/base/src/page/Nav/SideMenu/QuickActions/__tests__/index.test.tsx @@ -9,9 +9,9 @@ import { } from '@actiontech/shared/lib/testUtil/customQuery'; import system from '@actiontech/shared/lib/testUtil/mockApi/base/system'; import { mockUsePermission } from '@actiontech/shared/lib/testUtil/mockHook/mockUsePermission'; -import { SystemRole } from '@actiontech/shared/lib/enum'; +import { SystemRole } from '@actiontech/dms-kit'; import { mockCurrentUserReturn } from '@actiontech/shared/lib/testUtil/mockHook/data'; -import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths'; +import { ROUTE_PATHS } from '@actiontech/dms-kit'; jest.mock('react-router-dom', () => { return { diff --git a/packages/base/src/page/Nav/SideMenu/QuickActions/index.tsx b/packages/base/src/page/Nav/SideMenu/QuickActions/index.tsx index 3bb1b9abd..45a539897 100644 --- a/packages/base/src/page/Nav/SideMenu/QuickActions/index.tsx +++ b/packages/base/src/page/Nav/SideMenu/QuickActions/index.tsx @@ -6,14 +6,15 @@ import { BookMarkOutlined } from '@actiontech/icons'; import { QuickActionsStyleWrapper } from '../style'; -import { BasicToolTip, EmptyBox, useTypedNavigate } from '@actiontech/shared'; +import { BasicToolTip, EmptyBox } from '@actiontech/dms-kit'; +import { useTypedNavigate } from '@actiontech/shared'; import { useTranslation } from 'react-i18next'; import React, { useMemo } from 'react'; import { useLocation } from 'react-router-dom'; import classNames from 'classnames'; import system from '@actiontech/shared/lib/api/sqle/service/system'; import { useRequest } from 'ahooks'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { Space } from 'antd'; import { ModuleRedDotModuleNameEnum } from '@actiontech/shared/lib/api/sqle/service/common.enum'; import { @@ -21,9 +22,8 @@ import { PermissionsConstantType, usePermission } from '@actiontech/shared/lib/features'; -import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths'; +import { ROUTE_PATHS } from '@actiontech/dms-kit'; import { IModuleRedDots } from '@actiontech/shared/lib/api/sqle/service/common'; - type QuickActionItemType = { key: string; title: React.ReactNode; @@ -32,23 +32,17 @@ type QuickActionItemType = { permission?: PermissionsConstantType; dot?: boolean; }; - type QuickActionsProps = { systemModuleRedDots?: IModuleRedDots; setSystemModuleRedDotsLoading: (loading: boolean) => void; }; - const QuickActions: React.FC = ({ setSystemModuleRedDotsLoading }) => { const { t } = useTranslation(); - const navigate = useTypedNavigate(); - const location = useLocation(); - const { checkPagePermission } = usePermission(); - const { data } = useRequest( () => system.GetSystemModuleRedDots().then((res) => { @@ -66,7 +60,6 @@ const QuickActions: React.FC = ({ } } ); - const actionItems: Array = useMemo(() => { const actionList: Array = [ { @@ -107,11 +100,9 @@ const QuickActions: React.FC = ({ if (!item.permission) { return true; } - return checkPagePermission(item.permission); }); }, [t, data, checkPagePermission]); - return ( @@ -138,5 +129,4 @@ const QuickActions: React.FC = ({ ); }; - export default QuickActions; diff --git a/packages/base/src/page/Nav/SideMenu/UserMenu/Modal/CompanyNoticeModal/actions.tsx b/packages/base/src/page/Nav/SideMenu/UserMenu/Modal/CompanyNoticeModal/actions.tsx index 9c3d55fb0..a527d1fc4 100644 --- a/packages/base/src/page/Nav/SideMenu/UserMenu/Modal/CompanyNoticeModal/actions.tsx +++ b/packages/base/src/page/Nav/SideMenu/UserMenu/Modal/CompanyNoticeModal/actions.tsx @@ -4,7 +4,6 @@ import { PermissionControl } from '@actiontech/shared/lib/features'; import { t } from '../../../../../../locale'; - export const CompanyNoticeModalActions = ( onClick: () => void ): Record<'edit-notice', React.ReactNode> => { diff --git a/packages/base/src/page/Nav/SideMenu/UserMenu/Modal/CompanyNoticeModal/index.test.tsx b/packages/base/src/page/Nav/SideMenu/UserMenu/Modal/CompanyNoticeModal/index.test.tsx index 483ea1683..745be2bc8 100644 --- a/packages/base/src/page/Nav/SideMenu/UserMenu/Modal/CompanyNoticeModal/index.test.tsx +++ b/packages/base/src/page/Nav/SideMenu/UserMenu/Modal/CompanyNoticeModal/index.test.tsx @@ -7,7 +7,7 @@ import { getBySelector } from '@actiontech/shared/lib/testUtil/customQuery'; import dms from '@actiontech/shared/lib/testUtil/mockApi/base/global'; import { mockUseCurrentUser } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentUser'; import { ModalName } from '../../../../../../data/ModalName'; -import { SystemRole } from '@actiontech/shared/lib/enum'; +import { SystemRole } from '@actiontech/dms-kit'; jest.mock('react-redux', () => { return { diff --git a/packages/base/src/page/Nav/SideMenu/UserMenu/Modal/CompanyNoticeModal/index.tsx b/packages/base/src/page/Nav/SideMenu/UserMenu/Modal/CompanyNoticeModal/index.tsx index 45d94cb0c..f85cbec76 100644 --- a/packages/base/src/page/Nav/SideMenu/UserMenu/Modal/CompanyNoticeModal/index.tsx +++ b/packages/base/src/page/Nav/SideMenu/UserMenu/Modal/CompanyNoticeModal/index.tsx @@ -2,46 +2,33 @@ import { useCallback, useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; import { Empty, Popconfirm, Space, Spin, message } from 'antd'; -import { - LocalStorageWrapper, - EmptyBox, - BasicButton, - BasicInput -} from '@actiontech/shared'; +import { EmptyBox, BasicButton, BasicInput } from '@actiontech/dms-kit'; +import { LocalStorageWrapper } from '@actiontech/dms-kit'; import { useBoolean, useRequest } from 'ahooks'; import CompanyNotice from '@actiontech/shared/lib/api/base/service/CompanyNotice'; import { ResponseCode, CompanyNoticeDisplayStatusEnum, StorageKey -} from '@actiontech/shared/lib/enum'; +} from '@actiontech/dms-kit'; import { initNavModalStatus } from '../../../../../../store/nav'; import { ModalName } from '../../../../../../data/ModalName'; import { IReduxState } from '../../../../../../store'; import { updateNavModalStatus } from '../../../../../../store/nav'; import { CompanyNoticeModalStyleWrapper } from '../../../style'; import { CompanyNoticeModalActions } from './actions'; - const CompanyNoticeModal: React.FC = () => { const { t } = useTranslation(); - const dispatch = useDispatch(); - const visible = useSelector( (state) => state.nav.modalStatus[ModalName.Company_Notice] ); - const [value, setValue] = useState(''); - const [canEdit, { setTrue: showEditor, setFalse: hideEditor }] = useBoolean(); - const [hasDirtyData, setHasDirtyData] = useState(false); - const [submitLoading, { setTrue: startSubmit, setFalse: finishedSubmit }] = useBoolean(false); - const [messageApi, contextHolder] = message.useMessage(); - const { data, loading } = useRequest( () => CompanyNotice.GetCompanyNotice().then((res) => { @@ -50,15 +37,15 @@ const CompanyNoticeModal: React.FC = () => { return res.data.data?.notice_str ?? ''; } }), - { ready: !!visible } + { + ready: !!visible + } ); - const resetAllState = useCallback(() => { setValue(''); hideEditor(); setHasDirtyData(false); }, [hideEditor]); - const handleCloseModal = useCallback(() => { dispatch( updateNavModalStatus({ @@ -66,20 +53,20 @@ const CompanyNoticeModal: React.FC = () => { status: false }) ); - resetAllState(); }, [dispatch, resetAllState]); - const handleCancelEdit = useCallback(() => { setHasDirtyData(false); hideEditor(); setValue(data ?? ''); }, [data, hideEditor]); - const submit = () => { startSubmit(); - - CompanyNotice.UpdateCompanyNotice({ company_notice: { notice_str: value } }) + CompanyNotice.UpdateCompanyNotice({ + company_notice: { + notice_str: value + } + }) .then((res) => { if (res.data.code === ResponseCode.SUCCESS) { messageApi.success(t('dmsSystem.notification.successMessage')); @@ -88,7 +75,6 @@ const CompanyNoticeModal: React.FC = () => { }) .finally(finishedSubmit); }; - useEffect(() => { if (visible) { LocalStorageWrapper.set( @@ -97,7 +83,6 @@ const CompanyNoticeModal: React.FC = () => { ); } }, [visible]); - useEffect(() => { dispatch( initNavModalStatus({ @@ -107,9 +92,7 @@ const CompanyNoticeModal: React.FC = () => { }) ); }, [dispatch]); - const actions = CompanyNoticeModalActions(showEditor); - return ( { okText={t('common.ok')} cancelText={t('common.cancel')} onConfirm={handleCancelEdit} - okButtonProps={{ disabled: submitLoading }} + okButtonProps={{ + disabled: submitLoading + }} > {t('common.cancel')} @@ -195,5 +180,4 @@ const CompanyNoticeModal: React.FC = () => { ); }; - export default CompanyNoticeModal; diff --git a/packages/base/src/page/Nav/SideMenu/UserMenu/Modal/VersionModal/BasicVersionModal.tsx b/packages/base/src/page/Nav/SideMenu/UserMenu/Modal/VersionModal/BasicVersionModal.tsx index 244357a94..01b23f736 100644 --- a/packages/base/src/page/Nav/SideMenu/UserMenu/Modal/VersionModal/BasicVersionModal.tsx +++ b/packages/base/src/page/Nav/SideMenu/UserMenu/Modal/VersionModal/BasicVersionModal.tsx @@ -1,14 +1,13 @@ -import { BasicButton, BasicModal, EmptyBox } from '@actiontech/shared'; +import { BasicButton, BasicModal, EmptyBox } from '@actiontech/dms-kit'; import { useTranslation } from 'react-i18next'; import { Space, Typography } from 'antd'; -import { DMS_DEFAULT_WEB_TITLE } from '@actiontech/shared/lib/data/common'; +import { DMS_DEFAULT_WEB_TITLE } from '@actiontech/dms-kit'; import { UI_VERSION } from '../../../../../../scripts/version'; import { VersionModalFeatureContentStyleWrapper } from '../../../style'; import useVersionInfo from '../../hooks/useVersionInfo'; import React, { useEffect } from 'react'; import { VersionEnum } from '../../index.enum'; import { BasicVersionModalProps } from '../../index.type'; - const BasicVersionModal: React.FC = ({ open, width, @@ -18,15 +17,12 @@ const BasicVersionModal: React.FC = ({ setVersionModalClose }) => { const { t } = useTranslation(); - const { sqleVersion, dmsVersion, updateVersionInfo } = useVersionInfo(); - useEffect(() => { if (open) { updateVersionInfo(); } }, [open, updateVersionInfo]); - return ( = ({ ); }; - export default BasicVersionModal; diff --git a/packages/base/src/page/Nav/SideMenu/UserMenu/components/ContextMenu/index.tsx b/packages/base/src/page/Nav/SideMenu/UserMenu/components/ContextMenu/index.tsx index a6e21fe38..dfd809e7e 100644 --- a/packages/base/src/page/Nav/SideMenu/UserMenu/components/ContextMenu/index.tsx +++ b/packages/base/src/page/Nav/SideMenu/UserMenu/components/ContextMenu/index.tsx @@ -1,6 +1,6 @@ import { Popover } from 'antd'; import { ContextMenuProps } from './index.type'; -import { PopoverInnerStyleWrapper } from '@actiontech/shared/lib/styleWrapper/nav'; +import { PopoverInnerStyleWrapper } from '@actiontech/dms-kit'; import { useControllableValue } from 'ahooks'; import classNames from 'classnames'; diff --git a/packages/base/src/page/Nav/SideMenu/UserMenu/components/UserNavigate.tsx b/packages/base/src/page/Nav/SideMenu/UserMenu/components/UserNavigate.tsx index 06c142bde..d3863c94c 100644 --- a/packages/base/src/page/Nav/SideMenu/UserMenu/components/UserNavigate.tsx +++ b/packages/base/src/page/Nav/SideMenu/UserMenu/components/UserNavigate.tsx @@ -7,27 +7,28 @@ import { ArrowRightOutlined } from '@actiontech/icons'; import { useTranslation } from 'react-i18next'; -import { CustomAvatarStyleWrapper } from '@actiontech/shared/lib/components/CustomAvatar/style'; +import { CustomAvatarStyleWrapper } from '@actiontech/dms-kit/es/components/CustomAvatar/style'; import { useState } from 'react'; import { useUserInfo } from '@actiontech/shared/lib/features'; import Session from '@actiontech/shared/lib/api/base/service/Session'; import CompanyNotice from '@actiontech/shared/lib/api/base/service/CompanyNotice'; -import { ResponseCode, SupportLanguage } from '@actiontech/shared/lib/enum'; +import { LocalStorageWrapper, ResponseCode } from '@actiontech/dms-kit'; +import { SupportLanguage } from '@actiontech/dms-kit'; import { useDispatch } from 'react-redux'; import { updateNavModalStatus } from '../../../../../store/nav'; import { ModalName } from '../../../../../data/ModalName'; -import { LocalStorageWrapper, useTypedNavigate } from '@actiontech/shared'; +import { useTypedNavigate } from '@actiontech/shared'; import { CompanyNoticeDisplayStatusEnum, StorageKey -} from '@actiontech/shared/lib/enum'; +} from '@actiontech/dms-kit'; import { useBoolean, useRequest } from 'ahooks'; import { ContextMenuItem } from './ContextMenu/index.type'; import ContextMenu from './ContextMenu'; import User from '@actiontech/shared/lib/api/base/service/User'; import { updateLanguage as updateReduxLanguage } from '../../../../../../../base/src/store/user'; import { Radio } from 'antd'; -import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths'; +import { ROUTE_PATHS } from '@actiontech/dms-kit'; import useRecentlySelectedZone from '../../../../../hooks/useRecentlySelectedZone'; import { updateUserOperationPermissions } from '../../../../../store/permission'; diff --git a/packages/base/src/page/Nav/SideMenu/UserMenu/components/__tests__/UserNavigate.ce.test.tsx b/packages/base/src/page/Nav/SideMenu/UserMenu/components/__tests__/UserNavigate.ce.test.tsx index 9480ac86d..b0a8cccce 100644 --- a/packages/base/src/page/Nav/SideMenu/UserMenu/components/__tests__/UserNavigate.ce.test.tsx +++ b/packages/base/src/page/Nav/SideMenu/UserMenu/components/__tests__/UserNavigate.ce.test.tsx @@ -9,11 +9,11 @@ import { act, cleanup, fireEvent, screen } from '@testing-library/react'; import { baseSuperRender } from '../../../../../../testUtils/superRender'; import { getBySelector } from '@actiontech/shared/lib/testUtil/customQuery'; import dms from '@actiontech/shared/lib/testUtil/mockApi/base/global'; -import { LocalStorageWrapper } from '@actiontech/shared'; +import { LocalStorageWrapper } from '@actiontech/dms-kit'; import { CompanyNoticeDisplayStatusEnum, SupportLanguage -} from '@actiontech/shared/lib/enum'; +} from '@actiontech/dms-kit'; import { mockUseUserInfo } from '@actiontech/shared/lib/testUtil/mockHook/mockUseUserInfo'; jest.mock('react-redux', () => { diff --git a/packages/base/src/page/Nav/SideMenu/UserMenu/components/__tests__/UserNavigate.test.tsx b/packages/base/src/page/Nav/SideMenu/UserMenu/components/__tests__/UserNavigate.test.tsx index 20deb3fb3..c824b3f66 100644 --- a/packages/base/src/page/Nav/SideMenu/UserMenu/components/__tests__/UserNavigate.test.tsx +++ b/packages/base/src/page/Nav/SideMenu/UserMenu/components/__tests__/UserNavigate.test.tsx @@ -5,12 +5,12 @@ import { act, cleanup, fireEvent, screen } from '@testing-library/react'; import { baseSuperRender } from '../../../../../../testUtils/superRender'; import { getBySelector } from '@actiontech/shared/lib/testUtil/customQuery'; import dms from '@actiontech/shared/lib/testUtil/mockApi/base/global'; -import { LocalStorageWrapper } from '@actiontech/shared'; +import { LocalStorageWrapper } from '@actiontech/dms-kit'; import { ModalName } from '../../../../../../data/ModalName'; import { CompanyNoticeDisplayStatusEnum, SupportLanguage -} from '@actiontech/shared/lib/enum'; +} from '@actiontech/dms-kit'; import { mockUseUserInfo } from '@actiontech/shared/lib/testUtil/mockHook/mockUseUserInfo'; import account from '@actiontech/shared/lib/testUtil/mockApi/base/account'; import { createSpySuccessResponse } from '@actiontech/shared/lib/testUtil/mockApi'; diff --git a/packages/base/src/page/Nav/SideMenu/UserMenu/index.ce.test.tsx b/packages/base/src/page/Nav/SideMenu/UserMenu/index.ce.test.tsx index 3f4674968..6a331a6be 100644 --- a/packages/base/src/page/Nav/SideMenu/UserMenu/index.ce.test.tsx +++ b/packages/base/src/page/Nav/SideMenu/UserMenu/index.ce.test.tsx @@ -5,7 +5,7 @@ import UserMenu from '.'; import { cleanup } from '@testing-library/react'; import { SupportTheme } from 'sqle/src/theme'; -import { SupportLanguage } from '@actiontech/shared/lib/enum'; +import { SupportLanguage } from '@actiontech/dms-kit'; import { mockUsePermission } from '@actiontech/shared/lib/testUtil/mockHook/mockUsePermission'; import { shallow } from 'enzyme'; import toJson from 'enzyme-to-json'; diff --git a/packages/base/src/page/Nav/SideMenu/UserMenu/index.test.tsx b/packages/base/src/page/Nav/SideMenu/UserMenu/index.test.tsx index f7a784288..6ad98ed24 100644 --- a/packages/base/src/page/Nav/SideMenu/UserMenu/index.test.tsx +++ b/packages/base/src/page/Nav/SideMenu/UserMenu/index.test.tsx @@ -1,7 +1,7 @@ import UserMenu from '.'; import { cleanup } from '@testing-library/react'; import { SupportTheme } from 'sqle/src/theme'; -import { SupportLanguage } from '@actiontech/shared/lib/enum'; +import { SupportLanguage } from '@actiontech/dms-kit'; import { mockUsePermission } from '@actiontech/shared/lib/testUtil/mockHook/mockUsePermission'; import { shallow } from 'enzyme'; import toJson from 'enzyme-to-json'; diff --git a/packages/base/src/page/Nav/SideMenu/UserMenu/index.type.ts b/packages/base/src/page/Nav/SideMenu/UserMenu/index.type.ts index 60d4dd285..4ba8e9131 100644 --- a/packages/base/src/page/Nav/SideMenu/UserMenu/index.type.ts +++ b/packages/base/src/page/Nav/SideMenu/UserMenu/index.type.ts @@ -1,4 +1,4 @@ -import { SupportLanguage, SupportTheme } from '@actiontech/shared/lib/enum'; +import { SupportLanguage, SupportTheme } from '@actiontech/dms-kit'; import { VersionEnum } from './index.enum'; export type UserMenuProps = { diff --git a/packages/base/src/page/Nav/SideMenu/__tests__/useRecentlyOpenedProjects.test.ts b/packages/base/src/page/Nav/SideMenu/__tests__/useRecentlyOpenedProjects.test.ts index 49b1ac74e..707868679 100644 --- a/packages/base/src/page/Nav/SideMenu/__tests__/useRecentlyOpenedProjects.test.ts +++ b/packages/base/src/page/Nav/SideMenu/__tests__/useRecentlyOpenedProjects.test.ts @@ -1,8 +1,8 @@ -import { LocalStorageWrapper } from '@actiontech/shared'; +import { LocalStorageWrapper } from '@actiontech/dms-kit'; import { act, renderHook } from '@testing-library/react'; import useRecentlyOpenedProjects from '../useRecentlyOpenedProjects'; import { mockUseCurrentUser } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentUser'; -import { StorageKey } from '@actiontech/shared/lib/enum'; +import { StorageKey } from '@actiontech/dms-kit'; import { mockCurrentUserReturn } from '@actiontech/shared/lib/testUtil/mockHook/data'; import eventEmitter from '../../../../utils/EventEmitter'; import EmitterKey from '../../../../data/EmitterKey'; diff --git a/packages/base/src/page/Nav/SideMenu/index.ce.tsx b/packages/base/src/page/Nav/SideMenu/index.ce.tsx index e04fd36c6..4268e6446 100644 --- a/packages/base/src/page/Nav/SideMenu/index.ce.tsx +++ b/packages/base/src/page/Nav/SideMenu/index.ce.tsx @@ -1,12 +1,9 @@ -import { - DEFAULT_PROJECT_ID, - DEFAULT_PROJECT_NAME -} from '@actiontech/shared/lib/data/common'; +import { DEFAULT_PROJECT_ID, DEFAULT_PROJECT_NAME } from '@actiontech/dms-kit'; import { Typography, Spin } from 'antd'; import ProjectTitle from './ProjectTitle'; import UserMenu from './UserMenu'; import { CEModeProjectWrapperStyleWrapper } from './style'; -import { SideMenuStyleWrapper } from '@actiontech/shared/lib/styleWrapper/nav'; +import { SideMenuStyleWrapper } from '@actiontech/dms-kit'; import { useCurrentUser } from '@actiontech/shared/lib/features'; import MenuList from './MenuList'; import { FlagFilled } from '@actiontech/icons'; diff --git a/packages/base/src/page/Nav/SideMenu/index.tsx b/packages/base/src/page/Nav/SideMenu/index.tsx index 3e4586973..1fbfbfb72 100644 --- a/packages/base/src/page/Nav/SideMenu/index.tsx +++ b/packages/base/src/page/Nav/SideMenu/index.tsx @@ -1,7 +1,7 @@ import { useCallback, useEffect, useMemo, useState } from 'react'; import { SelectProps, Spin } from 'antd'; import { useRequest } from 'ahooks'; -import { SideMenuStyleWrapper } from '@actiontech/shared/lib/styleWrapper/nav'; +import { SideMenuStyleWrapper } from '@actiontech/dms-kit'; import ProjectSelector from './ProjectSelector'; import useRecentlyOpenedProjects from './useRecentlyOpenedProjects'; import { useCurrentUser, usePermission } from '@actiontech/shared/lib/features'; @@ -18,45 +18,37 @@ import { updateBindProjects } from '../../../store/user'; import { updateAvailabilityZoneTips } from '../../../store/availabilityZone'; import { FlagFilled, LockOutlined } from '@actiontech/icons'; import QuickActions from './QuickActions'; -import { CustomSelectProps, useTypedNavigate } from '@actiontech/shared'; -import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths'; +import { useTypedNavigate } from '@actiontech/shared'; +import { CustomSelectProps, ROUTE_PATHS } from '@actiontech/dms-kit'; import AvailabilityZoneSelector from './AvailabilityZoneSelector'; import { ProjectTitleStyleWrapper } from './style'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; -import { EmptyBox } from '@actiontech/shared'; +import { ResponseCode } from '@actiontech/dms-kit'; +import { EmptyBox } from '@actiontech/dms-kit'; import useRecentlySelectedZone from '../../../hooks/useRecentlySelectedZone'; import useFetchPermissionData from '../../../hooks/useFetchPermissionData'; import { updateUserOperationPermissions } from '../../../store/permission'; - const SideMenu: React.FC = () => { const navigate = useTypedNavigate(); const dispatch = useDispatch(); - const { userOperationPermissions } = usePermission(); - const { fetchUserPermissions, isUserPermissionsLoading } = useFetchPermissionData(); - const { verifyRecentlySelectedZoneRecord } = useRecentlySelectedZone(); - const [systemModuleRedDotsLoading, setSystemModuleRedDotsLoading] = useState(false); - const { username, theme, updateTheme, bindProjects, language, userId } = useCurrentUser(); - const { recentlyProjects, currentProjectID, getRecentlyProjectId } = useRecentlyOpenedProjects(); - const { data: projectList, loading: getProjectListLoading, refresh: refreshProjectList } = useRequest( () => - DmsApi.ProjectService.ListProjectsV2({ page_size: 9999 }).then( - (res) => res?.data?.data ?? [] - ), + DmsApi.ProjectService.ListProjectsV2({ + page_size: 9999 + }).then((res) => res?.data?.data ?? []), { refreshDeps: [currentProjectID], onSuccess: (res) => { @@ -64,10 +56,11 @@ const SideMenu: React.FC = () => { const archived = res.find((project) => project.uid === item.project_id)?.archived ?? false; - - return { ...item, archived }; + return { + ...item, + archived + }; }); - dispatch( updateBindProjects({ bindProjects: newBindProjects @@ -76,7 +69,6 @@ const SideMenu: React.FC = () => { } } ); - const { data: zoneTips, loading: getZoneTipsLoading, @@ -93,23 +85,22 @@ const SideMenu: React.FC = () => { onSuccess: (res) => { verifyRecentlySelectedZoneRecord(res ?? []); dispatch( - updateAvailabilityZoneTips({ availabilityZoneTips: res ?? [] }) + updateAvailabilityZoneTips({ + availabilityZoneTips: res ?? [] + }) ); } } ); - const getProjectArchived = useCallback( (itemProjectId: string) => (projectList ?? []).find((project) => project.uid === itemProjectId) ?.archived ?? false, [projectList] ); - const projectSelectorOptions = useMemo(() => { return recentlyProjects.map((v) => { const isProjectArchived = getProjectArchived(v?.project_id ?? ''); - return { value: v.project_id, label: ( @@ -129,12 +120,10 @@ const SideMenu: React.FC = () => { }; }); }, [getProjectArchived, recentlyProjects]); - const bindProjectsWithArchiveStatus = useMemo( () => bindProjects.map((v) => { const isProjectArchived = getProjectArchived(v?.project_id ?? ''); - return { ...v, archived: isProjectArchived @@ -142,20 +131,19 @@ const SideMenu: React.FC = () => { }), [bindProjects, getProjectArchived] ); - const isCurrentProjectArchived = useMemo( () => getProjectArchived(currentProjectID ?? ''), [currentProjectID, getProjectArchived] ); - const projectSelectorChangeHandle: CustomSelectProps['onChange'] = ( projectID ) => { navigate(ROUTE_PATHS.SQLE.PROJECT_OVERVIEW.index, { - params: { projectID } + params: { + projectID + } }); }; - useEffect(() => { const id = getRecentlyProjectId(); if (!!id && !userOperationPermissions && !isUserPermissionsLoading) { @@ -173,22 +161,18 @@ const SideMenu: React.FC = () => { userOperationPermissions, isUserPermissionsLoading ]); - useEffect(() => { const { unsubscribe } = EventEmitter.subscribe( EmitterKey.Refresh_Availability_Zone_Selector, refreshZoneTips ); - return unsubscribe; }, [refreshZoneTips]); - useEffect(() => { const { unsubscribe } = EventEmitter.subscribe( EmitterKey.DMS_Sync_Project_Archived_Status, refreshProjectList ); - return unsubscribe; }, [refreshProjectList]); // 防止刷新时,项目列表未更新,导致项目列表不显示 @@ -239,5 +223,4 @@ const SideMenu: React.FC = () => { ); }; - export default SideMenu; diff --git a/packages/base/src/page/Nav/SideMenu/style.ts b/packages/base/src/page/Nav/SideMenu/style.ts index 7ffd5b506..4a70b1499 100644 --- a/packages/base/src/page/Nav/SideMenu/style.ts +++ b/packages/base/src/page/Nav/SideMenu/style.ts @@ -1,14 +1,12 @@ import { styled } from '@mui/material/styles'; import { Space } from 'antd'; -import { BasicModal } from '@actiontech/shared'; +import { BasicModal } from '@actiontech/dms-kit'; import { NotificationFilled } from '@ant-design/icons'; - export const VersionModalFeatureContentStyleWrapper = styled(Space)` & .ant-space-item { width: 100%; } `; - export const CEModeProjectWrapperStyleWrapper = styled('div')` display: flex; width: 100%; @@ -37,7 +35,6 @@ export const CEModeProjectWrapperStyleWrapper = styled('div')` line-height: 20px; } `; - export const CompanyNoticeModalStyleWrapper = styled(BasicModal)` &.company-notice-modal { .ant-modal-body { @@ -45,14 +42,12 @@ export const CompanyNoticeModalStyleWrapper = styled(BasicModal)` } } `; - export const CompanyNoticeIconStyleWrapper = styled(NotificationFilled)` color: ${({ theme }) => theme.sharedTheme.basic.colorFontGrayByWhite} !important; width: 16px; height: 16px; `; - export const QuickActionsStyleWrapper = styled('div')` width: 100%; margin-bottom: 8px; @@ -105,7 +100,6 @@ export const QuickActionsStyleWrapper = styled('div')` } } `; - export const ProjectTitleStyleWrapper = styled('div')` display: flex; align-items: center; diff --git a/packages/base/src/page/Nav/SideMenu/useRecentlyOpenedProjects.ts b/packages/base/src/page/Nav/SideMenu/useRecentlyOpenedProjects.ts index 7be10a43e..60364f081 100644 --- a/packages/base/src/page/Nav/SideMenu/useRecentlyOpenedProjects.ts +++ b/packages/base/src/page/Nav/SideMenu/useRecentlyOpenedProjects.ts @@ -1,5 +1,5 @@ -import { LocalStorageWrapper } from '@actiontech/shared'; -import { StorageKey } from '@actiontech/shared/lib/enum'; +import { LocalStorageWrapper } from '@actiontech/dms-kit'; +import { StorageKey } from '@actiontech/dms-kit'; import { useCurrentUser } from '@actiontech/shared/lib/features'; import { cloneDeep, remove } from 'lodash'; import { useCallback, useEffect, useMemo, useState } from 'react'; diff --git a/packages/base/src/page/Nav/index.tsx b/packages/base/src/page/Nav/index.tsx index c64ff6aff..688143928 100644 --- a/packages/base/src/page/Nav/index.tsx +++ b/packages/base/src/page/Nav/index.tsx @@ -1,5 +1,5 @@ import { ReactNode } from 'react'; -import { LayoutStyleWrapper } from '@actiontech/shared/lib/styleWrapper/nav'; +import { LayoutStyleWrapper } from '@actiontech/dms-kit'; import useBrowserVersionTips from '../../hooks/useBrowserVersionTips'; // #if [ee] diff --git a/packages/base/src/page/Project/BatchImportDataSource/ConnectableErrorModal/index.tsx b/packages/base/src/page/Project/BatchImportDataSource/ConnectableErrorModal/index.tsx index acb7b911c..f7e762bff 100644 --- a/packages/base/src/page/Project/BatchImportDataSource/ConnectableErrorModal/index.tsx +++ b/packages/base/src/page/Project/BatchImportDataSource/ConnectableErrorModal/index.tsx @@ -1,8 +1,10 @@ -import { BasicButton } from '@actiontech/shared/lib/components/BasicButton'; -import { BasicModal } from '@actiontech/shared/lib/components'; +import { + BasicButton, + BasicModal, + ReminderInformation +} from '@actiontech/dms-kit'; import { useTranslation } from 'react-i18next'; import { Space } from 'antd'; -import { ReminderInformation } from '@actiontech/shared/lib/components/ReminderInformation'; import { ConnectableInfoModalWrapper } from '../style'; interface IConnectableErrorModalProps { diff --git a/packages/base/src/page/Project/BatchImportDataSource/UploadForm/FileUpload.tsx b/packages/base/src/page/Project/BatchImportDataSource/UploadForm/FileUpload.tsx index 8a6396a83..36c29fdda 100644 --- a/packages/base/src/page/Project/BatchImportDataSource/UploadForm/FileUpload.tsx +++ b/packages/base/src/page/Project/BatchImportDataSource/UploadForm/FileUpload.tsx @@ -1,25 +1,27 @@ import { Upload, UploadProps, Button, Space } from 'antd'; -import { BasicButton, ReminderInformation, EmptyBox } from '@actiontech/shared'; +import { + BasicButton, + ReminderInformation, + EmptyBox +} from '@actiontech/dms-kit'; import { useTranslation } from 'react-i18next'; import { ImportProjectUploadFileFieldWrapper } from '../../style'; import Project from '@actiontech/shared/lib/api/base/service/Project'; import { useBoolean } from 'ahooks'; import { FileUploadCheckStatusType } from '../index.type'; - const FileUpload: React.FC< - UploadProps & { uploadCheckStatus: FileUploadCheckStatusType } + UploadProps & { + uploadCheckStatus: FileUploadCheckStatusType; + } > = ({ uploadCheckStatus, ...props }) => { const { t } = useTranslation(); - const [loading, { setTrue: setPending, setFalse: setDone }] = useBoolean(); - const onDownload = () => { setPending(); - Project.GetImportDBServicesTemplate({ responseType: 'blob' }).finally(() => - setDone() - ); + Project.GetImportDBServicesTemplate({ + responseType: 'blob' + }).finally(() => setDone()); }; - return ( @@ -45,5 +47,4 @@ const FileUpload: React.FC< ); }; - export default FileUpload; diff --git a/packages/base/src/page/Project/BatchImportDataSource/UploadForm/index.tsx b/packages/base/src/page/Project/BatchImportDataSource/UploadForm/index.tsx index 61d898b45..3f726ebef 100644 --- a/packages/base/src/page/Project/BatchImportDataSource/UploadForm/index.tsx +++ b/packages/base/src/page/Project/BatchImportDataSource/UploadForm/index.tsx @@ -3,13 +3,10 @@ import { FormAreaBlockStyleWrapper, FormStyleWrapper, formItemLayout -} from '@actiontech/shared/lib/components/CustomForm/style'; -import { - FormItemBigTitle, - FormItemLabel -} from '@actiontech/shared/lib/components/CustomForm'; +} from '@actiontech/dms-kit/es/components/CustomForm/style'; +import { FormItemBigTitle, FormItemLabel } from '@actiontech/dms-kit'; import Icon from '@ant-design/icons'; -import { getFileFromUploadChangeEvent } from '@actiontech/shared/lib/utils/Common'; +import { getFileFromUploadChangeEvent } from '@actiontech/dms-kit'; import { BatchImportDataSourceFormType, FileUploadCheckStatusType diff --git a/packages/base/src/page/Project/BatchImportDataSource/hooks/useBatchCheckConnectable.ts b/packages/base/src/page/Project/BatchImportDataSource/hooks/useBatchCheckConnectable.ts index a382a7813..f99cd4394 100644 --- a/packages/base/src/page/Project/BatchImportDataSource/hooks/useBatchCheckConnectable.ts +++ b/packages/base/src/page/Project/BatchImportDataSource/hooks/useBatchCheckConnectable.ts @@ -1,6 +1,6 @@ import { useRequest } from 'ahooks'; import { DmsApi } from '@actiontech/shared/lib/api'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { IImportDBServiceV2 } from '@actiontech/shared/lib/api/base/service/common'; import { useBoolean } from 'ahooks'; import { diff --git a/packages/base/src/page/Project/BatchImportDataSource/hooks/useBatchImportDataSource.ts b/packages/base/src/page/Project/BatchImportDataSource/hooks/useBatchImportDataSource.ts index 47ea8ffae..61f2784a4 100644 --- a/packages/base/src/page/Project/BatchImportDataSource/hooks/useBatchImportDataSource.ts +++ b/packages/base/src/page/Project/BatchImportDataSource/hooks/useBatchImportDataSource.ts @@ -4,13 +4,10 @@ import { BatchImportDataSourceFormValueType, FileUploadCheckStatusType } from '../index.type'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; -import { jsonParse } from '@actiontech/shared/lib/utils/Common'; -import { - MIMETypeEnum, - ResponseBlobJsonType -} from '@actiontech/shared/lib/enum'; -import { isExportFileResponse } from '@actiontech/shared/lib/utils/Common'; +import { ResponseCode } from '@actiontech/dms-kit'; +import { jsonParse } from '@actiontech/dms-kit'; +import { MIMETypeEnum, ResponseBlobJsonType } from '@actiontech/dms-kit'; +import { isExportFileResponse } from '@actiontech/dms-kit'; import { AxiosResponse } from 'axios'; import { useTranslation } from 'react-i18next'; import { IImportDBServiceV2 } from '@actiontech/shared/lib/api/base/service/common'; diff --git a/packages/base/src/page/Project/BatchImportDataSource/index.tsx b/packages/base/src/page/Project/BatchImportDataSource/index.tsx index 3256794c6..8669e26de 100644 --- a/packages/base/src/page/Project/BatchImportDataSource/index.tsx +++ b/packages/base/src/page/Project/BatchImportDataSource/index.tsx @@ -2,24 +2,22 @@ import { BasicButton, PageHeader, EmptyBox, - BasicResult, - TypedLink -} from '@actiontech/shared'; + BasicResult +} from '@actiontech/dms-kit'; +import { TypedLink } from '@actiontech/shared'; import { useTranslation } from 'react-i18next'; import BatchImportDataSourceForm from './UploadForm'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import useBatchImportDataSource from './hooks/useBatchImportDataSource'; import { UploadProps } from 'antd'; import { useCallback } from 'react'; import { LeftArrowOutlined } from '@actiontech/icons'; -import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths'; +import { ROUTE_PATHS } from '@actiontech/dms-kit'; import { DmsApi } from '@actiontech/shared/lib/api'; import useBatchCheckConnectable from './hooks/useBatchCheckConnectable'; import ConnectableErrorModal from './ConnectableErrorModal'; - const BatchImportDataSource = () => { const { t } = useTranslation(); - const { importLoading, setImportPending, @@ -34,7 +32,6 @@ const BatchImportDataSource = () => { uploadCheckStatus, clearUploadCheckStatus } = useBatchImportDataSource(); - const { batchCheckConnectable, batchCheckConnectableLoading, @@ -43,7 +40,6 @@ const BatchImportDataSource = () => { hideConnectErrorModal, connectableInfo } = useBatchCheckConnectable(); - const onSubmit = async () => { setImportPending(); DmsApi.ProjectService.ImportDBServicesOfProjectsV2({ @@ -59,10 +55,8 @@ const BatchImportDataSource = () => { hideConnectErrorModal(); }); }; - const onCheckConnectableBeforeSubmit = async () => { await form.validateFields(); - batchCheckConnectable(dbServices ?? []).then((res) => { if (res?.isConnectable) { onSubmit(); @@ -71,7 +65,6 @@ const BatchImportDataSource = () => { } }); }; - const onUploadCustomRequest = useCallback< Required['customRequest'] >( @@ -79,8 +72,12 @@ const BatchImportDataSource = () => { setDBservices([]); clearUploadCheckStatus(); DmsApi.ProjectService.ImportDBServicesOfProjectsCheckV2( - { db_services_file: option.file }, - { responseType: 'blob' } + { + db_services_file: option.file + }, + { + responseType: 'blob' + } ) .then((res) => { importServicesCheck(res); @@ -92,7 +89,6 @@ const BatchImportDataSource = () => { }, [importServicesCheck, setDBservices, clearUploadCheckStatus] ); - return ( <> { ); }; - export default BatchImportDataSource; diff --git a/packages/base/src/page/Project/Detail/NotFoundRecentlyProject/ProjectSelectorModal.tsx b/packages/base/src/page/Project/Detail/NotFoundRecentlyProject/ProjectSelectorModal.tsx index 5fcdc65c8..3d3ea9a09 100644 --- a/packages/base/src/page/Project/Detail/NotFoundRecentlyProject/ProjectSelectorModal.tsx +++ b/packages/base/src/page/Project/Detail/NotFoundRecentlyProject/ProjectSelectorModal.tsx @@ -1,13 +1,12 @@ import { InputRef, SelectProps, Space } from 'antd'; -import { BasicButton, BasicModal } from '@actiontech/shared'; +import { BasicButton, BasicModal } from '@actiontech/dms-kit'; import { useTranslation } from 'react-i18next'; import { SelectProjectModalContentStyleWrapper } from './style'; import ProjectSelector from '../../../Nav/SideMenu/ProjectSelector'; import { ProjectSelectorPopupMenuStyleWrapper } from '../../../Nav/SideMenu/ProjectSelector/style'; import { ProjectSelectorModalProps } from './index.type'; -import CustomSelectSearchInput from '@actiontech/shared/lib/components/CustomSelect/CustomSelectSearchInput'; import { useRef, useState } from 'react'; - +import CustomSelectSearchInput from '@actiontech/dms-kit/es/components/CustomSelect/CustomSelectSearchInput'; const ProjectSelectorModal: React.FC = ({ onModalOk, open, @@ -19,7 +18,6 @@ const ProjectSelectorModal: React.FC = ({ const { t } = useTranslation(); const searchInputRef = useRef(null); const [searchValue, setSearchValue] = useState(''); - const renderDropdown: SelectProps['dropdownRender'] = (menu) => { return ( @@ -37,7 +35,6 @@ const ProjectSelectorModal: React.FC = ({ ); }; - return ( = ({ ); }; - export default ProjectSelectorModal; diff --git a/packages/base/src/page/Project/Detail/index.ce.tsx b/packages/base/src/page/Project/Detail/index.ce.tsx index 6e66719fb..4ddaa053c 100644 --- a/packages/base/src/page/Project/Detail/index.ce.tsx +++ b/packages/base/src/page/Project/Detail/index.ce.tsx @@ -1,13 +1,13 @@ -import { DEFAULT_PROJECT_ID } from '@actiontech/shared/lib/data/common'; +import { DEFAULT_PROJECT_ID } from '@actiontech/dms-kit'; import { useCurrentUser } from '@actiontech/shared/lib/features'; import { useEffect } from 'react'; import { Outlet, useLocation } from 'react-router-dom'; import useFetchPermissionData from '../../../hooks/useFetchPermissionData'; import { useDispatch } from 'react-redux'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { updateUserOperationPermissions } from '../../../store/permission'; import { useTypedNavigate } from '@actiontech/shared'; -import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths'; +import { ROUTE_PATHS } from '@actiontech/dms-kit'; const CEIndexProjectDetail: React.FC = () => { const location = useLocation(); diff --git a/packages/base/src/page/Project/Detail/index.ee.tsx b/packages/base/src/page/Project/Detail/index.ee.tsx index 8e408dc29..e76c75c9f 100644 --- a/packages/base/src/page/Project/Detail/index.ee.tsx +++ b/packages/base/src/page/Project/Detail/index.ee.tsx @@ -7,7 +7,7 @@ import { Outlet } from 'react-router-dom'; import useRecentlyOpenedProjects from '../../Nav/SideMenu/useRecentlyOpenedProjects'; import NotFoundRecentlyProject from './NotFoundRecentlyProject'; import useFetchPermissionData from '../../../hooks/useFetchPermissionData'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { useDispatch } from 'react-redux'; import { updateUserOperationPermissions } from '../../../store/permission'; diff --git a/packages/base/src/page/Project/Drawer/AddProject.tsx b/packages/base/src/page/Project/Drawer/AddProject.tsx index 0ac4be1b1..f87e6ec51 100644 --- a/packages/base/src/page/Project/Drawer/AddProject.tsx +++ b/packages/base/src/page/Project/Drawer/AddProject.tsx @@ -9,27 +9,21 @@ import { IReduxState } from '../../../store'; import { updateProjectModalStatus } from '../../../store/project'; import EventEmitter from '../../../utils/EventEmitter'; import ProjectForm from './ProjectForm/ProjectForm'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { ProjectFormFields } from './ProjectForm'; import { IAddProjectV2Params } from '@actiontech/shared/lib/api/base/service/Project/index.d'; import { DmsApi } from '@actiontech/shared/lib/api'; -import { BasicButton, BasicDrawer } from '@actiontech/shared'; - +import { BasicButton, BasicDrawer } from '@actiontech/dms-kit'; const AddProject: React.FC = () => { const { t } = useTranslation(); const dispatch = useDispatch(); - const [messageApi, contextHolder] = message.useMessage(); - const [form] = useForm(); - const [submitLoading, { setFalse: submitFinish, setTrue: startSubmit }] = useBoolean(); - const visible = useSelector( (state: IReduxState) => state.project.modalStatus[ModalName.DMS_Add_Project] ); - const closeDrawer = () => { form.resetFields(); dispatch( @@ -39,7 +33,6 @@ const AddProject: React.FC = () => { }) ); }; - const submit = async () => { const values = await form.validateFields(); const params: IAddProjectV2Params = { @@ -69,7 +62,6 @@ const AddProject: React.FC = () => { submitFinish(); }); }; - return ( <> { ); }; - export default AddProject; diff --git a/packages/base/src/page/Project/Drawer/ProjectForm/BusinessField/index.tsx b/packages/base/src/page/Project/Drawer/ProjectForm/BusinessField/index.tsx index bb4a78e70..162aaeaa5 100644 --- a/packages/base/src/page/Project/Drawer/ProjectForm/BusinessField/index.tsx +++ b/packages/base/src/page/Project/Drawer/ProjectForm/BusinessField/index.tsx @@ -1,36 +1,27 @@ -import { - EditableSelect, - EditableSelectValue, - EditableSelectOption -} from '@actiontech/shared'; +import { EditableSelect } from '@actiontech/dms-kit'; +import { EditableSelectValue, EditableSelectOption } from '@actiontech/dms-kit'; import { useTranslation } from 'react-i18next'; import { DmsApi } from '@actiontech/shared/lib/api'; import { useRequest } from 'ahooks'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { message } from 'antd'; import { useState } from 'react'; import { IListProjectV2 } from '@actiontech/shared/lib/api/base/service/common'; import { useBoolean } from 'ahooks'; - interface BusinessSelectorProps { value?: EditableSelectValue; onChange?: (value: EditableSelectValue) => void; } - const BusinessField = (props: BusinessSelectorProps) => { const { t } = useTranslation(); - const [messageApi, contextHolder] = message.useMessage(); - const [boundProjectList, setBoundProjectList] = useState( [] ); - const [ operationLoading, { setTrue: startOperationLoading, setFalse: stopOperationLoading } ] = useBoolean(); - const { data: businessList, refresh, @@ -48,7 +39,6 @@ const BusinessField = (props: BusinessSelectorProps) => { } }) ); - const onAddBusiness = (v: string) => { startOperationLoading(); DmsApi.ProjectService.CreateBusinessTag({ @@ -66,7 +56,6 @@ const BusinessField = (props: BusinessSelectorProps) => { stopOperationLoading(); }); }; - const deleteBusinessTag = (id: string) => { startOperationLoading(); DmsApi.ProjectService.DeleteBusinessTag({ @@ -82,7 +71,6 @@ const BusinessField = (props: BusinessSelectorProps) => { stopOperationLoading(); }); }; - const onDelete = (item: EditableSelectOption) => { startOperationLoading(); DmsApi.ProjectService.ListProjectsV2({ @@ -101,7 +89,6 @@ const BusinessField = (props: BusinessSelectorProps) => { stopOperationLoading(); }); }; - const onUpdate = (item: EditableSelectOption) => { startOperationLoading(); DmsApi.ProjectService.UpdateBusinessTag({ @@ -120,7 +107,6 @@ const BusinessField = (props: BusinessSelectorProps) => { stopOperationLoading(); }); }; - return ( <> {contextHolder} @@ -146,5 +132,4 @@ const BusinessField = (props: BusinessSelectorProps) => { ); }; - export default BusinessField; diff --git a/packages/base/src/page/Project/Drawer/ProjectForm/ProjectForm.tsx b/packages/base/src/page/Project/Drawer/ProjectForm/ProjectForm.tsx index 368d219c9..a30139322 100644 --- a/packages/base/src/page/Project/Drawer/ProjectForm/ProjectForm.tsx +++ b/packages/base/src/page/Project/Drawer/ProjectForm/ProjectForm.tsx @@ -1,17 +1,15 @@ import { Form } from 'antd'; import { useTranslation } from 'react-i18next'; import { ProjectFormFields, ProjectFormProps } from '.'; -import { nameRule } from '@actiontech/shared/lib/utils/FormRule'; -import { BasicInput, BasicSelect } from '@actiontech/shared'; +import { nameRule } from '@actiontech/dms-kit'; +import { BasicInput, BasicSelect } from '@actiontech/dms-kit'; import { ProjectPriorityOptions } from 'sqle/src/page/GlobalDashboard/index.data'; import BusinessField from './BusinessField'; - const ProjectForm: React.FC = ({ form, isUpdate = false }) => { const { t } = useTranslation(); - return ( form={form} colon={false} layout="vertical"> = ({ ); }; - export default ProjectForm; diff --git a/packages/base/src/page/Project/Drawer/UpdateProject.tsx b/packages/base/src/page/Project/Drawer/UpdateProject.tsx index 0dadc90a0..e98c0e746 100644 --- a/packages/base/src/page/Project/Drawer/UpdateProject.tsx +++ b/packages/base/src/page/Project/Drawer/UpdateProject.tsx @@ -4,7 +4,7 @@ import { useForm } from 'antd/es/form/Form'; import { useEffect } from 'react'; import { useTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import EmitterKey from '../../../data/EmitterKey'; import { ModalName } from '../../../data/ModalName'; import { IReduxState } from '../../../store'; @@ -14,28 +14,22 @@ import ProjectForm from './ProjectForm/ProjectForm'; import { updateProjectModalStatus } from '../../../store/project'; import { IUpdateProjectV2Params } from '@actiontech/shared/lib/api/base/service/Project/index.d'; import { DmsApi } from '@actiontech/shared/lib/api'; -import { BasicButton, BasicDrawer } from '@actiontech/shared'; +import { BasicButton, BasicDrawer } from '@actiontech/dms-kit'; import { ProjectV2ProjectPriorityEnum, UpdateProjectV2ProjectPriorityEnum } from '@actiontech/shared/lib/api/base/service/common.enum'; - const UpdateProject: React.FC = () => { const { t } = useTranslation(); const dispatch = useDispatch(); - const [messageApi, contextHolder] = message.useMessage(); - const [form] = useForm(); - const [submitLoading, { setFalse: submitFinish, setTrue: startSubmit }] = useBoolean(); - const { visible, selectProjectItem } = useSelector((state: IReduxState) => ({ visible: state.project.modalStatus[ModalName.DMS_Update_Project], selectProjectItem: state.project.selectProject ?? undefined })); - const closeDrawer = () => { form.resetFields(); dispatch( @@ -45,7 +39,6 @@ const UpdateProject: React.FC = () => { }) ); }; - const submit = async () => { const values = await form.validateFields(); const params: IUpdateProjectV2Params = { @@ -76,7 +69,6 @@ const UpdateProject: React.FC = () => { submitFinish(); }); }; - useEffect(() => { if (visible) { form.setFieldsValue({ @@ -88,7 +80,6 @@ const UpdateProject: React.FC = () => { }); } }, [form, visible, selectProjectItem]); - return ( <> { ); }; - export default UpdateProject; diff --git a/packages/base/src/page/Project/Drawer/__tests__/AddProject.test.tsx b/packages/base/src/page/Project/Drawer/__tests__/AddProject.test.tsx index be16a63cc..bc0a34c10 100644 --- a/packages/base/src/page/Project/Drawer/__tests__/AddProject.test.tsx +++ b/packages/base/src/page/Project/Drawer/__tests__/AddProject.test.tsx @@ -11,7 +11,7 @@ import { getBySelector } from '@actiontech/shared/lib/testUtil/customQuery'; import { mockUseCurrentUser } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentUser'; -import { SupportLanguage } from '@actiontech/shared/lib/enum'; +import { SupportLanguage } from '@actiontech/dms-kit'; jest.mock('react-redux', () => { return { diff --git a/packages/base/src/page/Project/ImportProject/FileUpload/index.tsx b/packages/base/src/page/Project/ImportProject/FileUpload/index.tsx index cded2656d..61398b15e 100644 --- a/packages/base/src/page/Project/ImportProject/FileUpload/index.tsx +++ b/packages/base/src/page/Project/ImportProject/FileUpload/index.tsx @@ -1,22 +1,18 @@ import { Upload, UploadProps, Button } from 'antd'; -import { BasicButton } from '@actiontech/shared'; +import { BasicButton } from '@actiontech/dms-kit'; import { useTranslation } from 'react-i18next'; import { ImportProjectUploadFileFieldWrapper } from '../../style'; import Project from '@actiontech/shared/lib/api/base/service/Project'; import { useBoolean } from 'ahooks'; - const FileUpload: React.FC = (props) => { const { t } = useTranslation(); - const [loading, { setTrue: setPending, setFalse: setDone }] = useBoolean(); - const onDownload = () => { setPending(); - Project.GetImportProjectsTemplate({ responseType: 'blob' }).finally(() => - setDone() - ); + Project.GetImportProjectsTemplate({ + responseType: 'blob' + }).finally(() => setDone()); }; - return ( @@ -28,5 +24,4 @@ const FileUpload: React.FC = (props) => { ); }; - export default FileUpload; diff --git a/packages/base/src/page/Project/ImportProject/index.tsx b/packages/base/src/page/Project/ImportProject/index.tsx index 8a0f5effa..2623a9baf 100644 --- a/packages/base/src/page/Project/ImportProject/index.tsx +++ b/packages/base/src/page/Project/ImportProject/index.tsx @@ -2,54 +2,46 @@ import { BasicButton, PageHeader, EmptyBox, - BasicResult, - TypedLink -} from '@actiontech/shared'; + BasicResult +} from '@actiontech/dms-kit'; +import { TypedLink } from '@actiontech/shared'; import { useTranslation } from 'react-i18next'; import { FormAreaBlockStyleWrapper, FormStyleWrapper, formItemLayout -} from '@actiontech/shared/lib/components/CustomForm/style'; +} from '@actiontech/dms-kit/es/components/CustomForm/style'; import { Form } from 'antd'; -import { - FormItemBigTitle, - FormItemLabel -} from '@actiontech/shared/lib/components/CustomForm'; +import { FormItemBigTitle, FormItemLabel } from '@actiontech/dms-kit'; import Icon from '@ant-design/icons'; -import { getFileFromUploadChangeEvent } from '@actiontech/shared/lib/utils/Common'; +import { getFileFromUploadChangeEvent } from '@actiontech/dms-kit'; import { ActiontechTable } from '@actiontech/shared/lib/components/ActiontechTable'; import { useBoolean } from 'ahooks'; import FileUpload from './FileUpload'; import { DmsApi } from '@actiontech/shared/lib/api'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { useState } from 'react'; import { IPreviewImportProjectsV2 } from '@actiontech/shared/lib/api/base/service/common'; import { importProjectListColumn } from './column'; import { ImportProjectUploadFileWrapper } from '../style'; import { LeftArrowOutlined, OverviewOutlined } from '@actiontech/icons'; -import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths'; - +import { ROUTE_PATHS } from '@actiontech/dms-kit'; const ImportProject = () => { const { t } = useTranslation(); - - const [selectFileForm] = Form.useForm<{ projectsFile: File }>(); - + const [selectFileForm] = Form.useForm<{ + projectsFile: File; + }>(); const [showProjectsTable, { setTrue: showTable, setFalse: hideTable }] = useBoolean(); - const [ importLoading, { setTrue: setImportPending, setFalse: setImportDone } ] = useBoolean(); - const [resultVisible, { setTrue: showResult, setFalse: hideResult }] = useBoolean(false); - const [importProjects, setImportProjects] = useState< IPreviewImportProjectsV2[] >([]); - const onSubmit = async () => { await selectFileForm.validateFields(); setImportPending(); @@ -65,14 +57,12 @@ const ImportProject = () => { setImportDone(); }); }; - const resetAndHideResult = () => { selectFileForm.resetFields(); hideResult(); hideTable(); setImportProjects([]); }; - return ( { ); }; - export default ImportProject; diff --git a/packages/base/src/page/Project/List/columns.tsx b/packages/base/src/page/Project/List/columns.tsx index f312ad430..ae327f542 100644 --- a/packages/base/src/page/Project/List/columns.tsx +++ b/packages/base/src/page/Project/List/columns.tsx @@ -1,12 +1,12 @@ import { t } from '../../../locale'; -import { formatTime } from '@actiontech/shared/lib/utils/Common'; +import { formatTime } from '@actiontech/dms-kit'; import { IListProjectV2 } from '@actiontech/shared/lib/api/base/service/common'; import { ActiontechTableColumn } from '@actiontech/shared/lib/components/ActiontechTable'; -import { TableColumnWithIconStyleWrapper } from '@actiontech/shared/lib/styleWrapper/element'; +import { TableColumnWithIconStyleWrapper } from '@actiontech/dms-kit'; import { FlagFilled, LockOutlined } from '@actiontech/icons'; import { BasicTypographyEllipsis, TypedLink } from '@actiontech/shared'; import { ProjectPriorityDictionary } from 'sqle/src/page/GlobalDashboard/index.data'; -import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths'; +import { ROUTE_PATHS } from '@actiontech/dms-kit'; import { ProjectListBusinessTagStyleWrapper } from './style'; export const ProjectListTableColumnFactory = diff --git a/packages/base/src/page/Project/List/index.test.tsx b/packages/base/src/page/Project/List/index.test.tsx index 02ab8c533..bda6c7d58 100644 --- a/packages/base/src/page/Project/List/index.test.tsx +++ b/packages/base/src/page/Project/List/index.test.tsx @@ -10,7 +10,7 @@ import { mockProjectList } from '@actiontech/shared/lib/testUtil/mockApi/base/pr import { baseSuperRender } from '../../../testUtils/superRender'; import EventEmitter from '../../../utils/EventEmitter'; import EmitterKey from '../../../data/EmitterKey'; -import { SystemRole } from '@actiontech/shared/lib/enum'; +import { SystemRole } from '@actiontech/dms-kit'; jest.mock('react-redux', () => { return { diff --git a/packages/base/src/page/Project/List/index.tsx b/packages/base/src/page/Project/List/index.tsx index 04e4a8761..c9648592d 100644 --- a/packages/base/src/page/Project/List/index.tsx +++ b/packages/base/src/page/Project/List/index.tsx @@ -13,7 +13,7 @@ import { useCallback, useEffect } from 'react'; import { useTranslation } from 'react-i18next'; import { useDispatch } from 'react-redux'; import { ProjectListTableColumnFactory } from './columns'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import EventEmitter from '../../../utils/EventEmitter'; import EmitterKey from '../../../data/EmitterKey'; import { diff --git a/packages/base/src/page/Project/List/style.ts b/packages/base/src/page/Project/List/style.ts index e830ac203..b73f0e50f 100644 --- a/packages/base/src/page/Project/List/style.ts +++ b/packages/base/src/page/Project/List/style.ts @@ -1,6 +1,5 @@ import { styled } from '@mui/material/styles'; -import { BasicTag } from '@actiontech/shared'; - +import { BasicTag } from '@actiontech/dms-kit'; export const ProjectListBusinessTagStyleWrapper = styled(BasicTag)` &.ant-tag { width: max-content; diff --git a/packages/base/src/page/Project/action.tsx b/packages/base/src/page/Project/action.tsx index ab75bc139..e78ef7a4a 100644 --- a/packages/base/src/page/Project/action.tsx +++ b/packages/base/src/page/Project/action.tsx @@ -5,8 +5,7 @@ import { } from '@actiontech/shared/lib/features'; import { ReactNode } from 'react'; import { t } from '../../locale'; -import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths'; - +import { ROUTE_PATHS } from '@actiontech/dms-kit'; export const ProjectManagementPageHeaderActions = ( onExport: () => void, exportPending: boolean, diff --git a/packages/base/src/page/Project/index.test.tsx b/packages/base/src/page/Project/index.test.tsx index 94ea93d81..f42bb4b74 100644 --- a/packages/base/src/page/Project/index.test.tsx +++ b/packages/base/src/page/Project/index.test.tsx @@ -9,7 +9,7 @@ import Project from '.'; import { act, cleanup, fireEvent, screen } from '@testing-library/react'; import { getBySelector } from '@actiontech/shared/lib/testUtil/customQuery'; import EmitterKey from '../../data/EmitterKey'; -import { SystemRole } from '@actiontech/shared/lib/enum'; +import { SystemRole } from '@actiontech/dms-kit'; import { mockCurrentUserReturn } from '@actiontech/shared/lib/testUtil/mockHook/data'; jest.mock('react-redux', () => { diff --git a/packages/base/src/page/Project/index.tsx b/packages/base/src/page/Project/index.tsx index 17492e682..e84d6b268 100644 --- a/packages/base/src/page/Project/index.tsx +++ b/packages/base/src/page/Project/index.tsx @@ -1,4 +1,4 @@ -import { PageHeader } from '@actiontech/shared'; +import { PageHeader } from '@actiontech/dms-kit'; import { TableRefreshButton } from '@actiontech/shared/lib/components/ActiontechTable'; import { Space, message } from 'antd'; import { useTranslation } from 'react-i18next'; @@ -12,21 +12,15 @@ import ProjectManageDrawer from './Drawer'; import { DmsApi } from '@actiontech/shared/lib/api'; import { useBoolean } from 'ahooks'; import { ProjectManagementPageHeaderActions } from './action'; - const Project: React.FC = () => { const { t } = useTranslation(); - const [messageApi, contextHolder] = message.useMessage(); - const [exportLoading, { setTrue: exportPending, setFalse: exportFinish }] = useBoolean(); - const dispatch = useDispatch(); - const refreshTable = () => { EventEmitter.emit(EmitterKey.DMS_Refresh_Project_List); }; - const onCreateProject = () => { dispatch( updateProjectModalStatus({ @@ -35,27 +29,27 @@ const Project: React.FC = () => { }) ); }; - const onExport = () => { exportPending(); const hideLoading = messageApi.loading( t('dmsProject.projectList.exportMessage'), 0 ); - DmsApi.ProjectService.ExportProjects({}, { responseType: 'blob' }).finally( - () => { - exportFinish(); - hideLoading(); + DmsApi.ProjectService.ExportProjects( + {}, + { + responseType: 'blob' } - ); + ).finally(() => { + exportFinish(); + hideLoading(); + }); }; - const headerActions = ProjectManagementPageHeaderActions( onExport, exportLoading, onCreateProject ); - return (
{contextHolder} @@ -82,5 +76,4 @@ const Project: React.FC = () => {
); }; - export default Project; diff --git a/packages/base/src/page/ResourceOverview/components/ResourceDetail/ResourceTopology/index.tsx b/packages/base/src/page/ResourceOverview/components/ResourceDetail/ResourceTopology/index.tsx index 78b5cb846..8a58420ab 100644 --- a/packages/base/src/page/ResourceOverview/components/ResourceDetail/ResourceTopology/index.tsx +++ b/packages/base/src/page/ResourceOverview/components/ResourceDetail/ResourceTopology/index.tsx @@ -1,16 +1,14 @@ import React, { useCallback, useEffect, useState } from 'react'; -import { BasicButton } from '@actiontech/shared'; +import { BasicButton } from '@actiontech/dms-kit'; import { Card, Tree, Space, type TreeDataNode } from 'antd'; import { useTranslation } from 'react-i18next'; import { DownOutlined, RightOutlined } from '@actiontech/icons'; import { AntTreeNodeProps } from 'antd/es/tree'; import classNames from 'classnames'; - interface TreeNodeData extends TreeDataNode { key: string; children?: TreeNodeData[]; } - interface ResourceTopologyProps { topology: TreeNodeData[]; selectedKey?: string; @@ -18,7 +16,6 @@ interface ResourceTopologyProps { expandedKeys: string[]; setExpandedKeys: (keys: string[]) => void; } - const ResourceTopology: React.FC = ({ topology, selectedKey, @@ -29,16 +26,13 @@ const ResourceTopology: React.FC = ({ const { t } = useTranslation(); const [autoExpandParent, setAutoExpandParent] = useState(true); const [allKeys, setAllKeys] = useState([]); - const onExpand = (keys: React.Key[]) => { setExpandedKeys(keys as string[]); setAutoExpandParent(false); }; - const onSelect = (keys: React.Key[]) => { setSelectedKey(keys[0] as string); }; - const getAllKeys = useCallback(() => { const keys: string[] = []; const traverse = (nodes: TreeNodeData[]) => { @@ -52,7 +46,6 @@ const ResourceTopology: React.FC = ({ traverse(topology ?? []); return keys; }, [topology]); - const toggleExpandAll = useCallback( (expand: boolean) => { if (expand) { @@ -64,7 +57,6 @@ const ResourceTopology: React.FC = ({ }, [setExpandedKeys, allKeys] ); - useEffect(() => { if (topology.length > 0) { const keys = getAllKeys(); @@ -72,7 +64,6 @@ const ResourceTopology: React.FC = ({ setExpandedKeys(keys); } }, [topology, getAllKeys, setExpandedKeys]); - return ( = ({ ); }; - export default ResourceTopology; diff --git a/packages/base/src/page/ResourceOverview/components/ResourceDetail/columns.tsx b/packages/base/src/page/ResourceOverview/components/ResourceDetail/columns.tsx index 8847dee86..429b0880d 100644 --- a/packages/base/src/page/ResourceOverview/components/ResourceDetail/columns.tsx +++ b/packages/base/src/page/ResourceOverview/components/ResourceDetail/columns.tsx @@ -2,11 +2,10 @@ import { t } from '../../../../locale'; import { IResourceListData } from '@actiontech/shared/lib/api/base/service/common'; import { ActiontechTableColumn } from '@actiontech/shared/lib/components/ActiontechTable'; import { IGetResourceOverviewResourceListV1Params } from '@actiontech/shared/lib/api/base/service/ResourceOverview/index.d'; -import { DatabaseTypeLogo, BasicToolTip } from '@actiontech/shared'; -import { TableColumnWithIconStyleWrapper } from '@actiontech/shared/lib/styleWrapper/element'; +import { DatabaseTypeLogo, BasicToolTip } from '@actiontech/dms-kit'; +import { TableColumnWithIconStyleWrapper } from '@actiontech/dms-kit'; import { FlagFilled, DatabaseSchemaFilled } from '@actiontech/icons'; import { ResourceOverviewTheme } from '../../../../theme/type'; - export const ResourceDetailListColumns = ( getLogoUrlByDbType: (dbType: string) => string, theme: ResourceOverviewTheme @@ -25,7 +24,6 @@ export const ResourceDetailListColumns = ( title: t('resourceOverview.resourceList.type'), render: (dbType) => { if (!dbType) return '-'; - return ( { const { t } = useTranslation(); const [form] = useForm(); const { mergeFromValueIntoParams } = useAsyncParams(); - const [ submitResultVisibility, { setTrue: showResult, setFalse: hiddenResult } ] = useBoolean(); const [submitLoading, { setTrue: startSubmit, setFalse: submitFinish }] = useBoolean(); - const { updateTaskSourceList, ...taskSourceTips } = useTaskSource(); - const onSubmit = async () => { const values = await form.validateFields(); startSubmit(); - const additionalParams = taskSourceTips.generateTaskSourceAdditionalParams( values.source ); - const params: IAddDBServiceSyncTaskParams = { db_service_sync_task: { name: values.name, @@ -75,7 +69,6 @@ const AddSyncTask: React.FC = () => { ) } }; - DBServiceSyncTaskService.AddDBServiceSyncTask(params) .then((res) => { if (res.data.code === ResponseCode.SUCCESS) { @@ -86,16 +79,13 @@ const AddSyncTask: React.FC = () => { submitFinish(); }); }; - const resetAndHideResult = useCallback(() => { hiddenResult(); EventEmitter.emit(EmitterKey.DMS_SYNC_TASK_RESET_FORM); }, [hiddenResult]); - useEffect(() => { updateTaskSourceList(); }, [updateTaskSourceList]); - return ( { ); }; - export default AddSyncTask; diff --git a/packages/base/src/page/SyncDataSource/Form/index.tsx b/packages/base/src/page/SyncDataSource/Form/index.tsx index dc9568e13..2ef84aca7 100644 --- a/packages/base/src/page/SyncDataSource/Form/index.tsx +++ b/packages/base/src/page/SyncDataSource/Form/index.tsx @@ -5,15 +5,15 @@ import { BasicInput, BasicSelect, CronInput, - EmptyBox, - TypedLink -} from '@actiontech/shared'; + EmptyBox +} from '@actiontech/dms-kit'; +import { TypedLink } from '@actiontech/shared'; import { FormAreaBlockStyleWrapper, FormAreaLineStyleWrapper, FormStyleWrapper, formItemLayout -} from '@actiontech/shared/lib/components/CustomForm/style'; +} from '@actiontech/dms-kit/es/components/CustomForm/style'; import { CustomLabelContent, FormInputBotBorder, @@ -21,9 +21,9 @@ import { FormItemLabel, FormItemNoLabel, FormItemSubTitle -} from '@actiontech/shared/lib/components/CustomForm'; -import { checkCron } from '@actiontech/shared/lib/components/CronInput/useCron/cron.tool'; -import { nameRule } from '@actiontech/shared/lib/utils/FormRule'; +} from '@actiontech/dms-kit'; +import { checkCron } from '@actiontech/dms-kit/es/components/CronInput/useCron/cron.tool'; +import { nameRule } from '@actiontech/dms-kit'; import EmitterKey from '../../../data/EmitterKey'; import EventEmitter from '../../../utils/EventEmitter'; import useGlobalRuleTemplate from 'sqle/src/hooks/useGlobalRuleTemplate'; @@ -31,7 +31,6 @@ import AutoCreatedFormItemByApi from 'sqle/src/components/BackendForm/AutoCreate import useAsyncParams from 'sqle/src/components/BackendForm/useAsyncParams'; import { SyncTaskFormProps } from './index.type'; import SqlAuditFields from '../../DataSource/components/Form/SqlAuditFields'; - const SyncTaskForm: React.FC = ({ form, defaultValue, @@ -42,18 +41,14 @@ const SyncTaskForm: React.FC = ({ const { t } = useTranslation(); const isUpdate = useMemo(() => !!defaultValue, [defaultValue]); const source = Form.useWatch('source', form); - const { generateFormValueByParams } = useAsyncParams(); - const { loading: getTaskSourceListLoading, generateTaskSourceSelectOption, generateTaskSourceDbTypesSelectOption, generateTaskSourceAdditionalParams } = taskSourceTips; - const formParams = generateTaskSourceAdditionalParams(source); - const handleChangeInstanceType = (type: string) => { // #if [sqle] form.resetFields([ @@ -67,7 +62,6 @@ const SyncTaskForm: React.FC = ({ updateGlobalRuleTemplateList(type); // #endif }; - const handleChangeAuditEnabled = (check: boolean) => { if (!check) { form.setFieldsValue({ @@ -83,7 +77,6 @@ const SyncTaskForm: React.FC = ({ } } }; - const handleChangeSource = () => { form.setFieldsValue({ instanceType: undefined @@ -96,7 +89,6 @@ const SyncTaskForm: React.FC = ({ updateGlobalRuleTemplateList, globalRuleTemplateList } = useGlobalRuleTemplate(); - const templateOptions = useMemo(() => { return globalRuleTemplateList.map((v) => ({ key: v.rule_template_id, @@ -145,15 +137,12 @@ const SyncTaskForm: React.FC = ({ updateGlobalRuleTemplateByInstanceType(); // #endif }; - EventEmitter.subscribe(EmitterKey.DMS_SYNC_TASK_RESET_FORM, resetForm); - return () => { EventEmitter.unsubscribe(EmitterKey.DMS_SYNC_TASK_RESET_FORM, resetForm); }; // eslint-disable-next-line react-hooks/exhaustive-deps }, [defaultValue?.db_type, form, isUpdate]); - useEffect(() => { if (!!defaultValue) { form.setFieldsValue({ @@ -191,7 +180,6 @@ const SyncTaskForm: React.FC = ({ } // eslint-disable-next-line react-hooks/exhaustive-deps }, [defaultValue, form]); - return ( = ({ }, ...nameRule() ]} - labelCol={{ span: 0 }} - wrapperCol={{ span: 24 }} + labelCol={{ + span: 0 + }} + wrapperCol={{ + span: 24 + }} > = ({ +
{t('dmsSyncDataSource.syncTaskForm.helpTips')} = ({ ); }; - export default SyncTaskForm; diff --git a/packages/base/src/page/SyncDataSource/List/action.ts b/packages/base/src/page/SyncDataSource/List/action.ts index c6bb0b175..b21355853 100644 --- a/packages/base/src/page/SyncDataSource/List/action.ts +++ b/packages/base/src/page/SyncDataSource/List/action.ts @@ -4,7 +4,7 @@ import { PERMISSIONS } from '@actiontech/shared/lib/features'; import { t } from '../../../locale'; -import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths'; +import { ROUTE_PATHS } from '@actiontech/dms-kit'; import { parse2ReactRouterPath } from '@actiontech/shared/lib/components/TypedRouter/utils'; export const SyncTaskListActions: (params: { diff --git a/packages/base/src/page/SyncDataSource/List/column.tsx b/packages/base/src/page/SyncDataSource/List/column.tsx index 1278f59c2..967733509 100644 --- a/packages/base/src/page/SyncDataSource/List/column.tsx +++ b/packages/base/src/page/SyncDataSource/List/column.tsx @@ -1,11 +1,10 @@ import { t } from '../../../locale'; -import { formatTime } from '@actiontech/shared/lib/utils/Common'; +import { formatTime } from '@actiontech/dms-kit'; import { IListDBServiceSyncTask } from '@actiontech/shared/lib/api/base/service/common'; import { ActiontechTableColumn } from '@actiontech/shared/lib/components/ActiontechTable'; -import { BasicTag, BasicToolTip, DatabaseTypeLogo } from '@actiontech/shared'; +import { BasicTag, BasicToolTip, DatabaseTypeLogo } from '@actiontech/dms-kit'; import { useDbServiceDriver } from '@actiontech/shared/lib/features'; import { Space } from 'antd'; - export const SyncTaskListTableColumnFactory: () => ActiontechTableColumn = () => { const { getLogoUrlByDbType } = useDbServiceDriver(); @@ -29,7 +28,6 @@ export const SyncTaskListTableColumnFactory: () => ActiontechTableColumn ActiontechTableColumn ); } - if (!lastSyncErr && !!record.last_sync_success_time) return ( {t('common.success')} ); - return '-'; } }, diff --git a/packages/base/src/page/SyncDataSource/List/index.test.tsx b/packages/base/src/page/SyncDataSource/List/index.test.tsx index 7b73cdb29..cf6a5c13f 100644 --- a/packages/base/src/page/SyncDataSource/List/index.test.tsx +++ b/packages/base/src/page/SyncDataSource/List/index.test.tsx @@ -5,7 +5,7 @@ import syncTaskList from '@actiontech/shared/lib/testUtil/mockApi/base/syncTaskL import SyncTaskList from '.'; import { mockUseCurrentUser } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentUser'; import { syncTaskListMockData } from '@actiontech/shared/lib/testUtil/mockApi/base/syncTaskList/data'; -import { SystemRole } from '@actiontech/shared/lib/enum'; +import { SystemRole } from '@actiontech/dms-kit'; jest.mock('react-router-dom', () => { return { diff --git a/packages/base/src/page/SyncDataSource/List/index.tsx b/packages/base/src/page/SyncDataSource/List/index.tsx index 804f4cc49..9fdf1b5aa 100644 --- a/packages/base/src/page/SyncDataSource/List/index.tsx +++ b/packages/base/src/page/SyncDataSource/List/index.tsx @@ -2,7 +2,7 @@ import { useRequest } from 'ahooks'; import { message } from 'antd'; import { useTranslation } from 'react-i18next'; import { SyncTaskListTableColumnFactory } from './column'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import DBServiceSyncTaskService from '@actiontech/shared/lib/api/base/service/DBServiceSyncTask'; import { ActiontechTable, diff --git a/packages/base/src/page/SyncDataSource/UpdatePage/index.tsx b/packages/base/src/page/SyncDataSource/UpdatePage/index.tsx index 58a17f406..ec2cca341 100644 --- a/packages/base/src/page/SyncDataSource/UpdatePage/index.tsx +++ b/packages/base/src/page/SyncDataSource/UpdatePage/index.tsx @@ -2,18 +2,16 @@ import { useTranslation } from 'react-i18next'; import { useBoolean } from 'ahooks'; import { useCallback, useEffect, useState } from 'react'; import { Empty, message, Space, Typography } from 'antd'; +import { BasicButton, EmptyBox, PageHeader } from '@actiontech/dms-kit'; import { BackButton, - BasicButton, - EmptyBox, - PageHeader, useTypedNavigate, useTypedParams } from '@actiontech/shared'; -import { PageLayoutHasFixedHeaderStyleWrapper } from '@actiontech/shared/lib/styleWrapper/element'; +import { PageLayoutHasFixedHeaderStyleWrapper } from '@actiontech/dms-kit'; import { useForm } from 'antd/es/form/Form'; import SyncTaskForm from '../Form'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { IGetDBServiceSyncTask } from '@actiontech/shared/lib/api/base/service/common'; import EmitterKey from '../../../data/EmitterKey'; import EventEmitter from '../../../utils/EventEmitter'; @@ -25,17 +23,14 @@ import { IUpdateDBServiceSyncTaskParams } from '@actiontech/shared/lib/api/base/ import useTaskSource from '../../../hooks/useTaskSource'; import useAsyncParams from 'sqle/src/components/BackendForm/useAsyncParams'; import { SyncTaskFormFields } from '../Form/index.type'; -import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths'; - +import { ROUTE_PATHS } from '@actiontech/dms-kit'; const UpdateSyncTask: React.FC = () => { const { t } = useTranslation(); const navigate = useTypedNavigate(); - const [messageApi, contextHoler] = message.useMessage(); const [form] = useForm(); const { updateTaskSourceList, ...taskSourceTips } = useTaskSource(); const { mergeFromValueIntoParams } = useAsyncParams(); - const { taskId } = useTypedParams(); const [initError, setInitError] = useState(''); @@ -44,15 +39,12 @@ const UpdateSyncTask: React.FC = () => { const [taskInfoLoading, setTaskInfoLoading] = useState(false); const [syncInstanceTask, setSyncInstanceTask] = useState(); - const onSubmit = async () => { const values: SyncTaskFormFields = await form.validateFields(); startSubmit(); - const additionalParams = taskSourceTips.generateTaskSourceAdditionalParams( values.source ); - const params: IUpdateDBServiceSyncTaskParams = { db_service_sync_task_uid: taskId ?? '', db_service_sync_task: { @@ -83,13 +75,14 @@ const UpdateSyncTask: React.FC = () => { ) } }; - DBServiceSyncTaskService.UpdateDBServiceSyncTask(params) .then((res) => { if (res.data.code === ResponseCode.SUCCESS) { messageApi.success(t('dmsSyncDataSource.updateSyncTask.successTips')); navigate(ROUTE_PATHS.BASE.DATA_SOURCE_MANAGEMENT.index, { - queries: { active: DataSourceManagerSegmentedKey.SyncDataSource }, + queries: { + active: DataSourceManagerSegmentedKey.SyncDataSource + }, replace: true }); } @@ -98,7 +91,6 @@ const UpdateSyncTask: React.FC = () => { submitFinish(); }); }; - const getSyncInstanceTask = useCallback(() => { if (!taskId) { setInitError(t('common.unknownError')); @@ -120,16 +112,13 @@ const UpdateSyncTask: React.FC = () => { setTaskInfoLoading(false); }); }, [t, taskId]); - const reset = () => { EventEmitter.emit(EmitterKey.DMS_SYNC_TASK_RESET_FORM); }; - useEffect(() => { getSyncInstanceTask(); updateTaskSourceList(); }, [getSyncInstanceTask, updateTaskSourceList]); - return ( {contextHoler} @@ -160,7 +149,9 @@ const UpdateSyncTask: React.FC = () => { if={!initError} defaultNode={ @@ -195,5 +186,4 @@ const UpdateSyncTask: React.FC = () => { ); }; - export default UpdateSyncTask; diff --git a/packages/base/src/page/System/GitSSHConfig/index.test.tsx b/packages/base/src/page/System/GitSSHConfig/index.test.tsx index 85bb50f12..46c01a018 100644 --- a/packages/base/src/page/System/GitSSHConfig/index.test.tsx +++ b/packages/base/src/page/System/GitSSHConfig/index.test.tsx @@ -3,7 +3,7 @@ import { act, cleanup, fireEvent, screen } from '@testing-library/react'; import { baseSuperRender } from '../../../testUtils/superRender'; import configuration from '@actiontech/shared/lib/testUtil/mockApi/sqle/configuration'; import { getSSHPublicKeyMockData } from '@actiontech/shared/lib/testUtil/mockApi/sqle/configuration/data'; -import { Copy } from '@actiontech/shared'; +import { Copy } from '@actiontech/dms-kit'; import { createSpySuccessResponse } from '@actiontech/shared/lib/testUtil/mockApi'; describe('base/System/GitSSHConfig', () => { diff --git a/packages/base/src/page/System/GitSSHConfig/index.tsx b/packages/base/src/page/System/GitSSHConfig/index.tsx index 2814cb9a0..f19a05d67 100644 --- a/packages/base/src/page/System/GitSSHConfig/index.tsx +++ b/packages/base/src/page/System/GitSSHConfig/index.tsx @@ -1,18 +1,16 @@ import { useTranslation } from 'react-i18next'; import { Alert, Card, Space, Spin, Typography, message } from 'antd'; -import { BasicButton, BasicToolTip, Copy } from '@actiontech/shared'; +import { BasicButton, BasicToolTip } from '@actiontech/dms-kit'; +import { Copy } from '@actiontech/dms-kit'; import SystemBasicTitle from '../components/BasicTitle'; import { useRequest } from 'ahooks'; import { SqleApi } from '@actiontech/shared/lib/api'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { GitSSHConfigStyleWrapper } from './style'; - const { Text, Paragraph } = Typography; - const GitSSHConfig: React.FC = () => { const { t } = useTranslation(); const [messageApi, messageContextHolder] = message.useMessage(); - const { loading: getLoading, run: getPublicKey, @@ -22,7 +20,6 @@ const GitSSHConfig: React.FC = () => { (res) => res.data.data?.public_key ); }); - const { loading: generateLoading, run: generateSSHKey } = useRequest( () => { return SqleApi.ConfigurationService.genSSHPublicKey(); @@ -36,14 +33,12 @@ const GitSSHConfig: React.FC = () => { } } ); - const onCopy = () => { if (publicKey) { Copy.copyTextByTextarea(publicKey); messageApi.success(t('common.copied')); } }; - return ( {messageContextHolder} @@ -94,5 +89,4 @@ const GitSSHConfig: React.FC = () => { ); }; - export default GitSSHConfig; diff --git a/packages/base/src/page/System/GlobalSetting/components/CBOperationLogsExpiredHours.tsx b/packages/base/src/page/System/GlobalSetting/components/CBOperationLogsExpiredHours.tsx index cb30f718d..d5a9c0107 100644 --- a/packages/base/src/page/System/GlobalSetting/components/CBOperationLogsExpiredHours.tsx +++ b/packages/base/src/page/System/GlobalSetting/components/CBOperationLogsExpiredHours.tsx @@ -1,14 +1,9 @@ import { useTranslation } from 'react-i18next'; -import { ConfigItem } from '@actiontech/shared'; -import { - EditInputNumber, - LabelContent -} from '@actiontech/shared/lib/components/ConfigItem'; +import { ConfigItem } from '@actiontech/dms-kit'; +import { EditInputNumber, LabelContent } from '@actiontech/dms-kit'; import useValidatorNumber from './useValidatorNumber'; - import { IUpdateSystemVariablesReqV1 } from '@actiontech/shared/lib/api/sqle/service/common'; import { PERMISSIONS, usePermission } from '@actiontech/shared/lib/features'; - export interface CBOperationLogsExpiredHoursProps { expiredHours: number | undefined; fieldVisible: boolean; @@ -19,7 +14,6 @@ export interface CBOperationLogsExpiredHoursProps { fieldName: keyof IUpdateSystemVariablesReqV1 ) => void; } - const CBOperationLogsExpiredHours = ({ expiredHours, fieldVisible, @@ -61,5 +55,4 @@ const CBOperationLogsExpiredHours = ({ ); }; - export default CBOperationLogsExpiredHours; diff --git a/packages/base/src/page/System/GlobalSetting/components/OperationRecordExpiredHours.tsx b/packages/base/src/page/System/GlobalSetting/components/OperationRecordExpiredHours.tsx index cd4ec61d6..512081f4f 100644 --- a/packages/base/src/page/System/GlobalSetting/components/OperationRecordExpiredHours.tsx +++ b/packages/base/src/page/System/GlobalSetting/components/OperationRecordExpiredHours.tsx @@ -1,13 +1,9 @@ import { useTranslation } from 'react-i18next'; -import { ConfigItem } from '@actiontech/shared'; -import { - EditInputNumber, - LabelContent -} from '@actiontech/shared/lib/components/ConfigItem'; +import { ConfigItem } from '@actiontech/dms-kit'; +import { EditInputNumber, LabelContent } from '@actiontech/dms-kit'; import useValidatorNumber from './useValidatorNumber'; import { IUpdateSystemVariablesReqV1 } from '@actiontech/shared/lib/api/sqle/service/common'; import { PERMISSIONS, usePermission } from '@actiontech/shared/lib/features'; - export interface OperationRecordExpiredHoursProps { expiredHours: number | undefined; fieldVisible: boolean; @@ -18,7 +14,6 @@ export interface OperationRecordExpiredHoursProps { fieldName: keyof IUpdateSystemVariablesReqV1 ) => void; } - const OperationRecordExpiredHours = ({ expiredHours, fieldVisible, @@ -60,5 +55,4 @@ const OperationRecordExpiredHours = ({ ); }; - export default OperationRecordExpiredHours; diff --git a/packages/base/src/page/System/GlobalSetting/components/UrlAddressPrefixTips.tsx b/packages/base/src/page/System/GlobalSetting/components/UrlAddressPrefixTips.tsx index ef8a8cae0..35ff9521f 100644 --- a/packages/base/src/page/System/GlobalSetting/components/UrlAddressPrefixTips.tsx +++ b/packages/base/src/page/System/GlobalSetting/components/UrlAddressPrefixTips.tsx @@ -1,12 +1,8 @@ import { useTranslation } from 'react-i18next'; -import { ConfigItem } from '@actiontech/shared'; -import { - EditInput, - LabelContent -} from '@actiontech/shared/lib/components/ConfigItem'; +import { ConfigItem } from '@actiontech/dms-kit'; +import { EditInput, LabelContent } from '@actiontech/dms-kit'; import { IUpdateSystemVariablesReqV1 } from '@actiontech/shared/lib/api/sqle/service/common'; import { PERMISSIONS, usePermission } from '@actiontech/shared/lib/features'; - export interface UrlAddressPrefixTipsProps { url: string | undefined; fieldVisible: boolean; @@ -17,7 +13,6 @@ export interface UrlAddressPrefixTipsProps { fieldName: keyof IUpdateSystemVariablesReqV1 ) => void; } - const UrlAddressPrefixTips = ({ url, fieldVisible, @@ -55,5 +50,4 @@ const UrlAddressPrefixTips = ({ ); }; - export default UrlAddressPrefixTips; diff --git a/packages/base/src/page/System/GlobalSetting/components/useValidatorNumber.ts b/packages/base/src/page/System/GlobalSetting/components/useValidatorNumber.ts index 7a68d1b1a..c2faacaff 100644 --- a/packages/base/src/page/System/GlobalSetting/components/useValidatorNumber.ts +++ b/packages/base/src/page/System/GlobalSetting/components/useValidatorNumber.ts @@ -1,7 +1,7 @@ import { useTranslation } from 'react-i18next'; import { message } from 'antd'; -import { integerValidate } from '@actiontech/shared/lib/utils/Common'; +import { integerValidate } from '@actiontech/dms-kit'; const useValidatorNumber = () => { const { t } = useTranslation(); diff --git a/packages/base/src/page/System/GlobalSetting/index.tsx b/packages/base/src/page/System/GlobalSetting/index.tsx index 11e7268b9..454b7dc54 100644 --- a/packages/base/src/page/System/GlobalSetting/index.tsx +++ b/packages/base/src/page/System/GlobalSetting/index.tsx @@ -1,16 +1,15 @@ import { useMemo } from 'react'; import { useTranslation } from 'react-i18next'; import { useBoolean, useRequest } from 'ahooks'; -import useHideConfigInputNode from '../../../../../shared/lib/components/ConfigItem/hooks/useHideConfigInputNode'; +import useHideConfigInputNode from '@actiontech/dms-kit/es/components/ConfigItem/hooks/useHideConfigInputNode'; import configuration from '@actiontech/shared/lib/api/sqle/service/configuration'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode, ConfigFieldMapMeta } from '@actiontech/dms-kit'; import { IUpdateSystemVariablesReqV1 } from '@actiontech/shared/lib/api/sqle/service/common'; import { Spin } from 'antd'; import SystemBasicTitle from '../components/BasicTitle'; import OperationRecordExpiredHours from './components/OperationRecordExpiredHours'; import UrlAddressPrefixTips from './components/UrlAddressPrefixTips'; import CBOperationLogsExpiredHours from './components/CBOperationLogsExpiredHours'; -import { ConfigFieldMapMeta } from '@actiontech/shared'; const GlobalSetting = () => { const { t } = useTranslation(); diff --git a/packages/base/src/page/System/License/Modal/ImportLicense.tsx b/packages/base/src/page/System/License/Modal/ImportLicense.tsx index eb0f4f44c..9db814e45 100644 --- a/packages/base/src/page/System/License/Modal/ImportLicense.tsx +++ b/packages/base/src/page/System/License/Modal/ImportLicense.tsx @@ -2,40 +2,34 @@ import { useTranslation } from 'react-i18next'; import { useState } from 'react'; import { useDispatch, useSelector } from 'react-redux'; import { useBoolean } from 'ahooks'; - import { Form, message, Upload } from 'antd'; import { useForm } from 'antd/es/form/Form'; import { RcFile } from 'antd/es/upload'; -import { BasicButton, BasicModal } from '@actiontech/shared'; +import { BasicButton, BasicModal } from '@actiontech/dms-kit'; import { ActiontechTable } from '@actiontech/shared/lib/components/ActiontechTable'; import { LicenseColumn } from '../index.data'; - -import { getFileFromUploadChangeEvent } from '@actiontech/shared/lib/utils/Common'; +import { getFileFromUploadChangeEvent } from '@actiontech/dms-kit'; import EventEmitter from '../../../../utils/EventEmitter'; import EmitterKey from '../../../../data/EmitterKey'; import { ModalName } from '../../../../data/ModalName'; import { IReduxState } from '../../../../store'; import { updateSystemModalStatus } from '../../../../store/system'; - import Configuration from '@actiontech/shared/lib/api/base/service/Configuration'; -import { ModalSize, ResponseCode } from '@actiontech/shared/lib/enum'; +import { ModalSize } from '@actiontech/dms-kit'; +import { ResponseCode } from '@actiontech/dms-kit'; import { ILicenseItem } from '@actiontech/shared/lib/api/sqle/service/common'; - const ImportLicenseModal = () => { const { t } = useTranslation(); const dispatch = useDispatch(); const [messageApi, messageContextHolder] = message.useMessage(); - const visible = useSelector( (state: IReduxState) => state.system.modalStatus[ModalName.DMS_Import_License] ); - const [licenseData, setLicenseData] = useState([]); const [prepareLoading, { setTrue: startPrepare, setFalse: prepareFinish }] = useBoolean(); const [form] = useForm(); - const fileChange = (currentFile: RcFile) => { startPrepare(); Configuration.CheckLicense({ @@ -56,7 +50,6 @@ const ImportLicenseModal = () => { }); return false; }; - const close = () => { form.resetFields(); dispatch( @@ -66,10 +59,8 @@ const ImportLicenseModal = () => { }) ); }; - const [importLoading, { setTrue: startImport, setFalse: importFinish }] = useBoolean(); - const submit = async () => { const values = await form.validateFields(); startImport(); @@ -86,7 +77,6 @@ const ImportLicenseModal = () => { importFinish(); } }; - return ( { ); }; - export default ImportLicenseModal; diff --git a/packages/base/src/page/System/License/action.tsx b/packages/base/src/page/System/License/action.tsx index 98386e3d5..a4e75a080 100644 --- a/packages/base/src/page/System/License/action.tsx +++ b/packages/base/src/page/System/License/action.tsx @@ -1,11 +1,11 @@ -import { ActionButton, BasicTooltipProps } from '@actiontech/shared'; +import { ActionButton } from '@actiontech/shared'; +import { BasicTooltipProps } from '@actiontech/dms-kit'; import { PERMISSIONS, PermissionControl } from '@actiontech/shared/lib/features'; import { ReactNode } from 'react'; import { t } from '../../../locale'; - type Params = { collectActionTooltipProps: BasicTooltipProps; collectAction: { @@ -16,7 +16,6 @@ type Params = { onClick: () => void; }; }; - export const LicenseActions = ( params: Params ): Record<'collect_license' | 'import_license', ReactNode> => { diff --git a/packages/base/src/page/System/License/index.tsx b/packages/base/src/page/System/License/index.tsx index b94f235e3..f0ea450f0 100644 --- a/packages/base/src/page/System/License/index.tsx +++ b/packages/base/src/page/System/License/index.tsx @@ -14,7 +14,7 @@ import { LicenseColumn } from './index.data'; import { ActiontechTable } from '@actiontech/shared/lib/components/ActiontechTable'; import { LicenseActions } from './action'; import { useCurrentUser } from '@actiontech/shared/lib/features'; -import { DEFAULT_LANGUAGE } from '@actiontech/shared/lib/locale'; +import { DEFAULT_LANGUAGE } from '@actiontech/dms-kit'; const License = () => { const { t } = useTranslation(); diff --git a/packages/base/src/page/System/LoginConnection/LDAPSetting/components/ConfigField.tsx b/packages/base/src/page/System/LoginConnection/LDAPSetting/components/ConfigField.tsx index bf73c8c39..7765e056d 100644 --- a/packages/base/src/page/System/LoginConnection/LDAPSetting/components/ConfigField.tsx +++ b/packages/base/src/page/System/LoginConnection/LDAPSetting/components/ConfigField.tsx @@ -1,12 +1,8 @@ import { useTranslation } from 'react-i18next'; -import { BasicInput, BasicSwitch } from '@actiontech/shared'; -import { - CustomLabelContent, - FormItemLabel -} from '@actiontech/shared/lib/components/CustomForm'; -import { validatorPort } from '@actiontech/shared/lib/utils/FormRule'; +import { BasicInput, BasicSwitch } from '@actiontech/dms-kit'; +import { CustomLabelContent, FormItemLabel } from '@actiontech/dms-kit'; +import { validatorPort } from '@actiontech/dms-kit'; import { Form } from 'antd'; - const ConfigField = () => { const { t } = useTranslation(); const updatePassword = Form.useWatch('update_password'); @@ -17,7 +13,11 @@ const ConfigField = () => { name="enable_ssl" valuePropName="checked" className="has-required-style" - rules={[{ required: true }]} + rules={[ + { + required: true + } + ]} > @@ -25,7 +25,11 @@ const ConfigField = () => { label={t('dmsSystem.ldap.ldapServerHost')} name="ldap_server_host" className="has-required-style" - rules={[{ required: true }]} + rules={[ + { + required: true + } + ]} > { label={t('dmsSystem.ldap.ldapConnectPwd')} name="ldap_connect_pwd" className="has-required-style" - rules={[{ required: updatePassword }]} + rules={[ + { + required: updatePassword + } + ]} hidden={!updatePassword} > { ); }; - export default ConfigField; diff --git a/packages/base/src/page/System/LoginConnection/LDAPSetting/index.tsx b/packages/base/src/page/System/LoginConnection/LDAPSetting/index.tsx index 465f404e1..34cc31f14 100644 --- a/packages/base/src/page/System/LoginConnection/LDAPSetting/index.tsx +++ b/packages/base/src/page/System/LoginConnection/LDAPSetting/index.tsx @@ -10,11 +10,11 @@ import { useConfigRender, useConfigSwitchControls, ReadOnlyConfigColumnsType -} from '@actiontech/shared/lib/components/SystemConfigurationHub'; +} from '@actiontech/dms-kit'; import ConfigField from './components/ConfigField'; import Configuration from '@actiontech/shared/lib/api/base/service/Configuration'; import { LDAPFormFields } from './index.type'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { ILDAPConfiguration, ILDAPConfigurationResData diff --git a/packages/base/src/page/System/LoginConnection/LoginBasicSetting/index.tsx b/packages/base/src/page/System/LoginConnection/LoginBasicSetting/index.tsx index 1e41b9c8b..4f541820b 100644 --- a/packages/base/src/page/System/LoginConnection/LoginBasicSetting/index.tsx +++ b/packages/base/src/page/System/LoginConnection/LoginBasicSetting/index.tsx @@ -1,19 +1,13 @@ import { Popconfirm, Spin } from 'antd'; import { useTranslation } from 'react-i18next'; -import { - BasicSwitch, - BasicToolTip, - ConfigItem, - EditInput, - LabelContent -} from '@actiontech/shared'; +import { BasicSwitch, BasicToolTip, ConfigItem } from '@actiontech/dms-kit'; +import { EditInput, LabelContent } from '@actiontech/dms-kit'; import { useState } from 'react'; import { useLoginConnectionContext } from '../context'; import { useBoolean, useRequest } from 'ahooks'; import { DmsApi } from '@actiontech/shared/lib/api'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { ILoginConfiguration } from '@actiontech/shared/lib/api/base/service/common'; - const LoginBasicSetting: React.FC = () => { const { t } = useTranslation(); const { isLDAPEnabled, isOAuthEnabled } = useLoginConnectionContext(); @@ -23,7 +17,6 @@ const LoginBasicSetting: React.FC = () => { isLoginButtonEditing, { setTrue: startEditing, setFalse: finishEditing } ] = useBoolean(); - const updateLoginConfig = async ( value: string | boolean, configKey: keyof ILoginConfiguration @@ -40,7 +33,6 @@ const LoginBasicSetting: React.FC = () => { } } }; - const { loading, refresh } = useRequest(() => DmsApi.ConfigurationService.GetLoginTips().then((res) => { if (res.data.code === ResponseCode.SUCCESS) { @@ -49,7 +41,6 @@ const LoginBasicSetting: React.FC = () => { } }) ); - const renderPasswordLoginSwitch = () => { if (!isOAuthEnabled) { return ( @@ -61,13 +52,11 @@ const LoginBasicSetting: React.FC = () => { ); } - const confirmTitle = isPasswordLoginDisabled ? t('dmsSystem.loginBasic.confirmDisable') : isLDAPEnabled ? t('dmsSystem.loginBasic.confirmEnableWithLDAP') : t('dmsSystem.loginBasic.confirmEnable'); - return ( { ); }; - return ( { ); }; - export default LoginBasicSetting; diff --git a/packages/base/src/page/System/LoginConnection/Oauth/components/ConfigField.tsx b/packages/base/src/page/System/LoginConnection/Oauth/components/ConfigField.tsx index 8a3ab1a96..6b4f4f7f5 100644 --- a/packages/base/src/page/System/LoginConnection/Oauth/components/ConfigField.tsx +++ b/packages/base/src/page/System/LoginConnection/Oauth/components/ConfigField.tsx @@ -1,17 +1,10 @@ import { useTranslation } from 'react-i18next'; - -import { BasicInput, BasicSwitch, EmptyBox } from '@actiontech/shared'; -import { - FormItemLabel, - CustomLabelContent -} from '@actiontech/shared/lib/components/CustomForm'; +import { BasicInput, BasicSwitch, EmptyBox } from '@actiontech/dms-kit'; +import { FormItemLabel, CustomLabelContent } from '@actiontech/dms-kit'; import { Form } from 'antd'; - const ConfigField = () => { const { t } = useTranslation(); - const autoCreateUser = Form.useWatch('autoCreateUser'); - return ( <> { ); }; - export default ConfigField; diff --git a/packages/base/src/page/System/LoginConnection/Oauth/index.tsx b/packages/base/src/page/System/LoginConnection/Oauth/index.tsx index 7d30c4a6c..90d60e177 100644 --- a/packages/base/src/page/System/LoginConnection/Oauth/index.tsx +++ b/packages/base/src/page/System/LoginConnection/Oauth/index.tsx @@ -2,11 +2,8 @@ import { useCallback, useMemo } from 'react'; import { useTranslation } from 'react-i18next'; import { useBoolean, useRequest } from 'ahooks'; import { Form, Space, Spin, Tag, Typography } from 'antd'; -import { - BasicToolTip, - EmptyBox, - EnterpriseFeatureDisplay -} from '@actiontech/shared'; +import { BasicToolTip, EmptyBox } from '@actiontech/dms-kit'; +import { EnterpriseFeatureDisplay } from '@actiontech/shared'; import { ConfigSwitch, ConfigModifyBtn, @@ -14,11 +11,11 @@ import { useConfigRender, useConfigSwitchControls, ReadOnlyConfigColumnsType -} from '@actiontech/shared/lib/components/SystemConfigurationHub'; +} from '@actiontech/dms-kit'; import ConfigField from './components/ConfigField'; import { switchFieldName } from './index.data'; import Configuration from '@actiontech/shared/lib/api/base/service/Configuration'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { OauthFormField } from './index.type'; import { IGetOauth2ConfigurationResData, @@ -32,7 +29,6 @@ import { PermissionControl } from '@actiontech/shared/lib/features'; import { useLoginConnectionContext } from '../context'; - const Oauth = () => { const { t } = useTranslation(); const { baseTheme } = useThemeStyleData(); @@ -71,11 +67,9 @@ const Oauth = () => { // #endif } ); - const isConfigClosed = useMemo(() => { return !oauthConfig?.enable_oauth2; }, [oauthConfig]); - const handleClickCancel = () => { if (isConfigClosed) form.setFieldValue(switchFieldName, false); setFormDefaultValue(); @@ -85,7 +79,6 @@ const Oauth = () => { setFormDefaultValue(); startModify(); }; - const [submitLoading, { setTrue: startSubmit, setFalse: submitFinish }] = useBoolean(); const handleSubmit = async (value: OauthFormField) => { @@ -111,15 +104,12 @@ const Oauth = () => { auto_bind_same_name_user: value.autoBindSameNameUser, enable_manually_bind: value.enableManuallyBind }; - if (!!value.scopes) { configuration.scopes = value.scopes.split(','); } - const params: IUpdateOauth2ConfigurationParams = { oauth2: configuration }; - try { const res = await Configuration.UpdateOauth2Configuration(params); if (res.data.code === ResponseCode.SUCCESS) { @@ -131,7 +121,6 @@ const Oauth = () => { submitFinish(); } }; - const setFormDefaultValue = useCallback(() => { form.setFieldsValue({ clientId: oauthConfig?.client_id, @@ -155,9 +144,7 @@ const Oauth = () => { enableManuallyBind: oauthConfig?.enable_manually_bind }); }, [form, oauthConfig]); - const switchOpen = Form.useWatch(switchFieldName, form); - const { configSwitchPopoverOpenState, generateConfigSwitchPopoverTitle, @@ -165,7 +152,6 @@ const Oauth = () => { handleConfigSwitchChange, hiddenConfigSwitchPopover } = useConfigSwitchControls(form, switchFieldName); - const onConfigSwitchPopoverConfirm = async () => { if (isConfigClosed && modifyFlag) { handleClickCancel(); @@ -190,7 +176,6 @@ const Oauth = () => { } } }; - const readonlyColumnsConfig: ReadOnlyConfigColumnsType = useMemo(() => { return [ @@ -273,7 +258,6 @@ const Oauth = () => { span: 3, dataIndex: 'scopes', hidden: !oauthConfig?.enable_oauth2, - render: (val) => { const scopes = val as string[]; return ( @@ -382,7 +366,6 @@ const Oauth = () => { dataIndex: 'login_perm_expr', hidden: !oauthConfig?.enable_oauth2 }, - { label: ( { } ]; }, [oauthConfig?.enable_oauth2, t, baseTheme]); - return (
@@ -538,5 +520,4 @@ const Oauth = () => {
); }; - export default Oauth; diff --git a/packages/base/src/page/System/LoginConnection/SMSSetting/__tests__/index.test.tsx b/packages/base/src/page/System/LoginConnection/SMSSetting/__tests__/index.test.tsx index e691fc8e8..1642f6d93 100644 --- a/packages/base/src/page/System/LoginConnection/SMSSetting/__tests__/index.test.tsx +++ b/packages/base/src/page/System/LoginConnection/SMSSetting/__tests__/index.test.tsx @@ -6,7 +6,7 @@ import { getBySelector } from '@actiontech/shared/lib/testUtil/customQuery'; import SMSSetting from '..'; import { createSpySuccessResponse } from '@actiontech/shared/lib/testUtil/mockApi'; import { mockUseCurrentUser } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentUser'; -import { SystemRole } from '@actiontech/shared/lib/enum'; +import { SystemRole } from '@actiontech/dms-kit'; describe('base/System/GlobalSetting/SMSSetting', () => { let getSmsConfigurationSpy: jest.SpyInstance; diff --git a/packages/base/src/page/System/LoginConnection/SMSSetting/components/ConfigExtraButtons.tsx b/packages/base/src/page/System/LoginConnection/SMSSetting/components/ConfigExtraButtons.tsx index e0ad64860..1caa31c5e 100644 --- a/packages/base/src/page/System/LoginConnection/SMSSetting/components/ConfigExtraButtons.tsx +++ b/packages/base/src/page/System/LoginConnection/SMSSetting/components/ConfigExtraButtons.tsx @@ -1,24 +1,22 @@ import { useTranslation } from 'react-i18next'; import { Space, Form, message } from 'antd'; -import { BasicInput } from '@actiontech/shared'; -import { FormItemLabel } from '@actiontech/shared/lib/components/CustomForm'; +import { BasicInput } from '@actiontech/dms-kit'; +import { FormItemLabel } from '@actiontech/dms-kit'; import { useRef, useState } from 'react'; import baseConfiguration from '@actiontech/shared/lib/api/base/service/Configuration'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; -import { formItemLayout } from '@actiontech/shared/lib/components/CustomForm/style'; +import { ResponseCode } from '@actiontech/dms-kit'; +import { formItemLayout } from '@actiontech/dms-kit/es/components/CustomForm/style'; import { ConfigModifyBtn, ConfigTestBtn, ConfigTestPopoverForm -} from '@actiontech/shared/lib/components/SystemConfigurationHub'; - +} from '@actiontech/dms-kit'; export interface ConfigExtraButtonsProps { isConfigClosed: boolean; extraButtonsVisible: boolean; handleClickModify: () => void; enabled: boolean; } - const ConfigExtraButtons = ({ isConfigClosed, extraButtonsVisible, @@ -26,20 +24,17 @@ const ConfigExtraButtons = ({ enabled }: ConfigExtraButtonsProps) => { const { t } = useTranslation(); - const [messageApi, messageContextHolder] = message.useMessage(); - - const [testForm] = Form.useForm<{ phone: string }>(); - + const [testForm] = Form.useForm<{ + phone: string; + }>(); const testing = useRef(false); const [testPopoverVisible, toggleTestPopoverVisible] = useState(false); - const testCodingConfiguration = async () => { if (testing.current) { return; } const values = await testForm.validateFields(); - testing.current = true; toggleTestPopoverVisible(false); const hide = messageApi.loading( @@ -69,7 +64,6 @@ const ConfigExtraButtons = ({ testForm.resetFields(); }); }; - const onTestPopoverOpen = (open: boolean) => { if (!enabled) { return; @@ -79,7 +73,6 @@ const ConfigExtraButtons = ({ } toggleTestPopoverVisible(open); }; - return ( <> {messageContextHolder} @@ -99,8 +92,14 @@ const ConfigExtraButtons = ({ ); }; - export default ConfigExtraButtons; diff --git a/packages/base/src/page/System/LoginConnection/SMSSetting/components/ConfigField.tsx b/packages/base/src/page/System/LoginConnection/SMSSetting/components/ConfigField.tsx index f4b00baa3..8b696b78e 100644 --- a/packages/base/src/page/System/LoginConnection/SMSSetting/components/ConfigField.tsx +++ b/packages/base/src/page/System/LoginConnection/SMSSetting/components/ConfigField.tsx @@ -1,14 +1,8 @@ import { useTranslation } from 'react-i18next'; - -import { - CustomLabelContent, - FormItemLabel -} from '@actiontech/shared/lib/components/CustomForm'; -import { BasicInput } from '@actiontech/shared'; - +import { CustomLabelContent, FormItemLabel } from '@actiontech/dms-kit'; +import { BasicInput } from '@actiontech/dms-kit'; const ConfigField = () => { const { t } = useTranslation(); - return ( <> { /> } name="url" - rules={[{ required: true }]} + rules={[ + { + required: true + } + ]} > { /> } name="token" - rules={[{ required: true }]} + rules={[ + { + required: true + } + ]} > { ); }; - export default ConfigField; diff --git a/packages/base/src/page/System/LoginConnection/SMSSetting/index.tsx b/packages/base/src/page/System/LoginConnection/SMSSetting/index.tsx index bf1300760..53bf386cd 100644 --- a/packages/base/src/page/System/LoginConnection/SMSSetting/index.tsx +++ b/packages/base/src/page/System/LoginConnection/SMSSetting/index.tsx @@ -6,7 +6,7 @@ import ConfigExtraButtons from './components/ConfigExtraButtons'; import ConfigField from './components/ConfigField'; import { DmsApi } from '@actiontech/shared/lib/api'; import { IGetSmsConfigurationReplyItem } from '@actiontech/shared/lib/api/base/service/common'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { FormFields } from './index.type'; import { switchFieldName } from './index.data'; import { @@ -16,7 +16,7 @@ import { ConfigSubmitButtonField, useConfigSwitchControls, CustomLabelContent -} from '@actiontech/shared'; +} from '@actiontech/dms-kit'; import { PERMISSIONS, PermissionControl diff --git a/packages/base/src/page/System/PersonalizeSetting/index.test.tsx b/packages/base/src/page/System/PersonalizeSetting/index.test.tsx index c4881a273..c73f528a7 100644 --- a/packages/base/src/page/System/PersonalizeSetting/index.test.tsx +++ b/packages/base/src/page/System/PersonalizeSetting/index.test.tsx @@ -9,7 +9,7 @@ import { getBySelector } from '@actiontech/shared/lib/testUtil/customQuery'; import { mockUseCurrentUser } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentUser'; -import { SystemRole } from '@actiontech/shared/lib/enum'; +import { SystemRole } from '@actiontech/dms-kit'; describe('base/System/PersonalizeSetting', () => { let requestGetBasicInfo: jest.SpyInstance; diff --git a/packages/base/src/page/System/PersonalizeSetting/index.tsx b/packages/base/src/page/System/PersonalizeSetting/index.tsx index 63ab9107a..e0332a138 100644 --- a/packages/base/src/page/System/PersonalizeSetting/index.tsx +++ b/packages/base/src/page/System/PersonalizeSetting/index.tsx @@ -2,47 +2,45 @@ import { useBoolean, useRequest } from 'ahooks'; import { useTranslation } from 'react-i18next'; import { useMemo } from 'react'; import { Spin } from 'antd'; -import { ConfigItem } from '@actiontech/shared'; +import { ConfigItem } from '@actiontech/dms-kit'; import { ConfigFieldMapMeta, EditInput, ImageUploader, LabelContent -} from '@actiontech/shared/lib/components/ConfigItem'; +} from '@actiontech/dms-kit'; import SystemBasicTitle from '../components/BasicTitle'; - import { DMS_DEFAULT_WEB_LOGO_URL, DMS_DEFAULT_WEB_TITLE -} from '@actiontech/shared/lib/data/common'; -import useHideConfigInputNode from '@actiontech/shared/lib/components/ConfigItem/hooks/useHideConfigInputNode'; +} from '@actiontech/dms-kit'; +import useHideConfigInputNode from '@actiontech/dms-kit/es/components/ConfigItem/hooks/useHideConfigInputNode'; import useSystemConfig from '../../../hooks/useSystemConfig'; import BasicInfo from '@actiontech/shared/lib/api/base/service/BasicInfo'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { IPersonalizationParams } from '@actiontech/shared/lib/api/base/service/BasicInfo/index.d'; import { PERMISSIONS, usePermission } from '@actiontech/shared/lib/features'; - const PersonalizeSetting: React.FC = () => { const { t } = useTranslation(); - const { checkActionPermission } = usePermission(); const [ titleFieldVisible, { setTrue: showTitleField, setFalse: hideTitleField } ] = useBoolean(false); - const fieldMetaMap = new Map< keyof IPersonalizationParams, ConfigFieldMapMeta >([ - ['title', { hideField: hideTitleField }], + [ + 'title', + { + hideField: hideTitleField + } + ], ['file', {}] ]); - useHideConfigInputNode(titleFieldVisible, hideTitleField); - const { syncWebTitleAndLogo } = useSystemConfig(); - const { data: basicInfo, loading, @@ -51,18 +49,14 @@ const PersonalizeSetting: React.FC = () => { BasicInfo.GetBasicInfo().then((res) => { const basicInfoRes = res.data.data; if (basicInfoRes) syncWebTitleAndLogo(basicInfoRes); - return basicInfoRes ?? {}; }) ); - const webTitleInPage = useMemo(() => { return !!basicInfo?.title ? basicInfo.title : DMS_DEFAULT_WEB_TITLE; }, [basicInfo]); - const [submitLoading, { setTrue: startSubmit, setFalse: submitFinish }] = useBoolean(); - const submitPersonalize = ( value: string | File, fieldName: keyof IPersonalizationParams @@ -88,7 +82,6 @@ const PersonalizeSetting: React.FC = () => { submitFinish(); }); }; - return ( @@ -145,5 +138,4 @@ const PersonalizeSetting: React.FC = () => { ); }; - export default PersonalizeSetting; diff --git a/packages/base/src/page/System/ProcessConnection/CodingSetting/__tests__/index.test.tsx b/packages/base/src/page/System/ProcessConnection/CodingSetting/__tests__/index.test.tsx index 645ae32f7..974145d86 100644 --- a/packages/base/src/page/System/ProcessConnection/CodingSetting/__tests__/index.test.tsx +++ b/packages/base/src/page/System/ProcessConnection/CodingSetting/__tests__/index.test.tsx @@ -6,7 +6,7 @@ import { getBySelector } from '@actiontech/shared/lib/testUtil/customQuery'; import CodingSetting from '..'; import { createSpySuccessResponse } from '@actiontech/shared/lib/testUtil/mockApi'; import { mockUseCurrentUser } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentUser'; -import { SystemRole } from '@actiontech/shared/lib/enum'; +import { SystemRole } from '@actiontech/dms-kit'; describe('base/System/ProcessConnection/CodingSetting', () => { let getCodingConfigurationSpy: jest.SpyInstance; diff --git a/packages/base/src/page/System/ProcessConnection/CodingSetting/components/ConfigExtraButtons.tsx b/packages/base/src/page/System/ProcessConnection/CodingSetting/components/ConfigExtraButtons.tsx index f7fe554d8..395893176 100644 --- a/packages/base/src/page/System/ProcessConnection/CodingSetting/components/ConfigExtraButtons.tsx +++ b/packages/base/src/page/System/ProcessConnection/CodingSetting/components/ConfigExtraButtons.tsx @@ -1,24 +1,22 @@ import { useTranslation } from 'react-i18next'; import { Space, Form, message } from 'antd'; -import { BasicInput } from '@actiontech/shared'; -import { FormItemLabel } from '@actiontech/shared/lib/components/CustomForm'; +import { BasicInput } from '@actiontech/dms-kit'; +import { FormItemLabel } from '@actiontech/dms-kit'; import { useRef, useState } from 'react'; import configuration from '@actiontech/shared/lib/api/sqle/service/configuration'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; -import { formItemLayout } from '@actiontech/shared/lib/components/CustomForm/style'; +import { ResponseCode } from '@actiontech/dms-kit'; +import { formItemLayout } from '@actiontech/dms-kit/es/components/CustomForm/style'; import { ConfigModifyBtn, ConfigTestBtn, ConfigTestPopoverForm -} from '@actiontech/shared/lib/components/SystemConfigurationHub'; - +} from '@actiontech/dms-kit'; export interface ConfigExtraButtonsProps { isConfigClosed: boolean; extraButtonsVisible: boolean; handleClickModify: () => void; enabled: boolean; } - const ConfigExtraButtons = ({ isConfigClosed, extraButtonsVisible, @@ -26,25 +24,22 @@ const ConfigExtraButtons = ({ enabled }: ConfigExtraButtonsProps) => { const { t } = useTranslation(); - const [messageApi, messageContextHolder] = message.useMessage(); - const [testForm] = Form.useForm(); - const testing = useRef(false); const [testPopoverVisible, toggleTestPopoverVisible] = useState(false); - const testCodingConfiguration = async () => { if (testing.current) { return; } const values = await testForm.validateFields(); - testing.current = true; toggleTestPopoverVisible(false); const hide = messageApi.loading(t('dmsSystem.codingDocking.testing'), 0); configuration - .testCodingConfigV1({ coding_project_name: values.codingProjectName }) + .testCodingConfigV1({ + coding_project_name: values.codingProjectName + }) .then((res) => { if (res.data.code === ResponseCode.SUCCESS) { if (res.data.data?.is_message_sent_normally) { @@ -62,7 +57,6 @@ const ConfigExtraButtons = ({ testForm.resetFields(); }); }; - const onTestPopoverOpen = (open: boolean) => { if (!enabled) { return; @@ -72,7 +66,6 @@ const ConfigExtraButtons = ({ } toggleTestPopoverVisible(open); }; - return ( <> {messageContextHolder} @@ -92,8 +85,14 @@ const ConfigExtraButtons = ({ ); }; - export default ConfigExtraButtons; diff --git a/packages/base/src/page/System/ProcessConnection/CodingSetting/components/ConfigField.tsx b/packages/base/src/page/System/ProcessConnection/CodingSetting/components/ConfigField.tsx index e9b28d086..95005a5c7 100644 --- a/packages/base/src/page/System/ProcessConnection/CodingSetting/components/ConfigField.tsx +++ b/packages/base/src/page/System/ProcessConnection/CodingSetting/components/ConfigField.tsx @@ -1,18 +1,19 @@ import { useTranslation } from 'react-i18next'; - -import { FormItemLabel } from '@actiontech/shared/lib/components/CustomForm'; -import { BasicInput } from '@actiontech/shared'; - +import { FormItemLabel } from '@actiontech/dms-kit'; +import { BasicInput } from '@actiontech/dms-kit'; const ConfigField = () => { const { t } = useTranslation(); - return ( <> { className="has-required-style" label={t('dmsSystem.codingDocking.accessToken')} name="token" - rules={[{ required: true }]} + rules={[ + { + required: true + } + ]} > { ); }; - export default ConfigField; diff --git a/packages/base/src/page/System/ProcessConnection/CodingSetting/index.tsx b/packages/base/src/page/System/ProcessConnection/CodingSetting/index.tsx index 5cd0fe061..23a20ed1a 100644 --- a/packages/base/src/page/System/ProcessConnection/CodingSetting/index.tsx +++ b/packages/base/src/page/System/ProcessConnection/CodingSetting/index.tsx @@ -2,12 +2,12 @@ import { useTranslation } from 'react-i18next'; import { useBoolean, useRequest } from 'ahooks'; import { useCallback, useMemo } from 'react'; import { Form, Spin, Typography } from 'antd'; -import { CustomLabelContent } from '@actiontech/shared/lib/components/CustomForm'; +import { CustomLabelContent } from '@actiontech/dms-kit'; import ConfigExtraButtons from './components/ConfigExtraButtons'; import ConfigField from './components/ConfigField'; import configuration from '@actiontech/shared/lib/api/sqle/service/configuration'; import { ICodingConfigurationV1 } from '@actiontech/shared/lib/api/sqle/service/common'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { FormFields } from './index.type'; import { switchFieldName } from './index.data'; import { @@ -20,7 +20,7 @@ import { ConfigSwitch, ConfigSubmitButtonField, useConfigSwitchControls -} from '@actiontech/shared'; +} from '@actiontech/dms-kit'; const CodingSetting: React.FC = () => { const { t } = useTranslation(); diff --git a/packages/base/src/page/System/ProcessConnection/DingTalkSetting/components/ConfigExtraButtons.tsx b/packages/base/src/page/System/ProcessConnection/DingTalkSetting/components/ConfigExtraButtons.tsx index 6f73baa04..0bff9198b 100644 --- a/packages/base/src/page/System/ProcessConnection/DingTalkSetting/components/ConfigExtraButtons.tsx +++ b/packages/base/src/page/System/ProcessConnection/DingTalkSetting/components/ConfigExtraButtons.tsx @@ -1,20 +1,16 @@ import { useTranslation } from 'react-i18next'; import { useRef } from 'react'; - import { message, Space } from 'antd'; -import { BasicToolTip, BasicButton } from '@actiontech/shared'; -import { ConfigModifyBtn } from '@actiontech/shared/lib/components/SystemConfigurationHub'; - +import { BasicToolTip, BasicButton } from '@actiontech/dms-kit'; +import { ConfigModifyBtn } from '@actiontech/dms-kit'; import configuration from '@actiontech/shared/lib/api/sqle/service/configuration'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { ThunderBoltFilled } from '@actiontech/icons'; - export interface ConfigExtraButtonsProps { isConfigClosed: boolean; extraButtonsVisible: boolean; handleClickModify: () => void; } - const ConfigExtraButtons = ({ isConfigClosed, extraButtonsVisible, @@ -22,7 +18,6 @@ const ConfigExtraButtons = ({ }: ConfigExtraButtonsProps) => { const { t } = useTranslation(); const [messageApi, messageContextHolder] = message.useMessage(); - const testTing = useRef(false); const testDingTalkConfiguration = () => { if (testTing.current) { @@ -46,7 +41,6 @@ const ConfigExtraButtons = ({ testTing.current = false; }); }; - return ( <> {messageContextHolder} @@ -66,5 +60,4 @@ const ConfigExtraButtons = ({ ); }; - export default ConfigExtraButtons; diff --git a/packages/base/src/page/System/ProcessConnection/DingTalkSetting/components/ConfigField.tsx b/packages/base/src/page/System/ProcessConnection/DingTalkSetting/components/ConfigField.tsx index 2d0bfe9c5..83f18bf91 100644 --- a/packages/base/src/page/System/ProcessConnection/DingTalkSetting/components/ConfigField.tsx +++ b/packages/base/src/page/System/ProcessConnection/DingTalkSetting/components/ConfigField.tsx @@ -1,18 +1,19 @@ import { useTranslation } from 'react-i18next'; - -import { FormItemLabel } from '@actiontech/shared/lib/components/CustomForm'; -import { BasicInput } from '@actiontech/shared'; - +import { FormItemLabel } from '@actiontech/dms-kit'; +import { BasicInput } from '@actiontech/dms-kit'; const ConfigField = () => { const { t } = useTranslation(); - return ( <> { className="has-required-style" label="AppSecret" name="appSecret" - rules={[{ required: true }]} + rules={[ + { + required: true + } + ]} > { ); }; - export default ConfigField; diff --git a/packages/base/src/page/System/ProcessConnection/DingTalkSetting/index.tsx b/packages/base/src/page/System/ProcessConnection/DingTalkSetting/index.tsx index 4263da11b..d3be5b6a1 100644 --- a/packages/base/src/page/System/ProcessConnection/DingTalkSetting/index.tsx +++ b/packages/base/src/page/System/ProcessConnection/DingTalkSetting/index.tsx @@ -2,19 +2,19 @@ import { useTranslation } from 'react-i18next'; import { useBoolean, useRequest } from 'ahooks'; import { useCallback, useMemo } from 'react'; import { Form, Spin, Typography } from 'antd'; -import { CustomLabelContent } from '@actiontech/shared/lib/components/CustomForm'; +import { CustomLabelContent } from '@actiontech/dms-kit'; import { ConfigSwitch, ConfigSubmitButtonField, useConfigRender, useConfigSwitchControls, ReadOnlyConfigColumnsType -} from '@actiontech/shared/lib/components/SystemConfigurationHub'; +} from '@actiontech/dms-kit'; import ConfigField from './components/ConfigField'; import ConfigExtraButtons from './components/ConfigExtraButtons'; import configuration from '@actiontech/shared/lib/api/sqle/service/configuration'; import { IDingTalkConfigurationV1 } from '@actiontech/shared/lib/api/sqle/service/common'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { FormFields } from './index.type'; import { defaultFormData, switchFieldName } from './index.data'; import { diff --git a/packages/base/src/page/System/ProcessConnection/LarkAuditSetting/components/ConfigExtraButtons.tsx b/packages/base/src/page/System/ProcessConnection/LarkAuditSetting/components/ConfigExtraButtons.tsx index b5e329998..c4b38cc04 100644 --- a/packages/base/src/page/System/ProcessConnection/LarkAuditSetting/components/ConfigExtraButtons.tsx +++ b/packages/base/src/page/System/ProcessConnection/LarkAuditSetting/components/ConfigExtraButtons.tsx @@ -7,31 +7,25 @@ import { RadioGroupProps, Space } from 'antd'; -import { formItemLayout } from '@actiontech/shared/lib/components/CustomForm/style'; -import { - FormItemLabel, - FormItemNoLabel -} from '@actiontech/shared/lib/components/CustomForm'; -import { BasicInput, EmptyBox } from '@actiontech/shared'; -import { phoneRule } from '@actiontech/shared/lib/utils/FormRule'; +import { formItemLayout } from '@actiontech/dms-kit/es/components/CustomForm/style'; +import { FormItemLabel, FormItemNoLabel } from '@actiontech/dms-kit'; +import { BasicInput, EmptyBox } from '@actiontech/dms-kit'; +import { phoneRule } from '@actiontech/dms-kit'; import { ConfigModifyBtn, ConfigTestBtn, ConfigTestPopoverForm -} from '@actiontech/shared/lib/components/SystemConfigurationHub'; - +} from '@actiontech/dms-kit'; import configuration from '@actiontech/shared/lib/api/sqle/service/configuration'; import { TestFeishuConfigurationReqV1AccountTypeEnum } from '@actiontech/shared/lib/api/sqle/service/common.enum'; import { TestFormFields } from '../index.type'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; - +import { ResponseCode } from '@actiontech/dms-kit'; export interface ConfigExtraButtonsProps { isConfigClosed: boolean; extraButtonsVisible: boolean; enabled: string | boolean; handleClickModify: () => void; } - const ConfigExtraButtons = ({ isConfigClosed, extraButtonsVisible, @@ -40,7 +34,6 @@ const ConfigExtraButtons = ({ }: ConfigExtraButtonsProps) => { const { t } = useTranslation(); const [message, messageContextHolder] = messageApi.useMessage(); - const [testForm] = Form.useForm(); const [testPopoverVisible, toggleTestPopoverVisible] = useState(false); const [receiveType, setReceiveType] = @@ -48,17 +41,14 @@ const ConfigExtraButtons = ({ TestFeishuConfigurationReqV1AccountTypeEnum.email ); const testing = useRef(false); - const testLarkAuditConfiguration = async () => { if (testing.current) { return; } const values = await testForm.validateFields(); - testing.current = true; toggleTestPopoverVisible(false); const hide = message.loading(t('dmsSystem.larkAudit.testing'), 0); - configuration .testFeishuAuditConfigV1({ account: @@ -84,18 +74,15 @@ const ConfigExtraButtons = ({ setReceiveType(TestFeishuConfigurationReqV1AccountTypeEnum.email); }); }; - const handleChangeReceiveType: RadioGroupProps['onChange'] = (e) => { const type = e.target.value; setReceiveType(type); - if (type === TestFeishuConfigurationReqV1AccountTypeEnum.email) { testForm.resetFields(['receivePhone']); } else { testForm.resetFields(['receiveEmail']); } }; - const onTestPopoverOpen = (open: boolean) => { if (!enabled) { return; @@ -106,7 +93,6 @@ const ConfigExtraButtons = ({ } toggleTestPopoverVisible(open); }; - return ( <> {messageContextHolder} @@ -129,7 +115,9 @@ const ConfigExtraButtons = ({ initialValue={ TestFeishuConfigurationReqV1AccountTypeEnum.email } - style={{ marginBottom: 0 }} + style={{ + marginBottom: 0 + }} > ); }; - export default ConfigExtraButtons; diff --git a/packages/base/src/page/System/ProcessConnection/LarkAuditSetting/components/ConfigField.tsx b/packages/base/src/page/System/ProcessConnection/LarkAuditSetting/components/ConfigField.tsx index d102a0dbb..55b2d76a2 100644 --- a/packages/base/src/page/System/ProcessConnection/LarkAuditSetting/components/ConfigField.tsx +++ b/packages/base/src/page/System/ProcessConnection/LarkAuditSetting/components/ConfigField.tsx @@ -1,7 +1,6 @@ import { useTranslation } from 'react-i18next'; -import { FormItemLabel } from '@actiontech/shared/lib/components/CustomForm'; -import { BasicInput } from '@actiontech/shared'; - +import { FormItemLabel } from '@actiontech/dms-kit'; +import { BasicInput } from '@actiontech/dms-kit'; const ConfigField = () => { const { t } = useTranslation(); return ( @@ -10,7 +9,11 @@ const ConfigField = () => { className="has-required-style" label="App ID" name="appKey" - rules={[{ required: true }]} + rules={[ + { + required: true + } + ]} > { className="has-required-style" label="App Secret" name="appSecret" - rules={[{ required: true }]} + rules={[ + { + required: true + } + ]} > { ); }; - export default ConfigField; diff --git a/packages/base/src/page/System/ProcessConnection/LarkAuditSetting/index.ee.tsx b/packages/base/src/page/System/ProcessConnection/LarkAuditSetting/index.ee.tsx index db0c55a16..27f4b1b79 100644 --- a/packages/base/src/page/System/ProcessConnection/LarkAuditSetting/index.ee.tsx +++ b/packages/base/src/page/System/ProcessConnection/LarkAuditSetting/index.ee.tsx @@ -8,14 +8,14 @@ import { useConfigRender, useConfigSwitchControls, ReadOnlyConfigColumnsType -} from '@actiontech/shared/lib/components/SystemConfigurationHub'; +} from '@actiontech/dms-kit'; import ConfigExtraButtons from './components/ConfigExtraButtons'; import ConfigField from './components/ConfigField'; -import { CustomLabelContent } from '@actiontech/shared/lib/components/CustomForm'; +import { CustomLabelContent } from '@actiontech/dms-kit'; import configuration from '@actiontech/shared/lib/api/sqle/service/configuration'; import { FormFields } from './index.type'; import { defaultFormData, switchFieldName } from './index.data'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { IFeishuConfigurationV1 } from '@actiontech/shared/lib/api/sqle/service/common'; import { PERMISSIONS, diff --git a/packages/base/src/page/System/ProcessConnection/WechatAuditSetting/components/ConfigExtraButtons.tsx b/packages/base/src/page/System/ProcessConnection/WechatAuditSetting/components/ConfigExtraButtons.tsx index 0ec97757f..19eb5b97f 100644 --- a/packages/base/src/page/System/ProcessConnection/WechatAuditSetting/components/ConfigExtraButtons.tsx +++ b/packages/base/src/page/System/ProcessConnection/WechatAuditSetting/components/ConfigExtraButtons.tsx @@ -1,25 +1,23 @@ import { useTranslation } from 'react-i18next'; import { useRef, useState } from 'react'; import { Form, message, Space } from 'antd'; -import { BasicInput } from '@actiontech/shared'; +import { BasicInput } from '@actiontech/dms-kit'; import { ConfigModifyBtn, ConfigTestBtn, ConfigTestPopoverForm -} from '@actiontech/shared/lib/components/SystemConfigurationHub'; +} from '@actiontech/dms-kit'; import configuration from '@actiontech/shared/lib/api/sqle/service/configuration'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { TestFormFields } from '../index.type'; -import { formItemLayout } from '@actiontech/shared/lib/components/CustomForm/style'; -import { FormItemLabel } from '@actiontech/shared/lib/components/CustomForm'; - +import { formItemLayout } from '@actiontech/dms-kit/es/components/CustomForm/style'; +import { FormItemLabel } from '@actiontech/dms-kit'; export interface ConfigExtraButtonsProps { isConfigClosed: boolean; extraButtonsVisible: boolean; handleClickModify: () => void; enabled: boolean; } - const ConfigExtraButtons = ({ isConfigClosed, extraButtonsVisible, @@ -29,22 +27,20 @@ const ConfigExtraButtons = ({ const { t } = useTranslation(); const [messageApi, messageContextHolder] = message.useMessage(); const [testForm] = Form.useForm(); - const testing = useRef(false); const [testPopoverVisible, toggleTestPopoverVisible] = useState(false); - const testWechatAuditConfiguration = async () => { if (testing.current) { return; } const values = await testForm.validateFields(); - testing.current = true; toggleTestPopoverVisible(false); const hide = messageApi.loading(t('dmsSystem.wechatAudit.testing'), 0); - configuration - .testWechatAuditConfigV1({ wechat_id: values.wechatUserID }) + .testWechatAuditConfigV1({ + wechat_id: values.wechatUserID + }) .then((res) => { if (res.data.code === ResponseCode.SUCCESS) { if (res.data.data?.is_message_sent_normally) { @@ -62,7 +58,6 @@ const ConfigExtraButtons = ({ testForm.resetFields(); }); }; - const onTestPopoverOpen = (open: boolean) => { if (!enabled) { return; @@ -72,7 +67,6 @@ const ConfigExtraButtons = ({ } toggleTestPopoverVisible(open); }; - return ( <> {messageContextHolder} @@ -92,8 +86,14 @@ const ConfigExtraButtons = ({ ); }; - export default ConfigExtraButtons; diff --git a/packages/base/src/page/System/ProcessConnection/WechatAuditSetting/components/ConfigField.tsx b/packages/base/src/page/System/ProcessConnection/WechatAuditSetting/components/ConfigField.tsx index 850bb1a7a..35967fecd 100644 --- a/packages/base/src/page/System/ProcessConnection/WechatAuditSetting/components/ConfigField.tsx +++ b/packages/base/src/page/System/ProcessConnection/WechatAuditSetting/components/ConfigField.tsx @@ -1,18 +1,19 @@ import { useTranslation } from 'react-i18next'; - -import { FormItemLabel } from '@actiontech/shared/lib/components/CustomForm'; -import { BasicInput } from '@actiontech/shared'; - +import { FormItemLabel } from '@actiontech/dms-kit'; +import { BasicInput } from '@actiontech/dms-kit'; const ConfigField = () => { const { t } = useTranslation(); - return ( <> { className="has-required-style" label={t('dmsSystem.wechatAudit.corpSecret')} name="corpSecret" - rules={[{ required: true }]} + rules={[ + { + required: true + } + ]} > { ); }; - export default ConfigField; diff --git a/packages/base/src/page/System/ProcessConnection/WechatAuditSetting/index.tsx b/packages/base/src/page/System/ProcessConnection/WechatAuditSetting/index.tsx index c908c5300..0db319c10 100644 --- a/packages/base/src/page/System/ProcessConnection/WechatAuditSetting/index.tsx +++ b/packages/base/src/page/System/ProcessConnection/WechatAuditSetting/index.tsx @@ -2,18 +2,18 @@ import { useTranslation } from 'react-i18next'; import { useBoolean, useRequest } from 'ahooks'; import { useCallback, useMemo } from 'react'; import { Form, Spin, Typography } from 'antd'; -import { CustomLabelContent } from '@actiontech/shared/lib/components/CustomForm'; +import { CustomLabelContent } from '@actiontech/dms-kit'; import { ConfigSwitch, ConfigSubmitButtonField, useConfigRender, useConfigSwitchControls, ReadOnlyConfigColumnsType -} from '@actiontech/shared/lib/components/SystemConfigurationHub'; +} from '@actiontech/dms-kit'; import ConfigExtraButtons from './components/ConfigExtraButtons'; import ConfigField from './components/ConfigField'; import configuration from '@actiontech/shared/lib/api/sqle/service/configuration'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { FormFields } from './index.type'; import { defaultFormData, switchFieldName } from './index.data'; import { IWechatConfigurationV1 } from '@actiontech/shared/lib/api/sqle/service/common'; diff --git a/packages/base/src/page/System/PushNotification/LarkSetting/conponents/ConfigExtraButtons.tsx b/packages/base/src/page/System/PushNotification/LarkSetting/conponents/ConfigExtraButtons.tsx index 6ee83dfa0..4a5f46a1a 100644 --- a/packages/base/src/page/System/PushNotification/LarkSetting/conponents/ConfigExtraButtons.tsx +++ b/packages/base/src/page/System/PushNotification/LarkSetting/conponents/ConfigExtraButtons.tsx @@ -2,31 +2,25 @@ import { useTranslation } from 'react-i18next'; import { useRef, useState } from 'react'; import { Form, message, Radio, RadioGroupProps, Space } from 'antd'; import { useForm } from 'antd/es/form/Form'; -import { formItemLayout } from '@actiontech/shared/lib/components/CustomForm/style'; -import { - FormItemLabel, - FormItemNoLabel -} from '@actiontech/shared/lib/components/CustomForm'; -import { BasicInput, EmptyBox } from '@actiontech/shared'; +import { formItemLayout } from '@actiontech/dms-kit/es/components/CustomForm/style'; +import { FormItemLabel, FormItemNoLabel } from '@actiontech/dms-kit'; +import { BasicInput, EmptyBox } from '@actiontech/dms-kit'; import { ConfigModifyBtn, ConfigTestBtn, ConfigTestPopoverForm -} from '@actiontech/shared/lib/components/SystemConfigurationHub'; -import { phoneRule } from '@actiontech/shared/lib/utils/FormRule'; - +} from '@actiontech/dms-kit'; +import { phoneRule } from '@actiontech/dms-kit'; import Configuration from '@actiontech/shared/lib/api/base/service/Configuration'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { TestFormFields } from '../index.type'; import { TestFeishuConfigurationAccountTypeEnum } from '@actiontech/shared/lib/api/base/service/common.enum'; - export interface ConfigExtraButtonsProps { enabled: string | boolean; isConfigClosed: boolean; extraButtonsVisible: boolean; handleClickModify: () => void; } - const ConfigExtraButtons = ({ enabled, isConfigClosed, @@ -35,14 +29,12 @@ const ConfigExtraButtons = ({ }: ConfigExtraButtonsProps) => { const { t } = useTranslation(); const [messageApi, messageContextHolder] = message.useMessage(); - const [testPopoverVisible, toggleTestPopoverVisible] = useState(false); const [testForm] = useForm(); const [receiveType, setReceiveType] = useState( TestFeishuConfigurationAccountTypeEnum.email ); - const testing = useRef(false); const testLarkConfiguration = async () => { if (testing.current) { @@ -80,7 +72,6 @@ const ConfigExtraButtons = ({ setReceiveType(TestFeishuConfigurationAccountTypeEnum.email); }); }; - const onTestPopoverOpen = (open: boolean) => { if (!enabled) { return; @@ -91,11 +82,9 @@ const ConfigExtraButtons = ({ } toggleTestPopoverVisible(open); }; - const handleChangeReceiveType: RadioGroupProps['onChange'] = (e) => { const type = e.target.value; setReceiveType(type); - if (type === TestFeishuConfigurationAccountTypeEnum.email) { testForm.resetFields(['receivePhone']); } else { @@ -120,7 +109,9 @@ const ConfigExtraButtons = ({ name="receiveType" label={t('dmsSystem.lark.receiveType')} initialValue={TestFeishuConfigurationAccountTypeEnum.email} - style={{ marginBottom: 0 }} + style={{ + marginBottom: 0 + }} > ); }; - export default ConfigExtraButtons; diff --git a/packages/base/src/page/System/PushNotification/LarkSetting/conponents/ConfigField.tsx b/packages/base/src/page/System/PushNotification/LarkSetting/conponents/ConfigField.tsx index d84aa0745..6aacd80ce 100644 --- a/packages/base/src/page/System/PushNotification/LarkSetting/conponents/ConfigField.tsx +++ b/packages/base/src/page/System/PushNotification/LarkSetting/conponents/ConfigField.tsx @@ -1,18 +1,19 @@ import { useTranslation } from 'react-i18next'; - -import { FormItemLabel } from '@actiontech/shared/lib/components/CustomForm'; -import { BasicInput } from '@actiontech/shared'; - +import { FormItemLabel } from '@actiontech/dms-kit'; +import { BasicInput } from '@actiontech/dms-kit'; const ConfigField = () => { const { t } = useTranslation(); - return ( <> { className="has-required-style" label="App Secret" name="appSecret" - rules={[{ required: true }]} + rules={[ + { + required: true + } + ]} > { ); }; - export default ConfigField; diff --git a/packages/base/src/page/System/PushNotification/LarkSetting/index.tsx b/packages/base/src/page/System/PushNotification/LarkSetting/index.tsx index 842c9f02b..4b30f387d 100644 --- a/packages/base/src/page/System/PushNotification/LarkSetting/index.tsx +++ b/packages/base/src/page/System/PushNotification/LarkSetting/index.tsx @@ -9,11 +9,11 @@ import { useConfigRender, useConfigSwitchControls, ReadOnlyConfigColumnsType -} from '@actiontech/shared/lib/components/SystemConfigurationHub'; +} from '@actiontech/dms-kit'; import ConfigExtraButtons from './conponents/ConfigExtraButtons'; import ConfigField from './conponents/ConfigField'; import Configuration from '@actiontech/shared/lib/api/base/service/Configuration'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { IFeishuConfigurationResData } from '@actiontech/shared/lib/api/base/service/common'; import { switchFieldName } from './index.data'; import { diff --git a/packages/base/src/page/System/PushNotification/SMTPSetting/components/ConfigExtraButtons.tsx b/packages/base/src/page/System/PushNotification/SMTPSetting/components/ConfigExtraButtons.tsx index b202ae15d..5cf2350e9 100644 --- a/packages/base/src/page/System/PushNotification/SMTPSetting/components/ConfigExtraButtons.tsx +++ b/packages/base/src/page/System/PushNotification/SMTPSetting/components/ConfigExtraButtons.tsx @@ -2,24 +2,22 @@ import { Form, message, Space } from 'antd'; import { useTranslation } from 'react-i18next'; import { useRef, useState } from 'react'; import { useForm } from 'antd/es/form/Form'; -import { formItemLayout } from '@actiontech/shared/lib/components/CustomForm/style'; -import { FormItemLabel } from '@actiontech/shared/lib/components/CustomForm'; -import { BasicInput } from '@actiontech/shared'; +import { formItemLayout } from '@actiontech/dms-kit/es/components/CustomForm/style'; +import { FormItemLabel } from '@actiontech/dms-kit'; +import { BasicInput } from '@actiontech/dms-kit'; import { ConfigModifyBtn, ConfigTestBtn, ConfigTestPopoverForm -} from '@actiontech/shared/lib/components/SystemConfigurationHub'; +} from '@actiontech/dms-kit'; import Configuration from '@actiontech/shared/lib/api/base/service/Configuration'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; - +import { ResponseCode } from '@actiontech/dms-kit'; export type typeConfigExtraButtons = { isConfigClosed: boolean; enabled: string | number | boolean; extraButtonsVisible: boolean; handleClickModify: () => void; }; - const ConfigExtraButtons = ({ isConfigClosed, enabled, @@ -27,14 +25,12 @@ const ConfigExtraButtons = ({ handleClickModify }: typeConfigExtraButtons) => { const { t } = useTranslation(); - const [messageApi, messageContextHolder] = message.useMessage(); - const [testForm] = useForm<{ receiveEmail?: string }>(); - + const [testForm] = useForm<{ + receiveEmail?: string; + }>(); const [testPopoverVisible, toggleTestPopoverVisible] = useState(false); - const testTing = useRef(false); - const onTestPopoverOpen = (open: boolean) => { if (!enabled) { return; @@ -44,7 +40,6 @@ const ConfigExtraButtons = ({ } toggleTestPopoverVisible(open); }; - const handleTest = async () => { if (testTing.current) { return; @@ -68,7 +63,9 @@ const ConfigExtraButtons = ({ const resData = res.data?.data; if (resData?.is_smtp_send_normal) { messageApi.success( - t('dmsSystem.smtp.testSuccess', { email: values.receiveEmail }) + t('dmsSystem.smtp.testSuccess', { + email: values.receiveEmail + }) ); testForm.resetFields(); } else { @@ -84,7 +81,6 @@ const ConfigExtraButtons = ({ testForm.resetFields(); }); }; - return ( <> {messageContextHolder} @@ -101,7 +97,9 @@ const ConfigExtraButtons = ({
); }; - export default ConfigExtraButtons; diff --git a/packages/base/src/page/System/PushNotification/SMTPSetting/components/ConfigField.tsx b/packages/base/src/page/System/PushNotification/SMTPSetting/components/ConfigField.tsx index f5048bd8c..7f6cad8ec 100644 --- a/packages/base/src/page/System/PushNotification/SMTPSetting/components/ConfigField.tsx +++ b/packages/base/src/page/System/PushNotification/SMTPSetting/components/ConfigField.tsx @@ -1,14 +1,9 @@ import { useTranslation } from 'react-i18next'; -import { BasicInput, BasicSwitch } from '@actiontech/shared'; -import { - CustomLabelContent, - FormItemLabel -} from '@actiontech/shared/lib/components/CustomForm'; -import { validatorPort } from '@actiontech/shared/lib/utils/FormRule'; - +import { BasicInput, BasicSwitch } from '@actiontech/dms-kit'; +import { CustomLabelContent, FormItemLabel } from '@actiontech/dms-kit'; +import { validatorPort } from '@actiontech/dms-kit'; const ConfigField = () => { const { t } = useTranslation(); - return ( <> { ); }; - export default ConfigField; diff --git a/packages/base/src/page/System/PushNotification/SMTPSetting/index.tsx b/packages/base/src/page/System/PushNotification/SMTPSetting/index.tsx index 444a93426..9af12cb9d 100644 --- a/packages/base/src/page/System/PushNotification/SMTPSetting/index.tsx +++ b/packages/base/src/page/System/PushNotification/SMTPSetting/index.tsx @@ -8,26 +8,24 @@ import { useConfigRender, useConfigSwitchControls, ReadOnlyConfigColumnsType -} from '@actiontech/shared/lib/components/SystemConfigurationHub'; +} from '@actiontech/dms-kit/es/components/SystemConfigurationHub'; import { SMTPSettingFormFields } from './index.type'; import { switchFieldName } from './index.data'; import { ISMTPConfigurationResData } from '@actiontech/shared/lib/api/base/service/common'; -import { BasicToolTip } from '@actiontech/shared'; +import { BasicToolTip } from '@actiontech/dms-kit'; import ConfigField from './components/ConfigField'; import ConfigExtraButtons from './components/ConfigExtraButtons'; import Configuration from '@actiontech/shared/lib/api/base/service/Configuration'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { InfoCircleOutlined } from '@actiontech/icons'; import useThemeStyleData from '../../../../hooks/useThemeStyleData'; import { PERMISSIONS, PermissionControl } from '@actiontech/shared/lib/features'; - const SMTPSetting = () => { const { t } = useTranslation(); const { baseTheme } = useThemeStyleData(); - const { form, renderConfigForm, @@ -40,7 +38,6 @@ const SMTPSetting = () => { switchFieldName, switchFieldLabel: t('dmsSystem.smtp.enable') }); - const { data: smtpInfo, refresh: refreshSMTPInfo, @@ -58,9 +55,7 @@ const SMTPSetting = () => { } } ); - const switchOpen = Form.useWatch(switchFieldName, form); - const readonlyColumnsConfig: ReadOnlyConfigColumnsType = useMemo(() => { return [ @@ -104,10 +99,8 @@ const SMTPSetting = () => { } ]; }, [t, smtpInfo, baseTheme]); - const [submitLoading, { setTrue: startSubmit, setFalse: submitFinish }] = useBoolean(); - const submit = (values: SMTPSettingFormFields) => { startSubmit(); Configuration.UpdateSMTPConfiguration({ @@ -131,11 +124,9 @@ const SMTPSetting = () => { submitFinish(); }); }; - const isConfigClosed = useMemo(() => { return !smtpInfo?.enable_smtp_notify; }, [smtpInfo]); - const setFormDefaultValue = useCallback(() => { form.setFieldsValue({ host: smtpInfo?.smtp_host, @@ -148,18 +139,15 @@ const SMTPSetting = () => { passwordConfirm: undefined }); }, [form, smtpInfo]); - const handleClickModify = useCallback(() => { setFormDefaultValue(); startModify(); }, [startModify, setFormDefaultValue]); - const handleClickCancel = () => { if (isConfigClosed) form.setFieldValue(switchFieldName, false); setFormDefaultValue(); modifyFinish(); }; - const { configSwitchPopoverOpenState, generateConfigSwitchPopoverTitle, @@ -167,7 +155,6 @@ const SMTPSetting = () => { handleConfigSwitchChange, hiddenConfigSwitchPopover } = useConfigSwitchControls(form, switchFieldName); - const onConfigSwitchPopoverConfirm = () => { if (isConfigClosed && modifyFlag) { handleClickCancel(); @@ -193,7 +180,6 @@ const SMTPSetting = () => { }); } }; - return (
@@ -247,5 +233,4 @@ const SMTPSetting = () => {
); }; - export default SMTPSetting; diff --git a/packages/base/src/page/System/PushNotification/WebhookSetting/components/ConfigExtraButtons.tsx b/packages/base/src/page/System/PushNotification/WebhookSetting/components/ConfigExtraButtons.tsx index b70e102a7..1e8a84494 100644 --- a/packages/base/src/page/System/PushNotification/WebhookSetting/components/ConfigExtraButtons.tsx +++ b/packages/base/src/page/System/PushNotification/WebhookSetting/components/ConfigExtraButtons.tsx @@ -1,12 +1,11 @@ import { useTranslation } from 'react-i18next'; import { useRef } from 'react'; import { message, Space } from 'antd'; -import { BasicButton, BasicToolTip } from '@actiontech/shared'; -import { ConfigModifyBtn } from '@actiontech/shared/lib/components/SystemConfigurationHub'; +import { BasicButton, BasicToolTip } from '@actiontech/dms-kit'; +import { ConfigModifyBtn } from '@actiontech/dms-kit'; import Configuration from '@actiontech/shared/lib/api/base/service/Configuration'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { ThunderBoltFilled } from '@actiontech/icons'; - export interface ConfigExtraButtonsProps { enabled: string | number | boolean; isConfigClosed: boolean; @@ -14,7 +13,6 @@ export interface ConfigExtraButtonsProps { handleClickModify: () => void; msgUrl: string; } - const ConfigExtraButtons = ({ enabled, isConfigClosed, @@ -24,23 +22,22 @@ const ConfigExtraButtons = ({ }: ConfigExtraButtonsProps) => { const { t } = useTranslation(); const [messageApi, messageContextHolder] = message.useMessage(); - const testTing = useRef(false); const test = () => { if (testTing.current) { return; } - testTing.current = true; const hide = messageApi.loading( - t('dmsSystem.webhook.testing', { url: msgUrl }), + t('dmsSystem.webhook.testing', { + url: msgUrl + }), 0 ); Configuration.TestWebHookConfiguration() .then((res) => { if (res.data.code === ResponseCode.SUCCESS) { const resData = res.data?.data; - if (resData?.is_message_sent_normally) { messageApi.success(t('dmsSystem.webhook.testSuccess')); } else { @@ -55,7 +52,6 @@ const ConfigExtraButtons = ({ testTing.current = false; }); }; - return ( <> {messageContextHolder} @@ -78,5 +74,4 @@ const ConfigExtraButtons = ({ ); }; - export default ConfigExtraButtons; diff --git a/packages/base/src/page/System/PushNotification/WebhookSetting/components/ConfigField.tsx b/packages/base/src/page/System/PushNotification/WebhookSetting/components/ConfigField.tsx index 845838d34..6889ab4c2 100644 --- a/packages/base/src/page/System/PushNotification/WebhookSetting/components/ConfigField.tsx +++ b/packages/base/src/page/System/PushNotification/WebhookSetting/components/ConfigField.tsx @@ -1,11 +1,8 @@ import { useTranslation } from 'react-i18next'; - -import { BasicInput, BasicInputNumber } from '@actiontech/shared'; -import { FormItemLabel } from '@actiontech/shared/lib/components/CustomForm'; - +import { BasicInput, BasicInputNumber } from '@actiontech/dms-kit'; +import { FormItemLabel } from '@actiontech/dms-kit'; const ConfigField = () => { const { t } = useTranslation(); - return ( <> { ); }; - export default ConfigField; diff --git a/packages/base/src/page/System/PushNotification/WebhookSetting/index.tsx b/packages/base/src/page/System/PushNotification/WebhookSetting/index.tsx index 3772a0416..f6f7061c0 100644 --- a/packages/base/src/page/System/PushNotification/WebhookSetting/index.tsx +++ b/packages/base/src/page/System/PushNotification/WebhookSetting/index.tsx @@ -9,13 +9,13 @@ import { useConfigRender, useConfigSwitchControls, ReadOnlyConfigColumnsType -} from '@actiontech/shared/lib/components/SystemConfigurationHub'; +} from '@actiontech/dms-kit'; import ConfigExtraButtons from './components/ConfigExtraButtons'; import ConfigField from './components/ConfigField'; import Configuration from '@actiontech/shared/lib/api/base/service/Configuration'; import { IWebHookConfigurationData } from '@actiontech/shared/lib/api/base/service/common'; import { WebhookFormFields } from './index.type'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { PERMISSIONS, PermissionControl diff --git a/packages/base/src/page/System/PushNotification/Wechat/components/ConfigExtraButtons.tsx b/packages/base/src/page/System/PushNotification/Wechat/components/ConfigExtraButtons.tsx index 646bb5e00..bf82ba713 100644 --- a/packages/base/src/page/System/PushNotification/Wechat/components/ConfigExtraButtons.tsx +++ b/packages/base/src/page/System/PushNotification/Wechat/components/ConfigExtraButtons.tsx @@ -1,28 +1,21 @@ import { useTranslation } from 'react-i18next'; import { useRef, useState } from 'react'; - import { Form, message, Space } from 'antd'; -import { formItemLayout } from '@actiontech/shared/lib/components/CustomForm/style'; -import { - CustomLabelContent, - FormItemLabel -} from '@actiontech/shared/lib/components/CustomForm'; +import { formItemLayout } from '@actiontech/dms-kit/es/components/CustomForm/style'; +import { CustomLabelContent, FormItemLabel } from '@actiontech/dms-kit'; import { ConfigModifyBtn, ConfigTestBtn, ConfigTestPopoverForm -} from '@actiontech/shared/lib/components/SystemConfigurationHub'; -import { BasicInput } from '@actiontech/shared'; - +} from '@actiontech/dms-kit'; +import { BasicInput } from '@actiontech/dms-kit'; import Configuration from '@actiontech/shared/lib/api/base/service/Configuration'; - export type typeConfigExtraButtons = { extraButtonsVisible: boolean; isConfigClosed: boolean; enabled: string | boolean | undefined; handleClickModify: () => void; }; - const ConfigExtraButtons = ({ extraButtonsVisible, isConfigClosed, @@ -31,8 +24,9 @@ const ConfigExtraButtons = ({ }: typeConfigExtraButtons) => { const { t } = useTranslation(); const [messageApi, messageContextHolder] = message.useMessage(); - const [testForm] = Form.useForm<{ receiveId?: string }>(); - + const [testForm] = Form.useForm<{ + receiveId?: string; + }>(); const [testPopoverVisible, toggleTestPopoverVisible] = useState(false); const testTing = useRef(false); const test = async () => { @@ -40,11 +34,12 @@ const ConfigExtraButtons = ({ return; } const values = await testForm.validateFields(); - testTing.current = true; toggleTestPopoverVisible(false); const hide = messageApi.loading( - t('dmsSystem.wechat.testing', { id: values.receiveId }), + t('dmsSystem.wechat.testing', { + id: values.receiveId + }), 0 ); Configuration.TestWeChatConfiguration({ @@ -68,7 +63,6 @@ const ConfigExtraButtons = ({ testForm.resetFields(); }); }; - const onTestPopoverOpen = (open: boolean) => { if (!enabled) { return; @@ -78,7 +72,6 @@ const ConfigExtraButtons = ({ } toggleTestPopoverVisible(open); }; - return ( <> {messageContextHolder} @@ -100,7 +93,9 @@ const ConfigExtraButtons = ({ tips={t('dmsSystem.wechat.receiveWechatTips')} /> } - style={{ marginBottom: 0 }} + style={{ + marginBottom: 0 + }} name="receiveId" rules={[ { @@ -130,5 +125,4 @@ const ConfigExtraButtons = ({ ); }; - export default ConfigExtraButtons; diff --git a/packages/base/src/page/System/PushNotification/Wechat/components/ConfigField.tsx b/packages/base/src/page/System/PushNotification/Wechat/components/ConfigField.tsx index 1b73c534e..4e64fe7ab 100644 --- a/packages/base/src/page/System/PushNotification/Wechat/components/ConfigField.tsx +++ b/packages/base/src/page/System/PushNotification/Wechat/components/ConfigField.tsx @@ -1,11 +1,8 @@ import { useTranslation } from 'react-i18next'; - -import { BasicInput, BasicSwitch } from '@actiontech/shared'; -import { FormItemLabel } from '@actiontech/shared/lib/components/CustomForm'; - +import { BasicInput, BasicSwitch } from '@actiontech/dms-kit'; +import { FormItemLabel } from '@actiontech/dms-kit'; const ConfigField = () => { const { t } = useTranslation(); - return ( <> { ); }; - export default ConfigField; diff --git a/packages/base/src/page/System/PushNotification/Wechat/index.tsx b/packages/base/src/page/System/PushNotification/Wechat/index.tsx index 8aeb40c78..9493f0cb5 100644 --- a/packages/base/src/page/System/PushNotification/Wechat/index.tsx +++ b/packages/base/src/page/System/PushNotification/Wechat/index.tsx @@ -9,11 +9,11 @@ import { useConfigRender, useConfigSwitchControls, ReadOnlyConfigColumnsType -} from '@actiontech/shared/lib/components/SystemConfigurationHub'; +} from '@actiontech/dms-kit'; import ConfigExtraButtons from './components/ConfigExtraButtons'; import ConfigField from './components/ConfigField'; import Configuration from '@actiontech/shared/lib/api/base/service/Configuration'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { WechatFormFields } from './index.type'; import { IWeChatConfigurationResData } from '@actiontech/shared/lib/api/base/service/common'; import { diff --git a/packages/base/src/page/System/components/BasicTitle/index.tsx b/packages/base/src/page/System/components/BasicTitle/index.tsx index d258700a9..b04a5dcac 100644 --- a/packages/base/src/page/System/components/BasicTitle/index.tsx +++ b/packages/base/src/page/System/components/BasicTitle/index.tsx @@ -1,20 +1,17 @@ import { ReactNode } from 'react'; import { Space, Row } from 'antd'; -import { BasicToolTip } from '@actiontech/shared'; +import { BasicToolTip } from '@actiontech/dms-kit'; import { InfoCircleOutlined } from '@actiontech/icons'; import useThemeStyleData from '../../../../hooks/useThemeStyleData'; - export type SystemBasicTitleProps = { title: ReactNode | string; titleTip?: ReactNode | string; titleExtra?: ReactNode | string; children: ReactNode | string; }; - const SystemBasicTitle = (props: SystemBasicTitleProps) => { const { title, children, titleTip, titleExtra } = props; const { baseTheme } = useThemeStyleData(); - return (
{
); }; - export default SystemBasicTitle; diff --git a/packages/base/src/page/System/index.ce.test.tsx b/packages/base/src/page/System/index.ce.test.tsx index e23fb3aa0..240c5f3f4 100644 --- a/packages/base/src/page/System/index.ce.test.tsx +++ b/packages/base/src/page/System/index.ce.test.tsx @@ -9,7 +9,7 @@ import { baseSuperRender } from '../../testUtils/superRender'; import system from '@actiontech/shared/lib/testUtil/mockApi/base/system'; import dms from '@actiontech/shared/lib/testUtil/mockApi/base/global'; -import { DMS_DEFAULT_WEB_TITLE } from '@actiontech/shared/lib/data/common'; +import { DMS_DEFAULT_WEB_TITLE } from '@actiontech/dms-kit'; import { getAllBySelector } from '@actiontech/shared/lib/testUtil/customQuery'; describe('base/System-ee', () => { diff --git a/packages/base/src/page/System/index.test.tsx b/packages/base/src/page/System/index.test.tsx index f1e6591b2..c4cf691df 100644 --- a/packages/base/src/page/System/index.test.tsx +++ b/packages/base/src/page/System/index.test.tsx @@ -4,7 +4,7 @@ import { cleanup, act, fireEvent, screen } from '@testing-library/react'; import { baseSuperRender } from '../../testUtils/superRender'; import system from '@actiontech/shared/lib/testUtil/mockApi/base/system'; import dms from '@actiontech/shared/lib/testUtil/mockApi/base/global'; -import { DMS_DEFAULT_WEB_TITLE } from '@actiontech/shared/lib/data/common'; +import { DMS_DEFAULT_WEB_TITLE } from '@actiontech/dms-kit'; import { ModalName } from '../../data/ModalName'; import { getAllBySelector } from '@actiontech/shared/lib/testUtil/customQuery'; import { mockUseCurrentUser } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentUser'; diff --git a/packages/base/src/page/System/index.tsx b/packages/base/src/page/System/index.tsx index a65e62b18..a3247f5eb 100644 --- a/packages/base/src/page/System/index.tsx +++ b/packages/base/src/page/System/index.tsx @@ -2,7 +2,8 @@ import { useCallback, useEffect, useMemo, useState } from 'react'; import { useDispatch } from 'react-redux'; import { useTranslation } from 'react-i18next'; import { Row } from 'antd'; -import { BasicSegmented, PageHeader, useTypedQuery } from '@actiontech/shared'; +import { BasicSegmented, PageHeader } from '@actiontech/dms-kit'; +import { useTypedQuery } from '@actiontech/shared'; import { SystemStyleWrapper } from './style'; import { initSystemModalStatus } from '../../store/system'; import { ModalName } from '../../data/ModalName'; @@ -15,14 +16,11 @@ import License from './License'; import PersonalizeSetting from './PersonalizeSetting'; import GitSSHConfig from './GitSSHConfig'; import DatabaseAccountPasswordPolicyForm from './DatabaseAccountPasswordPolicy'; -import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths'; - +import { ROUTE_PATHS } from '@actiontech/dms-kit'; const System = () => { const { t } = useTranslation(); - const dispatch = useDispatch(); const extractQueries = useTypedQuery(); - const options = useMemo( () => [ // #if [sqle] @@ -43,7 +41,6 @@ const System = () => { value: SystemSegmentedKeyEnum.LoginConnection, components: }, - // #if [sqle] { label: t('dmsSystem.tabPaneTitle.globalConfiguration'), @@ -79,13 +76,10 @@ const System = () => { ], [t] ); - const [activeTabKey, setActiveTabKey] = useState(options[0].value); - const renderActiveTab = useCallback(() => { return options.find((item) => item.value === activeTabKey)?.components; }, [activeTabKey, options]); - useEffect(() => { const urlSearchParams = extractQueries(ROUTE_PATHS.BASE.SYSTEM.index); if (urlSearchParams && urlSearchParams.active_tab) { @@ -122,5 +116,4 @@ const System = () => { ); }; - export default System; diff --git a/packages/base/src/page/Transit/index.tsx b/packages/base/src/page/Transit/index.tsx index bcf06a7a4..a76d8339a 100644 --- a/packages/base/src/page/Transit/index.tsx +++ b/packages/base/src/page/Transit/index.tsx @@ -1,80 +1,78 @@ /* eslint-disable no-console */ import { useEffect } from 'react'; -import { - HeaderProgress, - useTypedNavigate, - useTypedQuery -} from '@actiontech/shared'; +import { HeaderProgress } from '@actiontech/dms-kit'; +import { useTypedNavigate, useTypedQuery } from '@actiontech/shared'; import { useCurrentUser } from '@actiontech/shared/lib/features'; -import { TRANSIT_FROM_CONSTANT } from '@actiontech/shared/lib/data/common'; -import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths'; +import { TRANSIT_FROM_CONSTANT } from '@actiontech/dms-kit'; +import { ROUTE_PATHS } from '@actiontech/dms-kit'; import { parse2ReactRouterPath } from '@actiontech/shared/lib/components/TypedRouter/utils'; - const TARGET_DATA = (projectID: string): Record => { return { create_workflow: parse2ReactRouterPath( ROUTE_PATHS.SQLE.SQL_EXEC_WORKFLOW.create, - { params: { projectID } } + { + params: { + projectID + } + } ) }; }; - const Transit: React.FC = () => { const navigate = useTypedNavigate(); const { bindProjects } = useCurrentUser(); const extractQueries = useTypedQuery(); - useEffect(() => { const searchParams = extractQueries(ROUTE_PATHS.BASE.TRANSIT.index); - const from = searchParams?.from; const to = searchParams?.to; const compressionData = searchParams?.compression_data; const projectName = searchParams?.project_name; - if (!from || !to || !compressionData) { console.error( `Missing required parameters!\n from=${from}\n to=${to}\n compression_data=${compressionData}` ); - navigate(ROUTE_PATHS.BASE.HOME, { replace: true }); + navigate(ROUTE_PATHS.BASE.HOME, { + replace: true + }); return; } - if (!Object.keys(TRANSIT_FROM_CONSTANT).includes(from)) { console.error(`Unknown source: ${from}`); - navigate(ROUTE_PATHS.BASE.HOME, { replace: true }); + navigate(ROUTE_PATHS.BASE.HOME, { + replace: true + }); return; } - if (projectName) { const projectID = bindProjects.find( (v) => v.project_name === projectName )?.project_id; - if (!projectID) { console.error(`Not found project: ${projectName}`); - navigate(ROUTE_PATHS.BASE.HOME, { replace: true }); + navigate(ROUTE_PATHS.BASE.HOME, { + replace: true + }); return; } - const path = TARGET_DATA(projectID)[to!]; - if (!path) { console.error(`Not found target path: ${to}`); - navigate(ROUTE_PATHS.BASE.HOME, { replace: true }); + navigate(ROUTE_PATHS.BASE.HOME, { + replace: true + }); return; } - navigate(`${path}?from=${from}&compression_data=${compressionData}`, { replace: true }); } else { console.error(`project name is undefined`); - navigate(ROUTE_PATHS.BASE.HOME, { replace: true }); + navigate(ROUTE_PATHS.BASE.HOME, { + replace: true + }); } }, [bindProjects, navigate, extractQueries]); - return ; }; - export default Transit; diff --git a/packages/base/src/page/UserCenter/Drawer/Role/AddRole/index.tsx b/packages/base/src/page/UserCenter/Drawer/Role/AddRole/index.tsx index 6c2836614..4af957c80 100644 --- a/packages/base/src/page/UserCenter/Drawer/Role/AddRole/index.tsx +++ b/packages/base/src/page/UserCenter/Drawer/Role/AddRole/index.tsx @@ -10,25 +10,18 @@ import { useBoolean } from 'ahooks'; import EmitterKey from '../../../../../data/EmitterKey'; import EventEmitter from '../../../../../utils/EventEmitter'; import { updateUserManageModalStatus } from '../../../../../store/userCenter'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import Role from '@actiontech/shared/lib/api/base/service/Role'; -import { BasicDrawer, BasicButton } from '@actiontech/shared'; - +import { BasicDrawer, BasicButton } from '@actiontech/dms-kit'; const AddRole = () => { const [form] = Form.useForm(); - const [messageApi, contextHolder] = message.useMessage(); - const { t } = useTranslation(); - const dispatch = useDispatch(); - const [createLoading, { setTrue, setFalse }] = useBoolean(); - const visible = useSelector( (state) => !!state.userCenter.modalStatus[ModalName.DMS_Add_Role] ); - const onClose = useCallback(() => { form.resetFields(); dispatch( @@ -38,7 +31,6 @@ const AddRole = () => { }) ); }, [dispatch, form]); - const addRole = useCallback(async () => { const values = await form.validateFields(); setTrue(); @@ -64,7 +56,6 @@ const AddRole = () => { setFalse(); }); }, [onClose, form, setFalse, setTrue, t, messageApi]); - return ( { ); }; - export default AddRole; diff --git a/packages/base/src/page/UserCenter/Drawer/Role/CloneRole/index.tsx b/packages/base/src/page/UserCenter/Drawer/Role/CloneRole/index.tsx index fc73ac132..5093929c1 100644 --- a/packages/base/src/page/UserCenter/Drawer/Role/CloneRole/index.tsx +++ b/packages/base/src/page/UserCenter/Drawer/Role/CloneRole/index.tsx @@ -10,30 +10,22 @@ import { useBoolean } from 'ahooks'; import EmitterKey from '../../../../../data/EmitterKey'; import EventEmitter from '../../../../../utils/EventEmitter'; import { updateUserManageModalStatus } from '../../../../../store/userCenter'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import Role from '@actiontech/shared/lib/api/base/service/Role'; -import { BasicDrawer, BasicButton } from '@actiontech/shared'; +import { BasicDrawer, BasicButton } from '@actiontech/dms-kit'; import { IListRole } from '@actiontech/shared/lib/api/base/service/common'; - const CloneRole = () => { const [form] = Form.useForm(); - const [messageApi, contextHolder] = message.useMessage(); - const { t } = useTranslation(); - const dispatch = useDispatch(); - const [createLoading, { setTrue, setFalse }] = useBoolean(); - const visible = useSelector( (state) => !!state.userCenter.modalStatus[ModalName.DMS_Clone_Role] ); - const currentRole = useSelector( (state) => state.userCenter.selectRole ); - const onClose = useCallback(() => { form.resetFields(); dispatch( @@ -43,7 +35,6 @@ const CloneRole = () => { }) ); }, [dispatch, form]); - const cloneRole = useCallback(async () => { const values = await form.validateFields(); setTrue(); @@ -69,7 +60,6 @@ const CloneRole = () => { setFalse(); }); }, [onClose, form, setFalse, setTrue, t, messageApi]); - useEffect(() => { if (visible && currentRole) { form.setFieldsValue({ @@ -79,7 +69,6 @@ const CloneRole = () => { }); } }, [visible, currentRole, form]); - return ( { ); }; - export default CloneRole; diff --git a/packages/base/src/page/UserCenter/Drawer/Role/RoleForm/index.tsx b/packages/base/src/page/UserCenter/Drawer/Role/RoleForm/index.tsx index 3c3b1a4fe..9821be8ac 100644 --- a/packages/base/src/page/UserCenter/Drawer/Role/RoleForm/index.tsx +++ b/packages/base/src/page/UserCenter/Drawer/Role/RoleForm/index.tsx @@ -1,31 +1,26 @@ import React, { useEffect } from 'react'; import { useTranslation } from 'react-i18next'; import { Form, Switch, Spin } from 'antd'; -import { EmptyBox, BasicInput } from '@actiontech/shared'; -import { roleNameRule } from '@actiontech/shared/lib/utils/FormRule'; +import { EmptyBox, BasicInput } from '@actiontech/dms-kit'; +import { roleNameRule } from '@actiontech/dms-kit'; import { IRoleFormProps } from './index.type'; import { ListOpPermissionsFilterByTargetEnum } from '@actiontech/shared/lib/api/base/service/OpPermission/index.enum'; import useOpPermission from '../../../../../hooks/useOpPermission'; import OpPermissionCheckboxGroup from './components/OpPermissionCheckboxGroup'; import { RoleFormAlertStyleWrapper } from './style'; - const RoleForm: React.FC = (props) => { const { t } = useTranslation(); - const name = Form.useWatch('name', props.form); - const { loading: getOpPermissionListLoading, updateOpPermissionList, opPermissionList } = useOpPermission(); - useEffect(() => { if (props.visible) { updateOpPermissionList(ListOpPermissionsFilterByTargetEnum.member); } }, [updateOpPermissionList, props.visible]); - return ( = (props) => { = (props) => { ); }; - export default RoleForm; diff --git a/packages/base/src/page/UserCenter/Drawer/Role/UpdateRole/index.tsx b/packages/base/src/page/UserCenter/Drawer/Role/UpdateRole/index.tsx index f99e2273d..34740db17 100644 --- a/packages/base/src/page/UserCenter/Drawer/Role/UpdateRole/index.tsx +++ b/packages/base/src/page/UserCenter/Drawer/Role/UpdateRole/index.tsx @@ -11,30 +11,22 @@ import EmitterKey from '../../../../../data/EmitterKey'; import EventEmitter from '../../../../../utils/EventEmitter'; import { updateUserManageModalStatus } from '../../../../../store/userCenter'; import { IListRole } from '@actiontech/shared/lib/api/base/service/common'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import Role from '@actiontech/shared/lib/api/base/service/Role'; import { ListRoleStatEnum } from '@actiontech/shared/lib/api/base/service/common.enum'; -import { BasicDrawer, BasicButton } from '@actiontech/shared'; - +import { BasicDrawer, BasicButton } from '@actiontech/dms-kit'; const UpdateRole = () => { const [form] = Form.useForm(); - const { t } = useTranslation(); - const dispatch = useDispatch(); - const [messageApi, contextHolder] = message.useMessage(); - const [updateLoading, { setTrue, setFalse }] = useBoolean(); - const visible = useSelector( (state) => !!state.userCenter.modalStatus[ModalName.DMS_Update_Role] ); - const currentRole = useSelector( (state) => state.userCenter.selectRole ); - const onClose = useCallback(() => { form.resetFields(); dispatch( @@ -44,7 +36,6 @@ const UpdateRole = () => { }) ); }, [dispatch, form]); - const updateRole = useCallback(async () => { const values = await form.validateFields(); setTrue(); @@ -71,7 +62,6 @@ const UpdateRole = () => { setFalse(); }); }, [onClose, currentRole?.uid, form, setFalse, setTrue, t, messageApi]); - useEffect(() => { if (visible) { form.setFieldsValue({ @@ -82,7 +72,6 @@ const UpdateRole = () => { }); } }, [visible, currentRole, form]); - return ( { ); }; - export default UpdateRole; diff --git a/packages/base/src/page/UserCenter/Drawer/User/AddUser/index.tsx b/packages/base/src/page/UserCenter/Drawer/User/AddUser/index.tsx index d523f0f53..33ee4a899 100644 --- a/packages/base/src/page/UserCenter/Drawer/User/AddUser/index.tsx +++ b/packages/base/src/page/UserCenter/Drawer/User/AddUser/index.tsx @@ -6,30 +6,23 @@ import { useDispatch, useSelector } from 'react-redux'; import { ModalName } from '../../../../../data/ModalName'; import { IReduxState } from '../../../../../store'; import { updateUserManageModalStatus } from '../../../../../store/userCenter'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import EmitterKey from '../../../../../data/EmitterKey'; import UserForm from '../UserForm'; import { IUserFormFields } from '../UserForm/index.type'; import EventEmitter from '../../../../../utils/EventEmitter'; -import { BasicDrawer, BasicButton } from '@actiontech/shared'; +import { BasicDrawer, BasicButton } from '@actiontech/dms-kit'; import User from '@actiontech/shared/lib/api/base/service/User'; import dayjs from 'dayjs'; - const AddUser = () => { const [form] = Form.useForm(); - const { t } = useTranslation(); - const dispatch = useDispatch(); - const [createLoading, { setTrue, setFalse }] = useBoolean(); - const visible = useSelector( (state) => !!state.userCenter.modalStatus[ModalName.DMS_Add_User] ); - const [messageApi, contextHolder] = message.useMessage(); - const onClose = useCallback(() => { form.resetFields(); dispatch( @@ -39,7 +32,6 @@ const AddUser = () => { }) ); }, [dispatch, form]); - const addUser = useCallback(async () => { const values = await form.validateFields(); setTrue(); @@ -71,7 +63,6 @@ const AddUser = () => { setFalse(); }); }, [onClose, form, setFalse, setTrue, t, messageApi]); - return ( { ); }; - export default AddUser; diff --git a/packages/base/src/page/UserCenter/Drawer/User/UpdateUser/index.tsx b/packages/base/src/page/UserCenter/Drawer/User/UpdateUser/index.tsx index d15bc1202..125c28322 100644 --- a/packages/base/src/page/UserCenter/Drawer/User/UpdateUser/index.tsx +++ b/packages/base/src/page/UserCenter/Drawer/User/UpdateUser/index.tsx @@ -9,7 +9,7 @@ import UserForm from '../UserForm'; import { IUserFormFields } from '../UserForm/index.type'; import { ModalName } from '../../../../../data/ModalName'; import { updateUserManageModalStatus } from '../../../../../store/userCenter'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import EventEmitter from '../../../../../utils/EventEmitter'; import { IListUser, @@ -17,28 +17,20 @@ import { } from '@actiontech/shared/lib/api/base/service/common'; import User from '@actiontech/shared/lib/api/base/service/User'; import { ListUserStatEnum } from '@actiontech/shared/lib/api/base/service/common.enum'; -import { BasicDrawer, BasicButton } from '@actiontech/shared'; -import { SystemRole } from '@actiontech/shared/lib/enum'; - +import { BasicDrawer, BasicButton } from '@actiontech/dms-kit'; +import { SystemRole } from '@actiontech/dms-kit'; const UpdateUser = () => { const [form] = Form.useForm(); - const { t } = useTranslation(); - const dispatch = useDispatch(); - const [updateLoading, { setTrue, setFalse }] = useBoolean(); - const visible = useSelector( (state) => !!state.userCenter.modalStatus[ModalName.DMS_Update_User] ); - const currentUser = useSelector( (state) => state.userCenter.selectUser ); - const [messageApi, contextHolder] = message.useMessage(); - const onClose = useCallback(() => { form.resetFields(); dispatch( @@ -48,10 +40,8 @@ const UpdateUser = () => { }) ); }, [dispatch, form]); - const updateUser = async () => { const values = await form.validateFields(); - const userParams: IUpdateUser = { password: values.passwordConfirm, email: values.email ?? '', @@ -63,7 +53,6 @@ const UpdateUser = () => { is_disabled: values.username !== 'admin' ? !!values.isDisabled : false }; setTrue(); - User.UpdateUser({ user_uid: currentUser?.uid ?? '', user: userParams @@ -83,7 +72,6 @@ const UpdateUser = () => { setFalse(); }); }; - useEffect(() => { if (visible) { form.setFieldsValue({ @@ -100,7 +88,6 @@ const UpdateUser = () => { }); } }, [visible, currentUser, form]); - return ( { ); }; - export default UpdateUser; diff --git a/packages/base/src/page/UserCenter/Drawer/User/UserForm/index.tsx b/packages/base/src/page/UserCenter/Drawer/User/UserForm/index.tsx index 2670c0d1e..ad0f9b804 100644 --- a/packages/base/src/page/UserCenter/Drawer/User/UserForm/index.tsx +++ b/packages/base/src/page/UserCenter/Drawer/User/UserForm/index.tsx @@ -1,28 +1,24 @@ import { IUserFormProps } from './index.type'; import { Form, Switch } from 'antd'; -import { BasicInput, BasicSelect, EmptyBox } from '@actiontech/shared'; +import { BasicInput, BasicSelect, EmptyBox } from '@actiontech/dms-kit'; import React, { useEffect } from 'react'; import { useTranslation } from 'react-i18next'; -import { phoneRule } from '@actiontech/shared/lib/utils/FormRule'; -import { BasicToolTip } from '@actiontech/shared'; +import { phoneRule } from '@actiontech/dms-kit'; +import { BasicToolTip } from '@actiontech/dms-kit'; import useOpPermission from '../../../../../hooks/useOpPermission'; import { ListOpPermissionsFilterByTargetEnum } from '@actiontech/shared/lib/api/base/service/OpPermission/index.enum'; - const UserForm: React.FC = (props) => { const { t } = useTranslation(); - const { loading: getOpPermissionListLoading, opPermissionOptions, updateOpPermissionList } = useOpPermission(); - useEffect(() => { if (props.visible) { updateOpPermissionList(ListOpPermissionsFilterByTargetEnum.user); } }, [updateOpPermissionList, props.visible]); - return (
= (props) => { ); }; - export default UserForm; diff --git a/packages/base/src/page/UserCenter/__tests__/index.test.tsx b/packages/base/src/page/UserCenter/__tests__/index.test.tsx index 98022e43e..78786903e 100644 --- a/packages/base/src/page/UserCenter/__tests__/index.test.tsx +++ b/packages/base/src/page/UserCenter/__tests__/index.test.tsx @@ -6,7 +6,7 @@ import userCenter from '@actiontech/shared/lib/testUtil/mockApi/base/userCenter' import { useDispatch } from 'react-redux'; import { ModalName } from '../../../data/ModalName'; import { mockUseCurrentUser } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentUser'; -import { SystemRole } from '@actiontech/shared/lib/enum'; +import { SystemRole } from '@actiontech/dms-kit'; jest.mock('react-redux', () => { return { diff --git a/packages/base/src/page/UserCenter/action.tsx b/packages/base/src/page/UserCenter/action.tsx index 2d2822173..794604849 100644 --- a/packages/base/src/page/UserCenter/action.tsx +++ b/packages/base/src/page/UserCenter/action.tsx @@ -8,7 +8,6 @@ import { ActionButton } from '@actiontech/shared'; import { t } from '../../locale'; import { ModalName } from '../../data/ModalName'; import { PlusOutlined } from '@actiontech/icons'; - export const UserCenterPageHeaderActions = ( activePage: UserCenterListEnum, handleClick: (modalName: ModalName) => void diff --git a/packages/base/src/page/UserCenter/components/RoleList/List.tsx b/packages/base/src/page/UserCenter/components/RoleList/List.tsx index 103b51e0e..cc35e14d2 100644 --- a/packages/base/src/page/UserCenter/components/RoleList/List.tsx +++ b/packages/base/src/page/UserCenter/components/RoleList/List.tsx @@ -8,7 +8,7 @@ import { useTableRequestParams, TableToolbar } from '@actiontech/shared/lib/components/ActiontechTable'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { IListRole } from '@actiontech/shared/lib/api/base/service/common'; import Role from '@actiontech/shared/lib/api/base/service/Role'; import { ModalName } from '../../../../data/ModalName'; diff --git a/packages/base/src/page/UserCenter/components/RoleList/column.tsx b/packages/base/src/page/UserCenter/components/RoleList/column.tsx index 8006fa2a2..bb9b3d242 100644 --- a/packages/base/src/page/UserCenter/components/RoleList/column.tsx +++ b/packages/base/src/page/UserCenter/components/RoleList/column.tsx @@ -6,7 +6,7 @@ import { t } from '../../../../locale'; import generateTag from '../../utils/generateTag'; import { Space, Popover, Typography } from 'antd'; import { BasicTypographyEllipsis } from '@actiontech/shared'; -import { TableColumnWithIconStyleWrapper } from '@actiontech/shared/lib/styleWrapper/element'; +import { TableColumnWithIconStyleWrapper } from '@actiontech/dms-kit'; import { CheckHexagonOutlined, CloseHexagonOutlined } from '@actiontech/icons'; import { groupBy } from 'lodash'; diff --git a/packages/base/src/page/UserCenter/components/UserList/List.tsx b/packages/base/src/page/UserCenter/components/UserList/List.tsx index 60f00997c..a7c2ce830 100644 --- a/packages/base/src/page/UserCenter/components/UserList/List.tsx +++ b/packages/base/src/page/UserCenter/components/UserList/List.tsx @@ -8,7 +8,7 @@ import { useTableRequestError, useTableRequestParams } from '@actiontech/shared/lib/components/ActiontechTable'; -import { ResponseCode } from '@actiontech/shared/lib/enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { IListUser } from '@actiontech/shared/lib/api/base/service/common'; import { IListUsersParams } from '@actiontech/shared/lib/api/base/service/User/index.d'; import User from '@actiontech/shared/lib/api/base/service/User'; diff --git a/packages/base/src/page/UserCenter/components/UserList/__tests__/UserList.test.tsx b/packages/base/src/page/UserCenter/components/UserList/__tests__/UserList.test.tsx index 81c14d039..0664d3f1b 100644 --- a/packages/base/src/page/UserCenter/components/UserList/__tests__/UserList.test.tsx +++ b/packages/base/src/page/UserCenter/components/UserList/__tests__/UserList.test.tsx @@ -15,7 +15,7 @@ import EventEmitter from '../../../../../utils/EventEmitter'; import EmitterKey from '../../../../../data/EmitterKey'; import { UserCenterListEnum } from '../../../index.enum'; import { mockUseCurrentUser } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentUser'; -import { SystemRole } from '@actiontech/shared/lib/enum'; +import { SystemRole } from '@actiontech/dms-kit'; jest.mock('react-redux', () => { return { diff --git a/packages/base/src/page/UserCenter/components/UserList/action.ts b/packages/base/src/page/UserCenter/components/UserList/action.ts index e680e6874..84f86db2f 100644 --- a/packages/base/src/page/UserCenter/components/UserList/action.ts +++ b/packages/base/src/page/UserCenter/components/UserList/action.ts @@ -4,7 +4,7 @@ import { PERMISSIONS } from '@actiontech/shared/lib/features'; import { t } from '../../../../locale'; -import { OpPermissionTypeUid, SystemRole } from '@actiontech/shared/lib/enum'; +import { OpPermissionTypeUid, SystemRole } from '@actiontech/dms-kit'; export const UserListActions = ( onEditUser: (record?: IListUser) => void, diff --git a/packages/base/src/page/UserCenter/components/UserList/column.tsx b/packages/base/src/page/UserCenter/components/UserList/column.tsx index 4633a13a6..b3a99edfa 100644 --- a/packages/base/src/page/UserCenter/components/UserList/column.tsx +++ b/packages/base/src/page/UserCenter/components/UserList/column.tsx @@ -5,8 +5,8 @@ import { } from '@actiontech/shared/lib/components/ActiontechTable/index.type'; import { ListUserStatEnum } from '@actiontech/shared/lib/api/base/service/common.enum'; import { t } from '../../../../locale'; -import { TableColumnWithIconStyleWrapper } from '@actiontech/shared/lib/styleWrapper/element'; -import { OpPermissionTypeUid, SystemRole } from '@actiontech/shared/lib/enum'; +import { TableColumnWithIconStyleWrapper } from '@actiontech/dms-kit'; +import { OpPermissionTypeUid, SystemRole } from '@actiontech/dms-kit'; import { CheckHexagonOutlined, CloseHexagonOutlined } from '@actiontech/icons'; import SystemRoleTagList from '../../../../components/SystemRoleTagList'; import ProjectTagList from '../../../../components/ProjectTagList'; diff --git a/packages/base/src/page/UserCenter/index.tsx b/packages/base/src/page/UserCenter/index.tsx index a5416ac3b..826b1bc80 100644 --- a/packages/base/src/page/UserCenter/index.tsx +++ b/packages/base/src/page/UserCenter/index.tsx @@ -1,11 +1,8 @@ import { useState } from 'react'; import { useDispatch } from 'react-redux'; import { Space } from 'antd'; -import { - PageHeader, - SegmentedTabs, - SegmentedTabsProps -} from '@actiontech/shared'; +import { PageHeader, SegmentedTabs } from '@actiontech/dms-kit'; +import { SegmentedTabsProps } from '@actiontech/dms-kit'; import { TableRefreshButton } from '@actiontech/shared/lib/components/ActiontechTable'; import { UserCenterListEnum } from './index.enum'; import { useTranslation } from 'react-i18next'; @@ -18,18 +15,13 @@ import PermissionList from './components/PermissionList/List'; import eventEmitter from '../../utils/EventEmitter'; import EmitterKey from '../../data/EmitterKey'; import { UserCenterPageHeaderActions } from './action'; - const UserCenter: React.FC = () => { const { t } = useTranslation(); - const dispatch = useDispatch(); - const [activePage, setActivePage] = useState(UserCenterListEnum.user_list); - const onRefreshTable = () => { eventEmitter.emit(EmitterKey.DMS_Refresh_User_Center_List); }; - const pageItems: SegmentedTabsProps['items'] = [ { value: UserCenterListEnum.user_list, @@ -47,7 +39,6 @@ const UserCenter: React.FC = () => { children: } ]; - const renderExtraButton = () => { const handleClick = (modalName: ModalName) => { dispatch( @@ -57,12 +48,10 @@ const UserCenter: React.FC = () => { }) ); }; - const pageHeaderActions = UserCenterPageHeaderActions( activePage, handleClick ); - return ( <> {pageHeaderActions['add_user']} @@ -70,11 +59,9 @@ const UserCenter: React.FC = () => { ); }; - const handleTabChange = (key: UserCenterListEnum) => { setActivePage(key); }; - return (
{
); }; - export default UserCenter; diff --git a/packages/base/src/page/UserCenter/utils/generateTag.tsx b/packages/base/src/page/UserCenter/utils/generateTag.tsx index c8381d075..430c3b6d7 100644 --- a/packages/base/src/page/UserCenter/utils/generateTag.tsx +++ b/packages/base/src/page/UserCenter/utils/generateTag.tsx @@ -1,6 +1,5 @@ -import { BasicTag } from '@actiontech/shared'; +import { BasicTag } from '@actiontech/dms-kit'; import { IUidWithName } from '@actiontech/shared/lib/api/base/service/common'; - export default function generateTag(list: IUidWithName[]) { return list?.map((r) => {r.name}); } diff --git a/packages/base/src/router/router.base.tsx b/packages/base/src/router/router.base.tsx index 5980af50b..59c1b3ea3 100644 --- a/packages/base/src/router/router.base.tsx +++ b/packages/base/src/router/router.base.tsx @@ -1,6 +1,6 @@ // @warn/cli/create-dms-page import { PERMISSIONS } from '@actiontech/shared/lib/features'; -import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths'; +import { ROUTE_PATHS } from '@actiontech/dms-kit'; import { RouterConfigItem } from '@actiontech/shared/lib/types/common.type'; import React from 'react'; // #if [ee] diff --git a/packages/base/src/router/router.tsx b/packages/base/src/router/router.tsx index 25ddd4120..32b66aaf8 100644 --- a/packages/base/src/router/router.tsx +++ b/packages/base/src/router/router.tsx @@ -6,7 +6,7 @@ import { BaseGlobalRouterConfig, BaseProjectRouterConfig } from './router.base'; -import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths'; +import { ROUTE_PATHS } from '@actiontech/dms-kit'; // #if [sqle] import { diff --git a/packages/base/src/store/availabilityZone/index.ts b/packages/base/src/store/availabilityZone/index.ts index 069ea7de5..43b3400d2 100644 --- a/packages/base/src/store/availabilityZone/index.ts +++ b/packages/base/src/store/availabilityZone/index.ts @@ -1,6 +1,6 @@ import { createSlice, PayloadAction } from '@reduxjs/toolkit'; import { commonModalReducer } from '../common'; -import { ModalStatus } from '@actiontech/shared/lib/types/common.type'; +import { ModalStatus } from '@actiontech/dms-kit/es/types/common.type'; import { IGateway } from '@actiontech/shared/lib/api/base/service/common'; import { IUidWithName } from '@actiontech/shared/lib/api/base/service/common'; diff --git a/packages/base/src/store/cloudBeaver/index.ts b/packages/base/src/store/cloudBeaver/index.ts index 8539bb120..02f2858a8 100644 --- a/packages/base/src/store/cloudBeaver/index.ts +++ b/packages/base/src/store/cloudBeaver/index.ts @@ -1,6 +1,6 @@ import { createSlice, PayloadAction } from '@reduxjs/toolkit'; import { commonModalReducer } from '../common'; -import { ModalStatus } from '@actiontech/shared/lib/types/common.type'; +import { ModalStatus } from '@actiontech/dms-kit/es/types/common.type'; import { ICBOperationLog } from '@actiontech/shared/lib/api/base/service/common'; type MemberReduxState = { diff --git a/packages/base/src/store/common/index.test.ts b/packages/base/src/store/common/index.test.ts index 0de62d0bb..c018834d2 100644 --- a/packages/base/src/store/common/index.test.ts +++ b/packages/base/src/store/common/index.test.ts @@ -1,6 +1,6 @@ import { createSlice } from '@reduxjs/toolkit'; import { commonModalReducer } from '.'; -import { ModalStatus } from '@actiontech/shared/lib/types/common.type'; +import { ModalStatus } from '@actiontech/dms-kit/es/types/common.type'; describe('store/common', () => { const testStore = createSlice({ diff --git a/packages/base/src/store/common/index.ts b/packages/base/src/store/common/index.ts index d4ed308ae..df5de48a9 100644 --- a/packages/base/src/store/common/index.ts +++ b/packages/base/src/store/common/index.ts @@ -1,4 +1,4 @@ -import { ModalStatus } from '@actiontech/shared/lib/types/common.type'; +import { ModalStatus } from '@actiontech/dms-kit/es/types/common.type'; import { PayloadAction } from '@reduxjs/toolkit'; export const commonModalReducer = < diff --git a/packages/base/src/store/dataExport/index.ts b/packages/base/src/store/dataExport/index.ts index ed96575bd..e01037889 100644 --- a/packages/base/src/store/dataExport/index.ts +++ b/packages/base/src/store/dataExport/index.ts @@ -1,4 +1,4 @@ -import { ModalStatus } from '@actiontech/shared/lib/types/common.type'; +import { ModalStatus } from '@actiontech/dms-kit/es/types/common.type'; import { PayloadAction, createSlice } from '@reduxjs/toolkit'; import { commonModalReducer } from '../common'; import { diff --git a/packages/base/src/store/index.ts b/packages/base/src/store/index.ts index dca145736..9195df4e4 100644 --- a/packages/base/src/store/index.ts +++ b/packages/base/src/store/index.ts @@ -1,7 +1,7 @@ import { configureStore } from '@reduxjs/toolkit'; import { baseStoreData } from './base'; import { SQLEStoreData } from 'sqle/src/store'; -import { findDuplicateKeys } from '@actiontech/shared/lib/utils/Common'; +import { findDuplicateKeys } from '@actiontech/dms-kit'; // #if [DEV] const dupKeys = findDuplicateKeys([baseStoreData, SQLEStoreData]); diff --git a/packages/base/src/store/member/index.ts b/packages/base/src/store/member/index.ts index 93f02281c..54dfaf674 100644 --- a/packages/base/src/store/member/index.ts +++ b/packages/base/src/store/member/index.ts @@ -1,6 +1,6 @@ import { createSlice, PayloadAction } from '@reduxjs/toolkit'; import { commonModalReducer } from '../common'; -import { ModalStatus } from '@actiontech/shared/lib/types/common.type'; +import { ModalStatus } from '@actiontech/dms-kit/es/types/common.type'; import { IListMember, IListMemberGroup diff --git a/packages/base/src/store/nav/index.ts b/packages/base/src/store/nav/index.ts index ff93957b9..a63030636 100644 --- a/packages/base/src/store/nav/index.ts +++ b/packages/base/src/store/nav/index.ts @@ -1,5 +1,5 @@ import { createSlice } from '@reduxjs/toolkit'; -import { ModalStatus } from '@actiontech/shared/lib/types/common.type'; +import { ModalStatus } from '@actiontech/dms-kit/es/types/common.type'; import { commonModalReducer } from '../common'; type NavReduxState = { diff --git a/packages/base/src/store/permission/index.ts b/packages/base/src/store/permission/index.ts index 6e339b6b0..7c6a8ad22 100644 --- a/packages/base/src/store/permission/index.ts +++ b/packages/base/src/store/permission/index.ts @@ -1,6 +1,6 @@ import { PayloadAction, createSlice } from '@reduxjs/toolkit'; import { IGetUserOpPermissionReply } from '@actiontech/shared/lib/api/base/service/common'; -import { ModuleFeatureSupportStatus } from '@actiontech/shared/lib/enum'; +import { ModuleFeatureSupportStatus } from '@actiontech/dms-kit'; type PermissionState = { moduleFeatureSupport: ModuleFeatureSupportStatus; diff --git a/packages/base/src/store/project/index.ts b/packages/base/src/store/project/index.ts index 20d6553d6..db4b7fa54 100644 --- a/packages/base/src/store/project/index.ts +++ b/packages/base/src/store/project/index.ts @@ -1,6 +1,6 @@ import { createSlice, PayloadAction } from '@reduxjs/toolkit'; import { commonModalReducer } from '../common'; -import { ModalStatus } from '@actiontech/shared/lib/types/common.type'; +import { ModalStatus } from '@actiontech/dms-kit/es/types/common.type'; import { IListProjectV2 } from '@actiontech/shared/lib/api/base/service/common'; type ProjectReduxState = { diff --git a/packages/base/src/store/system/index.test.ts b/packages/base/src/store/system/index.test.ts index 52db915a3..fd72947a0 100644 --- a/packages/base/src/store/system/index.test.ts +++ b/packages/base/src/store/system/index.test.ts @@ -1,7 +1,7 @@ import reducers, { updateWebTitleAndLogo } from '.'; import { IReduxState } from '..'; -import { DMS_DEFAULT_WEB_TITLE } from '@actiontech/shared/lib/data/common'; +import { DMS_DEFAULT_WEB_TITLE } from '@actiontech/dms-kit'; describe('store system', () => { const state: IReduxState['system'] = { diff --git a/packages/base/src/store/system/index.ts b/packages/base/src/store/system/index.ts index 397b76c26..ec667592a 100644 --- a/packages/base/src/store/system/index.ts +++ b/packages/base/src/store/system/index.ts @@ -1,7 +1,7 @@ import { PayloadAction, createSlice } from '@reduxjs/toolkit'; import { commonModalReducer } from '../common'; -import { ModalStatus } from '@actiontech/shared/lib/types/common.type'; -import { DMS_DEFAULT_WEB_TITLE } from '@actiontech/shared/lib/data/common'; +import { ModalStatus } from '@actiontech/dms-kit/es/types/common.type'; +import { DMS_DEFAULT_WEB_TITLE } from '@actiontech/dms-kit'; type SystemReduxState = { modalStatus: ModalStatus; diff --git a/packages/base/src/store/user/index.test.ts b/packages/base/src/store/user/index.test.ts index dc5d8a218..9646be4dc 100644 --- a/packages/base/src/store/user/index.test.ts +++ b/packages/base/src/store/user/index.test.ts @@ -9,13 +9,13 @@ import reducers, { updateLanguage } from '.'; import { IReduxState } from '..'; -import { LocalStorageWrapper } from '@actiontech/shared'; +import { LocalStorageWrapper } from '@actiontech/dms-kit'; import { StorageKey, SupportLanguage, SupportTheme, SystemRole -} from '@actiontech/shared/lib/enum'; +} from '@actiontech/dms-kit'; describe('store user', () => { const state: IReduxState['user'] = { diff --git a/packages/base/src/store/user/index.ts b/packages/base/src/store/user/index.ts index 9df2cdf4b..f65da1ac3 100644 --- a/packages/base/src/store/user/index.ts +++ b/packages/base/src/store/user/index.ts @@ -1,16 +1,16 @@ -import { LocalStorageWrapper } from '@actiontech/shared'; import { StorageKey, + LocalStorageWrapper, SupportLanguage, SupportTheme, SystemRole -} from '@actiontech/shared/lib/enum'; +} from '@actiontech/dms-kit'; import { createSlice, PayloadAction } from '@reduxjs/toolkit'; import { IUidWithName, IUserBindProject } from '@actiontech/shared/lib/api/base/service/common'; -import { DEFAULT_LANGUAGE } from '@actiontech/shared/lib/locale'; +import { DEFAULT_LANGUAGE } from '@actiontech/dms-kit'; export type IBindProject = { archived?: boolean } & IUserBindProject; diff --git a/packages/base/src/store/userCenter/index.ts b/packages/base/src/store/userCenter/index.ts index 0716d0b78..3060aa464 100644 --- a/packages/base/src/store/userCenter/index.ts +++ b/packages/base/src/store/userCenter/index.ts @@ -1,6 +1,6 @@ import { createSlice, PayloadAction } from '@reduxjs/toolkit'; import { commonModalReducer } from '../common'; -import { ModalStatus } from '@actiontech/shared/lib/types/common.type'; +import { ModalStatus } from '@actiontech/dms-kit/es/types/common.type'; import { IListUser, IListUserGroup, diff --git a/packages/base/src/testUtils/superRender.tsx b/packages/base/src/testUtils/superRender.tsx index a4926905b..d02434347 100644 --- a/packages/base/src/testUtils/superRender.tsx +++ b/packages/base/src/testUtils/superRender.tsx @@ -5,7 +5,7 @@ import { RenderParams } from '@actiontech/shared/lib/testUtil/superRender'; import { renderHook } from '@testing-library/react-hooks'; -import lightTheme from '@actiontech/shared/lib/theme/light'; +import { lightTheme } from '@actiontech/dms-kit'; import basePackageTheme from '../theme/light'; const themeData = { diff --git a/packages/base/src/theme/dark/dataExport.ts b/packages/base/src/theme/dark/dataExport.ts index 91bf7d948..4f8c0a701 100644 --- a/packages/base/src/theme/dark/dataExport.ts +++ b/packages/base/src/theme/dark/dataExport.ts @@ -1,4 +1,4 @@ -import { darkThemeUI } from '@actiontech/shared/lib/theme/dark/basic'; +import { darkThemeUI } from '@actiontech/dms-kit/es/theme/dark/basic'; import { DataExportTheme } from '../type'; import { WorkflowRecordStatusEnum } from '@actiontech/shared/lib/api/base/service/common.enum'; diff --git a/packages/base/src/theme/dark/guidance.ts b/packages/base/src/theme/dark/guidance.ts index f7db367d1..1a741a8ce 100644 --- a/packages/base/src/theme/dark/guidance.ts +++ b/packages/base/src/theme/dark/guidance.ts @@ -1,7 +1,7 @@ import { darkThemeUI, darkThemeBasic -} from '@actiontech/shared/lib/theme/dark/basic'; +} from '@actiontech/dms-kit/es/theme/dark/basic'; import { GuidanceTheme } from '../type'; export const guidanceTheme: GuidanceTheme = { diff --git a/packages/base/src/theme/dark/sideMenu.ts b/packages/base/src/theme/dark/sideMenu.ts index 0bcb2ec73..c31559f43 100644 --- a/packages/base/src/theme/dark/sideMenu.ts +++ b/packages/base/src/theme/dark/sideMenu.ts @@ -1,4 +1,4 @@ -import { darkThemeUI } from '@actiontech/shared/lib/theme/dark/basic'; +import { darkThemeUI } from '@actiontech/dms-kit/es/theme/dark/basic'; import { SideMenuTheme } from '../type'; export const sideMenuTheme: SideMenuTheme = { diff --git a/packages/base/src/theme/dark/system.ts b/packages/base/src/theme/dark/system.ts index 4f52d5a98..69407efd5 100644 --- a/packages/base/src/theme/dark/system.ts +++ b/packages/base/src/theme/dark/system.ts @@ -1,4 +1,4 @@ -import { darkThemeUI } from '@actiontech/shared/lib/theme/dark/basic'; +import { darkThemeUI } from '@actiontech/dms-kit/es/theme/dark/basic'; import { SystemTheme } from '../type'; export const systemTheme: SystemTheme = { diff --git a/packages/base/src/theme/index.ts b/packages/base/src/theme/index.ts index 149bb9572..f190c7869 100644 --- a/packages/base/src/theme/index.ts +++ b/packages/base/src/theme/index.ts @@ -1,8 +1,10 @@ -import sharedDarkTheme from '@actiontech/shared/lib/theme/dark'; -import sharedLightTheme from '@actiontech/shared/lib/theme/light'; import lightTheme from './light'; import darkTheme from './dark'; -import { SupportTheme } from '@actiontech/shared/lib/enum'; +import { + SupportTheme, + darkTheme as sharedDarkTheme, + lightTheme as sharedLightTheme +} from '@actiontech/dms-kit'; const ThemeData = { [SupportTheme.DARK]: { diff --git a/packages/base/src/theme/light/dataExport.ts b/packages/base/src/theme/light/dataExport.ts index c99262a29..9d42a2875 100644 --- a/packages/base/src/theme/light/dataExport.ts +++ b/packages/base/src/theme/light/dataExport.ts @@ -1,4 +1,4 @@ -import { lightThemeUI } from '@actiontech/shared/lib/theme/light/basic'; +import { lightThemeUI } from '@actiontech/dms-kit/es/theme/light/basic'; import { DataExportTheme } from '../type'; import { WorkflowRecordStatusEnum } from '@actiontech/shared/lib/api/base/service/common.enum'; diff --git a/packages/base/src/theme/light/guidance.ts b/packages/base/src/theme/light/guidance.ts index cb8b8a983..0e7efe9e6 100644 --- a/packages/base/src/theme/light/guidance.ts +++ b/packages/base/src/theme/light/guidance.ts @@ -1,7 +1,7 @@ import { lightThemeUI, lightThemeBasic -} from '@actiontech/shared/lib/theme/light/basic'; +} from '@actiontech/dms-kit/es/theme/light/basic'; import { GuidanceTheme } from '../type'; export const guidanceTheme: GuidanceTheme = { diff --git a/packages/base/src/theme/light/sideMenu.ts b/packages/base/src/theme/light/sideMenu.ts index 14763c031..13f35a987 100644 --- a/packages/base/src/theme/light/sideMenu.ts +++ b/packages/base/src/theme/light/sideMenu.ts @@ -1,4 +1,4 @@ -import { lightThemeUI } from '@actiontech/shared/lib/theme/light/basic'; +import { lightThemeUI } from '@actiontech/dms-kit/es/theme/light/basic'; import { SideMenuTheme } from '../type'; export const sideMenuTheme: SideMenuTheme = { diff --git a/packages/base/src/theme/light/system.ts b/packages/base/src/theme/light/system.ts index da4f05b25..5d006855b 100644 --- a/packages/base/src/theme/light/system.ts +++ b/packages/base/src/theme/light/system.ts @@ -1,4 +1,4 @@ -import { lightThemeUI } from '@actiontech/shared/lib/theme/light/basic'; +import { lightThemeUI } from '@actiontech/dms-kit/es/theme/light/basic'; import { SystemTheme } from '../type'; export const systemTheme: SystemTheme = { diff --git a/packages/base/src/utils/EventEmitter.ts b/packages/base/src/utils/EventEmitter.ts index 1a56cb196..521dd819a 100644 --- a/packages/base/src/utils/EventEmitter.ts +++ b/packages/base/src/utils/EventEmitter.ts @@ -1,4 +1,4 @@ -import { EventEmitter } from '@actiontech/shared'; +import { EventEmitter } from '@actiontech/dms-kit'; import EmitterKey from '../data/EmitterKey'; const eventEmitter = new EventEmitter(); diff --git a/packages/base/tsconfig.json b/packages/base/tsconfig.json index a4cb7b26e..740aafa02 100644 --- a/packages/base/tsconfig.json +++ b/packages/base/tsconfig.json @@ -4,6 +4,7 @@ "compilerOptions": { "paths": { "~/*": ["./src/*"] - } + }, + "skipLibCheck": true } } diff --git a/packages/base/vite.config.mts b/packages/base/vite.config.mts index d1d4eccac..3b1c287ed 100644 --- a/packages/base/vite.config.mts +++ b/packages/base/vite.config.mts @@ -53,7 +53,8 @@ export default defineConfig(() => { eslint({ exclude: [ '**/node_modules/**', - '**/packages/**/lib/api/**', + '**/packages/**/lib/**', + '**/packages/**/es/**', '!**/packages/**/lib/api/common/**' ] }), diff --git a/packages/dms-kit/.fatherrc.ts b/packages/dms-kit/.fatherrc.ts new file mode 100644 index 000000000..aaeb9ac69 --- /dev/null +++ b/packages/dms-kit/.fatherrc.ts @@ -0,0 +1,12 @@ +import { defineConfig } from 'father'; + +export default defineConfig({ + esm: { + output: 'es', + transformer: 'babel' + }, + cjs: { + output: 'lib', + transformer: 'babel' + } +}); diff --git a/packages/dms-kit/.npmrc b/packages/dms-kit/.npmrc new file mode 100644 index 000000000..0757ca96e --- /dev/null +++ b/packages/dms-kit/.npmrc @@ -0,0 +1,2 @@ +registry=https://registry.npmmirror.com +@actiontech:registry=http://10.186.18.19:4873/ diff --git a/packages/dms-kit/README.md b/packages/dms-kit/README.md new file mode 100644 index 000000000..3ad3f7d26 --- /dev/null +++ b/packages/dms-kit/README.md @@ -0,0 +1,61 @@ +# @actiontech/dms-kit + +DMS Kit 是 ActionTech DMS 项目的共享组件库,提供了一套完整的 React 组件、工具函数、主题配置和类型定义。 + +## 安装 + +```bash +npm install @actiontech/dms-kit +# 或 +pnpm add @actiontech/dms-kit +``` + +## 使用 + +### 组件导入 + +```typescript +import { ActionButton, BasicTable, CustomForm } from '@actiontech/dms-kit'; +``` + +### 工具函数导入 + +```typescript +import { formatTime, validateEmail } from '@actiontech/dms-kit'; +``` + +### 主题配置导入 + +```typescript +import { darkTheme, lightTheme } from '@actiontech/dms-kit'; +``` + +### 类型定义导入 + +```typescript +import type { ThemeConfig } from '@actiontech/dms-kit'; +``` + +## 依赖要求 + +- React >= 17 +- React DOM >= 17 +- Antd >= 5.7.3 + +## 开发 + +### 构建 + +```bash +pnpm build +``` + +### 开发模式 + +```bash +pnpm dev +``` + +## 许可证 + +MIT diff --git a/packages/dms-kit/package.json b/packages/dms-kit/package.json new file mode 100644 index 000000000..97f9ef12c --- /dev/null +++ b/packages/dms-kit/package.json @@ -0,0 +1,48 @@ +{ + "name": "@actiontech/dms-kit", + "version": "0.0.2-beta.5", + "main": "lib/index.js", + "module": "es/index.js", + "types": "es/index.d.ts", + "license": "MIT", + "scripts": { + "build": "father build", + "test": "jest --watchAll=true", + "test:c": "jest --watchAll=false --coverage", + "test:ci": "jest --ci --watchAll=false --coverage --color --silent --testLocationInResults" + }, + "dependencies": { + "@actiontech/icons": "workspace:^", + "@ant-design/cssinjs": "^1.17.0", + "@ant-design/icons": "^4.7.0", + "@emotion/react": "^11.14.0", + "@emotion/styled": "^11.14.0", + "@mui/material": "^5.11.16", + "@mui/styles": "^5.11.16", + "@mui/system": "^5.9.1", + "ahooks": "^3.7.0", + "antd": ">=5.7.3", + "axios": ">=0.27.2", + "classnames": "^2.3.0", + "dayjs": "^1", + "i18next": "^21.8.14", + "rc-input-number": "~8.0.2", + "rc-tree-select": "~5.9.0", + "react": ">=17", + "react-dom": ">=17", + "react-i18next": "^11.18.6", + "typescript": "^5.0.2", + "sql-formatter": "^12.2.4", + "react-router-dom": "^6.10.0", + "nprogress": "^0.2.0", + "query-string": "^7.1.1", + "highlight.js": "^11.0.1", + "cron-parser": "^4.9.0" + }, + "devDependencies": { + "father": "^4.5.2" + }, + "peerDependencies": { + "@actiontech/icons": "^0.0.1-rc.7" + } +} \ No newline at end of file diff --git a/packages/dms-kit/src/components/ActiontechTable/index.type.ts b/packages/dms-kit/src/components/ActiontechTable/index.type.ts new file mode 100644 index 000000000..18f7d271a --- /dev/null +++ b/packages/dms-kit/src/components/ActiontechTable/index.type.ts @@ -0,0 +1,232 @@ +import { InputProps } from 'antd'; +import { RangePickerProps } from 'antd/es/date-picker'; +import { ColumnGroupType, ColumnType } from 'antd/es/table'; +import { CustomSelectProps } from '../CustomSelect'; +import { BasicButtonProps } from '../BasicButton'; +import { ExcludeSymbol } from '../../types/common.type'; +import { CustomInputProps } from '../CustomInput'; + +/** + * 用于移除后端提供的表格筛选类型中的 page_size 以及 page_index, 同时可以传入第二个泛型, 来移除自己不需要的类型 + */ +export type PageInfoWithoutIndexAndSize< + T extends TablePagination & Record, + Other extends keyof T = never +> = Omit; + +//======================================= + +//======================================= filter +export type TypeFilterElement = + | 'select' + | 'date-range' + | 'input' + | 'search-input'; + +export type ICustomSearchInputProps = CustomInputProps; + +/** + * 更新表格筛选数据的方法, 一般为 useTableRequestParams 导出的 updateTableFilterInfo + */ +export type UpdateTableFilterInfoType> = ( + params: F | ((prevParams: F) => F) +) => void; + +/** + * toolbar 中筛选按钮的数据源, 由于历史原因, 最初点击筛选按钮后, 需要勾选上需要添加的筛选项, 所以这里有 checked 属性. + * 目前点击筛选按钮后, 会同时 checked 所有的筛选项 + * 数据一般为 useTableRequestParams 导出的 filterButtonMeta + */ +export type ActiontechTableFilterButtonMeta> = Map< + keyof T, + Pick< + Required, + 'checked' | 'filterLabel' | 'filterCustomType' + > +>; + +/** + * 数据一般为 useTableRequestParams 导出的 filterContainerMeta + */ +export type ActiontechTableFilterContainerMeta< + T = Record, + F = Record +> = Array< + Omit, 'checked'> & { + dataIndex: keyof T; + } +>; + +export type FilterCustomProps = C extends 'select' + ? CustomSelectProps + : C extends 'date-range' + ? RangePickerProps + : C extends 'input' + ? CustomInputProps + : C extends 'search-input' + ? ICustomSearchInputProps + : never; + +/** + * 表格筛选信息中 value 的数据格式 + */ +export type ActiontechTableFilterMetaValue< + F = Record, + C = TypeFilterElement +> = { + /** + * 是否在筛选按钮中选中该项 + */ + checked?: boolean; + + /** + * 筛选项类型, 'select', 'date-range', 'input' + */ + filterCustomType?: C; + + /** + * 最后筛选数据中的 key 值, 一般为当前表格筛选数据类型的某项, + * 当筛选类型为 date-range 时, filterKey 一般为 [开始时间Key, 结束时间Key], 此时会将开始时间赋值在 filterKey[0], 结束时间赋值在 filterKey[1] + * 如果筛选类型不为 date-range, 但是 filterKey 也是一个数组时, 会将select选中的值赋值给数组中的所有项 + */ + filterKey?: keyof F | Array; + + /** + * 筛选项的 label + */ + filterLabel?: string; +}; + +/** + * 表格筛选信息, Map 结构 + * key 为 表格列的 dataIndex, value 结构见 ActiontechTableFilterMetaValue + * 表格列中的筛选信息通过 useTableFilterContainer 生成, + * 主要作为定义表格列以外的筛选项的类型 + */ +export type ActiontechTableFilterMeta< + RecordType = Record, + F = Record +> = Map>; + +export type UseTableRequestParamsOptions> = { + defaultPageSize?: number; + defaultPageIndex?: number; + defaultFilterInfo?: F; + defaultSearchKeyword?: string; +}; + +export type TablePagination = { + page_index: number; + page_size: number; +}; + +//======================================= + +//======================================= toolbar + +/** + * 表格模糊查询 + */ +export type TableSearchInputProps = { + onChange?: (value: string) => void; + onSearch?: () => void; +} & Omit; + +/** + * 表格刷新 + */ +export type TableRefreshButtonProps = { + refresh?: () => void; +} & Omit; + +/** + * 表格列缓存数据格式 + */ +export type CatchTableColumnValueType< + T = Record, + OtherColumnKeys extends string = never +> = { + /** + * key 为用户名 + */ + [key in keyof T | OtherColumnKeys]: { + /** + * 顺序 + */ + order: number; + + /** + * 是否显示 + */ + show: boolean; + + /** + * 是否固定, 类型同 antd 中的 fixed + */ + fixed?: ActiontechTableColumn[0]['fixed']; + + /** + * 表头名, 通 columns 中的 title, 如果 columns 中的 title 为 ReactNode, 会使用 utils 中的 getColumnsLabel 来获取中文 + */ + title: string; + }; +}; + +export type CatchTableColumnsType> = { + [key: string]: CatchTableColumnValueType; +}; + +/** + * 表格设置 props + */ +export type ColumnsSettingProps = { + /** + * 表格 key 值, 需要全局唯一, 用与 localeStorage 中缓存数据的 key 值 + */ + tableName: string; + + /** + * 当前用户名, 用于区分不同用户下表格列的缓存数据 + */ + username: string; +}; + +/** + * todo: 如何控制 筛选项的顺序 + * 表格 columns props, 当配置 filterCustomType 和 filterKey 启用该列的筛选功能, 通过 useTableFilterContainer 来生成 筛选项的元数据 + * 当需要添加表格列以外的筛选列时, 可以使用 useTableFilterContainer 的第三个参数: extraFilterMeta + */ +type ColumnValueType = K extends keyof T + ? T[K] + : never; + +type BaseColumnType> = { + show?: boolean; + dataIndex: ExcludeSymbol; + render?: ( + value: ColumnValueType, + record: T, + index: number + ) => ColumnType['render'] extends (...args: any) => infer R + ? R + : React.ReactNode; +} & Pick< + ActiontechTableFilterMetaValue, + 'filterCustomType' | 'filterKey' | 'filterLabel' +>; + +export type ActiontechTableColumn< + T = Record, + F = Record, + OtherColumnKeys extends string = never +> = Array< + Omit | ColumnType, 'dataIndex' | 'render'> & + ( + | { + [K in keyof Required]: BaseColumnType; + }[keyof Required] + | { + [K in OtherColumnKeys]: BaseColumnType; + }[OtherColumnKeys] + ) +>; diff --git a/packages/dms-kit/src/components/ActiontechTable/style.tsx b/packages/dms-kit/src/components/ActiontechTable/style.tsx new file mode 100644 index 000000000..60bc80be6 --- /dev/null +++ b/packages/dms-kit/src/components/ActiontechTable/style.tsx @@ -0,0 +1,171 @@ +import { styled } from '@mui/material/styles'; +import { Table } from 'antd'; +export const ACTIONTECH_TABLE_OPERATOR_COLUMN_CLS = + 'actiontech-table-actions-column'; +export const ActiontechTableStyleWrapper = styled(Table)` + &.ant-table-wrapper.table-row-cursor { + .ant-table-tbody { + tr { + cursor: pointer; + } + } + } + &.ant-table-wrapper.actiontech-table-namespace { + padding-bottom: 60px; + .ant-table-thead { + tr { + .ant-table-cell { + color: ${({ theme }) => + theme.sharedTheme.components.table.thead.color}; + border-bottom: ${({ theme }) => + theme.sharedTheme.components.table.thead.border}; + padding: 0 16px; + height: 40px; + line-height: 20px; + } + + .ant-table-cell:first-of-type { + padding-left: 40px; + } + + .ant-table-cell:last-of-type { + padding-right: 40px; + } + } + } + + .ant-table-row { + .ant-table-cell { + color: ${({ theme }) => theme.sharedTheme.components.table.row.color}; + border-bottom: ${({ theme }) => + theme.sharedTheme.components.table.row.border}; + padding: 16px; + height: 20px; + line-height: 20px; + } + + .ant-table-cell:first-of-type { + padding-left: 40px; + } + + .ant-table-cell:last-of-type { + padding-right: 40px; + } + + .${ACTIONTECH_TABLE_OPERATOR_COLUMN_CLS} { + padding: 16px 40px 16px 16px; + } + } + + .ant-checkbox-wrapper { + .ant-checkbox { + .ant-checkbox-inner { + width: 15px; + height: 15px; + border-radius: 3px; + } + } + } + + .ant-table-pagination { + justify-content: space-between; + margin: 0 !important; + padding: 16px 40px; + background-color: ${({ theme }) => + theme.sharedTheme.components.table.pagination.backgroundColor}; + + &.actiontech-table-pagination-fixed { + border-top: ${({ theme }) => + theme.sharedTheme.components.table.pagination.border}; + position: fixed; + z-index: 999; + right: 0; + bottom: 0; + width: calc(100% - 220px); + } + + &::before { + content: ''; + flex: 1; + } + + .ant-pagination-total-text { + color: ${({ theme }) => + theme.sharedTheme.components.table.pagination.total.color}; + order: -1; + } + .ant-pagination-prev { + margin-inline-end: 8px; + } + .ant-pagination-item { + margin-inline-end: 8px; + &:hover { + background-color: ${({ theme }) => + theme.sharedTheme.components.table.pagination.item + .hoverBackgroundColor}; + } + a { + color: ${({ theme }) => + theme.sharedTheme.components.table.pagination.item.color}; + } + } + .ant-pagination-item-active { + border: ${({ theme }) => + theme.sharedTheme.components.table.pagination.item.activeBorder}; + background-color: ${({ theme }) => + theme.sharedTheme.components.table.pagination.item + .activeBackgroundColor}; + + a { + color: ${({ theme }) => + theme.sharedTheme.components.table.pagination.item.activeColor}; + } + } + + .ant-pagination-options { + .ant-pagination-options-size-changer { + &:not(.ant-select-focused) { + .ant-select-selector:hover { + border: ${({ theme }) => + theme.sharedTheme.components.table.pagination.options + .hoverBorder}; + } + } + .ant-select-selector { + height: 28px; + line-height: 28px; + padding: 0 8px; + width: 96px; + background-color: ${({ theme }) => + theme.sharedTheme.components.table.pagination.options + .backgroundColor}; + border: ${({ theme }) => + theme.sharedTheme.components.table.pagination.options.border}; + box-shadow: ${({ theme }) => + theme.sharedTheme.components.table.pagination.options.boxShadow}; + + .ant-select-selection-item { + padding-inline-start: 4px; + padding-inline-end: 0; + display: flex; + align-items: center; + color: ${({ theme }) => + theme.sharedTheme.components.table.pagination.options + .itemColor}; + } + + .ant-select-selection-search { + input { + height: 28px; + } + } + } + } + } + } + } + + &.ant-table-wrapper.actiontech-table-namespace.clear-padding-bottom { + padding-bottom: 0; + } +`; diff --git a/packages/dms-kit/src/components/ActiontechTable/utils/index.ts b/packages/dms-kit/src/components/ActiontechTable/utils/index.ts new file mode 100644 index 000000000..88ffe9aee --- /dev/null +++ b/packages/dms-kit/src/components/ActiontechTable/utils/index.ts @@ -0,0 +1,75 @@ +import React from 'react'; +import { ActiontechTableColumn } from '../index.type'; + +export const extractTextFromReactNode = (node: React.ReactNode): string => { + if (typeof node === 'string') { + return node; + } + + if (React.isValidElement(node)) { + const { children } = node.props; + if (children) { + if (Array.isArray(children)) { + return children.map(extractTextFromReactNode).join(''); + } else { + return extractTextFromReactNode(children); + } + } + } + + return ''; +}; + +export const getColumnsLabel = < + T extends Record, + F extends Record +>( + labelInColumns: ActiontechTableColumn[0]['title'] +): string => { + if (typeof labelInColumns === 'string') { + return labelInColumns; + } + + if (typeof labelInColumns === 'object') { + return extractTextFromReactNode(labelInColumns); + } + + if (typeof labelInColumns === 'function') { + const value = labelInColumns({}); + + return extractTextFromReactNode(value); + } + + return ''; +}; + +export const checkButtonPermissions = >( + permissions: ((record?: T) => boolean) | boolean | undefined, + record?: T +): boolean => { + if (typeof permissions === 'function') { + return permissions(record); + } + + if (typeof permissions === 'boolean') { + return permissions; + } + + // 当没有 permissions 时, 默认显示按钮 + return true; +}; + +export const checkButtonDisabled = >( + disabled: ((record?: T) => boolean) | boolean | undefined, + record?: T +): boolean | undefined => { + if (typeof disabled === 'function') { + return disabled(record); + } + + if (typeof disabled === 'boolean') { + return disabled; + } + + return undefined; +}; diff --git a/packages/shared/lib/components/BasicButton/BasicButton.test.tsx b/packages/dms-kit/src/components/BasicButton/BasicButton.test.tsx similarity index 100% rename from packages/shared/lib/components/BasicButton/BasicButton.test.tsx rename to packages/dms-kit/src/components/BasicButton/BasicButton.test.tsx diff --git a/packages/shared/lib/components/BasicButton/BasicButton.tsx b/packages/dms-kit/src/components/BasicButton/BasicButton.tsx similarity index 100% rename from packages/shared/lib/components/BasicButton/BasicButton.tsx rename to packages/dms-kit/src/components/BasicButton/BasicButton.tsx diff --git a/packages/shared/lib/components/BasicButton/BasicButton.types.ts b/packages/dms-kit/src/components/BasicButton/BasicButton.types.ts similarity index 100% rename from packages/shared/lib/components/BasicButton/BasicButton.types.ts rename to packages/dms-kit/src/components/BasicButton/BasicButton.types.ts diff --git a/packages/shared/lib/components/BasicButton/README.md b/packages/dms-kit/src/components/BasicButton/README.md similarity index 100% rename from packages/shared/lib/components/BasicButton/README.md rename to packages/dms-kit/src/components/BasicButton/README.md diff --git a/packages/shared/lib/components/BasicButton/__snapshots__/BasicButton.test.tsx.snap b/packages/dms-kit/src/components/BasicButton/__snapshots__/BasicButton.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/BasicButton/__snapshots__/BasicButton.test.tsx.snap rename to packages/dms-kit/src/components/BasicButton/__snapshots__/BasicButton.test.tsx.snap diff --git a/packages/shared/lib/components/BasicButton/index.ts b/packages/dms-kit/src/components/BasicButton/index.ts similarity index 100% rename from packages/shared/lib/components/BasicButton/index.ts rename to packages/dms-kit/src/components/BasicButton/index.ts diff --git a/packages/shared/lib/components/BasicButton/style.ts b/packages/dms-kit/src/components/BasicButton/style.ts similarity index 100% rename from packages/shared/lib/components/BasicButton/style.ts rename to packages/dms-kit/src/components/BasicButton/style.ts diff --git a/packages/shared/lib/components/BasicDatePicker/BasicDatePicker.test.tsx b/packages/dms-kit/src/components/BasicDatePicker/BasicDatePicker.test.tsx similarity index 100% rename from packages/shared/lib/components/BasicDatePicker/BasicDatePicker.test.tsx rename to packages/dms-kit/src/components/BasicDatePicker/BasicDatePicker.test.tsx diff --git a/packages/shared/lib/components/BasicDatePicker/BasicDatePicker.tsx b/packages/dms-kit/src/components/BasicDatePicker/BasicDatePicker.tsx similarity index 100% rename from packages/shared/lib/components/BasicDatePicker/BasicDatePicker.tsx rename to packages/dms-kit/src/components/BasicDatePicker/BasicDatePicker.tsx diff --git a/packages/shared/lib/components/BasicDatePicker/BasicDatePicker.types.ts b/packages/dms-kit/src/components/BasicDatePicker/BasicDatePicker.types.ts similarity index 100% rename from packages/shared/lib/components/BasicDatePicker/BasicDatePicker.types.ts rename to packages/dms-kit/src/components/BasicDatePicker/BasicDatePicker.types.ts diff --git a/packages/shared/lib/components/BasicDatePicker/README.md b/packages/dms-kit/src/components/BasicDatePicker/README.md similarity index 100% rename from packages/shared/lib/components/BasicDatePicker/README.md rename to packages/dms-kit/src/components/BasicDatePicker/README.md diff --git a/packages/shared/lib/components/BasicDatePicker/__snapshots__/BasicDatePicker.test.tsx.snap b/packages/dms-kit/src/components/BasicDatePicker/__snapshots__/BasicDatePicker.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/BasicDatePicker/__snapshots__/BasicDatePicker.test.tsx.snap rename to packages/dms-kit/src/components/BasicDatePicker/__snapshots__/BasicDatePicker.test.tsx.snap diff --git a/packages/shared/lib/components/BasicDatePicker/index.ts b/packages/dms-kit/src/components/BasicDatePicker/index.ts similarity index 100% rename from packages/shared/lib/components/BasicDatePicker/index.ts rename to packages/dms-kit/src/components/BasicDatePicker/index.ts diff --git a/packages/shared/lib/components/BasicDatePicker/style.ts b/packages/dms-kit/src/components/BasicDatePicker/style.ts similarity index 100% rename from packages/shared/lib/components/BasicDatePicker/style.ts rename to packages/dms-kit/src/components/BasicDatePicker/style.ts diff --git a/packages/shared/lib/components/BasicDrawer/BasicDrawer.test.tsx b/packages/dms-kit/src/components/BasicDrawer/BasicDrawer.test.tsx similarity index 100% rename from packages/shared/lib/components/BasicDrawer/BasicDrawer.test.tsx rename to packages/dms-kit/src/components/BasicDrawer/BasicDrawer.test.tsx diff --git a/packages/shared/lib/components/BasicDrawer/BasicDrawer.tsx b/packages/dms-kit/src/components/BasicDrawer/BasicDrawer.tsx similarity index 100% rename from packages/shared/lib/components/BasicDrawer/BasicDrawer.tsx rename to packages/dms-kit/src/components/BasicDrawer/BasicDrawer.tsx diff --git a/packages/shared/lib/components/BasicDrawer/BasicDrawer.types.ts b/packages/dms-kit/src/components/BasicDrawer/BasicDrawer.types.ts similarity index 100% rename from packages/shared/lib/components/BasicDrawer/BasicDrawer.types.ts rename to packages/dms-kit/src/components/BasicDrawer/BasicDrawer.types.ts diff --git a/packages/shared/lib/components/BasicDrawer/README.md b/packages/dms-kit/src/components/BasicDrawer/README.md similarity index 100% rename from packages/shared/lib/components/BasicDrawer/README.md rename to packages/dms-kit/src/components/BasicDrawer/README.md diff --git a/packages/shared/lib/components/BasicDrawer/__snapshots__/BasicDrawer.test.tsx.snap b/packages/dms-kit/src/components/BasicDrawer/__snapshots__/BasicDrawer.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/BasicDrawer/__snapshots__/BasicDrawer.test.tsx.snap rename to packages/dms-kit/src/components/BasicDrawer/__snapshots__/BasicDrawer.test.tsx.snap diff --git a/packages/shared/lib/components/BasicDrawer/index.ts b/packages/dms-kit/src/components/BasicDrawer/index.ts similarity index 100% rename from packages/shared/lib/components/BasicDrawer/index.ts rename to packages/dms-kit/src/components/BasicDrawer/index.ts diff --git a/packages/shared/lib/components/BasicDrawer/style.ts b/packages/dms-kit/src/components/BasicDrawer/style.ts similarity index 100% rename from packages/shared/lib/components/BasicDrawer/style.ts rename to packages/dms-kit/src/components/BasicDrawer/style.ts diff --git a/packages/shared/lib/components/BasicEmpty/BasicEmpty.test.tsx b/packages/dms-kit/src/components/BasicEmpty/BasicEmpty.test.tsx similarity index 100% rename from packages/shared/lib/components/BasicEmpty/BasicEmpty.test.tsx rename to packages/dms-kit/src/components/BasicEmpty/BasicEmpty.test.tsx diff --git a/packages/shared/lib/components/BasicEmpty/BasicEmpty.tsx b/packages/dms-kit/src/components/BasicEmpty/BasicEmpty.tsx similarity index 100% rename from packages/shared/lib/components/BasicEmpty/BasicEmpty.tsx rename to packages/dms-kit/src/components/BasicEmpty/BasicEmpty.tsx diff --git a/packages/shared/lib/components/BasicEmpty/BasicEmpty.types.ts b/packages/dms-kit/src/components/BasicEmpty/BasicEmpty.types.ts similarity index 100% rename from packages/shared/lib/components/BasicEmpty/BasicEmpty.types.ts rename to packages/dms-kit/src/components/BasicEmpty/BasicEmpty.types.ts diff --git a/packages/shared/lib/components/BasicEmpty/README.md b/packages/dms-kit/src/components/BasicEmpty/README.md similarity index 100% rename from packages/shared/lib/components/BasicEmpty/README.md rename to packages/dms-kit/src/components/BasicEmpty/README.md diff --git a/packages/shared/lib/components/BasicEmpty/__snapshots__/BasicEmpty.test.tsx.snap b/packages/dms-kit/src/components/BasicEmpty/__snapshots__/BasicEmpty.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/BasicEmpty/__snapshots__/BasicEmpty.test.tsx.snap rename to packages/dms-kit/src/components/BasicEmpty/__snapshots__/BasicEmpty.test.tsx.snap diff --git a/packages/shared/lib/components/BasicEmpty/index.ts b/packages/dms-kit/src/components/BasicEmpty/index.ts similarity index 100% rename from packages/shared/lib/components/BasicEmpty/index.ts rename to packages/dms-kit/src/components/BasicEmpty/index.ts diff --git a/packages/shared/lib/components/BasicEmpty/style.ts b/packages/dms-kit/src/components/BasicEmpty/style.ts similarity index 100% rename from packages/shared/lib/components/BasicEmpty/style.ts rename to packages/dms-kit/src/components/BasicEmpty/style.ts diff --git a/packages/shared/lib/components/BasicInfoList/BasicInfoList.test.tsx b/packages/dms-kit/src/components/BasicInfoList/BasicInfoList.test.tsx similarity index 100% rename from packages/shared/lib/components/BasicInfoList/BasicInfoList.test.tsx rename to packages/dms-kit/src/components/BasicInfoList/BasicInfoList.test.tsx diff --git a/packages/shared/lib/components/BasicInfoList/BasicInfoList.tsx b/packages/dms-kit/src/components/BasicInfoList/BasicInfoList.tsx similarity index 100% rename from packages/shared/lib/components/BasicInfoList/BasicInfoList.tsx rename to packages/dms-kit/src/components/BasicInfoList/BasicInfoList.tsx diff --git a/packages/shared/lib/components/BasicInfoList/BasicInfoList.types.ts b/packages/dms-kit/src/components/BasicInfoList/BasicInfoList.types.ts similarity index 100% rename from packages/shared/lib/components/BasicInfoList/BasicInfoList.types.ts rename to packages/dms-kit/src/components/BasicInfoList/BasicInfoList.types.ts diff --git a/packages/shared/lib/components/BasicInfoList/README.md b/packages/dms-kit/src/components/BasicInfoList/README.md similarity index 100% rename from packages/shared/lib/components/BasicInfoList/README.md rename to packages/dms-kit/src/components/BasicInfoList/README.md diff --git a/packages/shared/lib/components/BasicInfoList/__snapshots__/BasicInfoList.test.tsx.snap b/packages/dms-kit/src/components/BasicInfoList/__snapshots__/BasicInfoList.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/BasicInfoList/__snapshots__/BasicInfoList.test.tsx.snap rename to packages/dms-kit/src/components/BasicInfoList/__snapshots__/BasicInfoList.test.tsx.snap diff --git a/packages/shared/lib/components/BasicInfoList/index.ts b/packages/dms-kit/src/components/BasicInfoList/index.ts similarity index 100% rename from packages/shared/lib/components/BasicInfoList/index.ts rename to packages/dms-kit/src/components/BasicInfoList/index.ts diff --git a/packages/shared/lib/components/BasicInfoList/style.ts b/packages/dms-kit/src/components/BasicInfoList/style.ts similarity index 100% rename from packages/shared/lib/components/BasicInfoList/style.ts rename to packages/dms-kit/src/components/BasicInfoList/style.ts diff --git a/packages/shared/lib/components/BasicInput/Input.tsx b/packages/dms-kit/src/components/BasicInput/Input.tsx similarity index 100% rename from packages/shared/lib/components/BasicInput/Input.tsx rename to packages/dms-kit/src/components/BasicInput/Input.tsx diff --git a/packages/shared/lib/components/BasicInput/Password.tsx b/packages/dms-kit/src/components/BasicInput/Password.tsx similarity index 100% rename from packages/shared/lib/components/BasicInput/Password.tsx rename to packages/dms-kit/src/components/BasicInput/Password.tsx diff --git a/packages/shared/lib/components/BasicInput/README.md b/packages/dms-kit/src/components/BasicInput/README.md similarity index 100% rename from packages/shared/lib/components/BasicInput/README.md rename to packages/dms-kit/src/components/BasicInput/README.md diff --git a/packages/shared/lib/components/BasicInput/TextArea.tsx b/packages/dms-kit/src/components/BasicInput/TextArea.tsx similarity index 100% rename from packages/shared/lib/components/BasicInput/TextArea.tsx rename to packages/dms-kit/src/components/BasicInput/TextArea.tsx diff --git a/packages/shared/lib/components/BasicInput/__tests__/Input.test.tsx b/packages/dms-kit/src/components/BasicInput/__tests__/Input.test.tsx similarity index 100% rename from packages/shared/lib/components/BasicInput/__tests__/Input.test.tsx rename to packages/dms-kit/src/components/BasicInput/__tests__/Input.test.tsx diff --git a/packages/shared/lib/components/BasicInput/__tests__/Password.test.tsx b/packages/dms-kit/src/components/BasicInput/__tests__/Password.test.tsx similarity index 100% rename from packages/shared/lib/components/BasicInput/__tests__/Password.test.tsx rename to packages/dms-kit/src/components/BasicInput/__tests__/Password.test.tsx diff --git a/packages/shared/lib/components/BasicInput/__tests__/TextArea.test.tsx b/packages/dms-kit/src/components/BasicInput/__tests__/TextArea.test.tsx similarity index 100% rename from packages/shared/lib/components/BasicInput/__tests__/TextArea.test.tsx rename to packages/dms-kit/src/components/BasicInput/__tests__/TextArea.test.tsx diff --git a/packages/shared/lib/components/BasicInput/__tests__/__snapshots__/Input.test.tsx.snap b/packages/dms-kit/src/components/BasicInput/__tests__/__snapshots__/Input.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/BasicInput/__tests__/__snapshots__/Input.test.tsx.snap rename to packages/dms-kit/src/components/BasicInput/__tests__/__snapshots__/Input.test.tsx.snap diff --git a/packages/shared/lib/components/BasicInput/__tests__/__snapshots__/Password.test.tsx.snap b/packages/dms-kit/src/components/BasicInput/__tests__/__snapshots__/Password.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/BasicInput/__tests__/__snapshots__/Password.test.tsx.snap rename to packages/dms-kit/src/components/BasicInput/__tests__/__snapshots__/Password.test.tsx.snap diff --git a/packages/shared/lib/components/BasicInput/__tests__/__snapshots__/TextArea.test.tsx.snap b/packages/dms-kit/src/components/BasicInput/__tests__/__snapshots__/TextArea.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/BasicInput/__tests__/__snapshots__/TextArea.test.tsx.snap rename to packages/dms-kit/src/components/BasicInput/__tests__/__snapshots__/TextArea.test.tsx.snap diff --git a/packages/shared/lib/components/BasicInput/index.tsx b/packages/dms-kit/src/components/BasicInput/index.tsx similarity index 100% rename from packages/shared/lib/components/BasicInput/index.tsx rename to packages/dms-kit/src/components/BasicInput/index.tsx diff --git a/packages/shared/lib/components/BasicInput/style.ts b/packages/dms-kit/src/components/BasicInput/style.ts similarity index 100% rename from packages/shared/lib/components/BasicInput/style.ts rename to packages/dms-kit/src/components/BasicInput/style.ts diff --git a/packages/shared/lib/components/BasicInputNumber/BasicInputNumber.test.tsx b/packages/dms-kit/src/components/BasicInputNumber/BasicInputNumber.test.tsx similarity index 100% rename from packages/shared/lib/components/BasicInputNumber/BasicInputNumber.test.tsx rename to packages/dms-kit/src/components/BasicInputNumber/BasicInputNumber.test.tsx diff --git a/packages/shared/lib/components/BasicInputNumber/BasicInputNumber.tsx b/packages/dms-kit/src/components/BasicInputNumber/BasicInputNumber.tsx similarity index 100% rename from packages/shared/lib/components/BasicInputNumber/BasicInputNumber.tsx rename to packages/dms-kit/src/components/BasicInputNumber/BasicInputNumber.tsx diff --git a/packages/shared/lib/components/BasicInputNumber/BasicInputNumber.types.ts b/packages/dms-kit/src/components/BasicInputNumber/BasicInputNumber.types.ts similarity index 100% rename from packages/shared/lib/components/BasicInputNumber/BasicInputNumber.types.ts rename to packages/dms-kit/src/components/BasicInputNumber/BasicInputNumber.types.ts diff --git a/packages/shared/lib/components/BasicInputNumber/README.md b/packages/dms-kit/src/components/BasicInputNumber/README.md similarity index 100% rename from packages/shared/lib/components/BasicInputNumber/README.md rename to packages/dms-kit/src/components/BasicInputNumber/README.md diff --git a/packages/shared/lib/components/BasicInputNumber/__snapshots__/BasicInputNumber.test.tsx.snap b/packages/dms-kit/src/components/BasicInputNumber/__snapshots__/BasicInputNumber.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/BasicInputNumber/__snapshots__/BasicInputNumber.test.tsx.snap rename to packages/dms-kit/src/components/BasicInputNumber/__snapshots__/BasicInputNumber.test.tsx.snap diff --git a/packages/shared/lib/components/BasicInputNumber/index.ts b/packages/dms-kit/src/components/BasicInputNumber/index.ts similarity index 100% rename from packages/shared/lib/components/BasicInputNumber/index.ts rename to packages/dms-kit/src/components/BasicInputNumber/index.ts diff --git a/packages/shared/lib/components/BasicInputNumber/style.ts b/packages/dms-kit/src/components/BasicInputNumber/style.ts similarity index 56% rename from packages/shared/lib/components/BasicInputNumber/style.ts rename to packages/dms-kit/src/components/BasicInputNumber/style.ts index f6c867495..78b239e02 100644 --- a/packages/shared/lib/components/BasicInputNumber/style.ts +++ b/packages/dms-kit/src/components/BasicInputNumber/style.ts @@ -1,7 +1,17 @@ -import { styled } from '@mui/material/styles'; -import { InputNumber } from 'antd'; +import { StyledComponent } from '@emotion/styled'; +import { styled, Theme } from '@mui/material/styles'; +import { MUIStyledCommonProps } from '@mui/system/createStyled'; +import { InputNumber, InputNumberProps } from 'antd'; -export const BasicInputNumberStyleWrapper = styled(InputNumber)` +export const BasicInputNumberStyleWrapper: StyledComponent< + InputNumberProps & { + children?: React.ReactNode; + } & { + ref?: React.Ref | undefined; + } & MUIStyledCommonProps, + {}, + {} +> = styled(InputNumber)` &.basic-inputNumber-wrapper.ant-input-number { font-size: 14px; border-radius: 4px; diff --git a/packages/shared/lib/components/BasicModal/BasicModal.test.tsx b/packages/dms-kit/src/components/BasicModal/BasicModal.test.tsx similarity index 100% rename from packages/shared/lib/components/BasicModal/BasicModal.test.tsx rename to packages/dms-kit/src/components/BasicModal/BasicModal.test.tsx diff --git a/packages/shared/lib/components/BasicModal/BasicModal.tsx b/packages/dms-kit/src/components/BasicModal/BasicModal.tsx similarity index 100% rename from packages/shared/lib/components/BasicModal/BasicModal.tsx rename to packages/dms-kit/src/components/BasicModal/BasicModal.tsx diff --git a/packages/shared/lib/components/BasicModal/BasicModal.types.ts b/packages/dms-kit/src/components/BasicModal/BasicModal.types.ts similarity index 100% rename from packages/shared/lib/components/BasicModal/BasicModal.types.ts rename to packages/dms-kit/src/components/BasicModal/BasicModal.types.ts diff --git a/packages/shared/lib/components/BasicModal/README.md b/packages/dms-kit/src/components/BasicModal/README.md similarity index 100% rename from packages/shared/lib/components/BasicModal/README.md rename to packages/dms-kit/src/components/BasicModal/README.md diff --git a/packages/shared/lib/components/BasicModal/__snapshots__/BasicModal.test.tsx.snap b/packages/dms-kit/src/components/BasicModal/__snapshots__/BasicModal.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/BasicModal/__snapshots__/BasicModal.test.tsx.snap rename to packages/dms-kit/src/components/BasicModal/__snapshots__/BasicModal.test.tsx.snap diff --git a/packages/shared/lib/components/BasicModal/index.ts b/packages/dms-kit/src/components/BasicModal/index.ts similarity index 100% rename from packages/shared/lib/components/BasicModal/index.ts rename to packages/dms-kit/src/components/BasicModal/index.ts diff --git a/packages/shared/lib/components/BasicModal/style.ts b/packages/dms-kit/src/components/BasicModal/style.ts similarity index 100% rename from packages/shared/lib/components/BasicModal/style.ts rename to packages/dms-kit/src/components/BasicModal/style.ts diff --git a/packages/shared/lib/components/BasicRangePicker/BasicRangePicker.test.tsx b/packages/dms-kit/src/components/BasicRangePicker/BasicRangePicker.test.tsx similarity index 100% rename from packages/shared/lib/components/BasicRangePicker/BasicRangePicker.test.tsx rename to packages/dms-kit/src/components/BasicRangePicker/BasicRangePicker.test.tsx diff --git a/packages/shared/lib/components/BasicRangePicker/BasicRangePicker.tsx b/packages/dms-kit/src/components/BasicRangePicker/BasicRangePicker.tsx similarity index 100% rename from packages/shared/lib/components/BasicRangePicker/BasicRangePicker.tsx rename to packages/dms-kit/src/components/BasicRangePicker/BasicRangePicker.tsx diff --git a/packages/shared/lib/components/BasicRangePicker/BasicRangePicker.types.ts b/packages/dms-kit/src/components/BasicRangePicker/BasicRangePicker.types.ts similarity index 100% rename from packages/shared/lib/components/BasicRangePicker/BasicRangePicker.types.ts rename to packages/dms-kit/src/components/BasicRangePicker/BasicRangePicker.types.ts diff --git a/packages/shared/lib/components/BasicRangePicker/README.md b/packages/dms-kit/src/components/BasicRangePicker/README.md similarity index 100% rename from packages/shared/lib/components/BasicRangePicker/README.md rename to packages/dms-kit/src/components/BasicRangePicker/README.md diff --git a/packages/shared/lib/components/BasicRangePicker/__snapshots__/BasicRangePicker.test.tsx.snap b/packages/dms-kit/src/components/BasicRangePicker/__snapshots__/BasicRangePicker.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/BasicRangePicker/__snapshots__/BasicRangePicker.test.tsx.snap rename to packages/dms-kit/src/components/BasicRangePicker/__snapshots__/BasicRangePicker.test.tsx.snap diff --git a/packages/shared/lib/components/BasicRangePicker/index.ts b/packages/dms-kit/src/components/BasicRangePicker/index.ts similarity index 100% rename from packages/shared/lib/components/BasicRangePicker/index.ts rename to packages/dms-kit/src/components/BasicRangePicker/index.ts diff --git a/packages/shared/lib/components/BasicRangePicker/style.ts b/packages/dms-kit/src/components/BasicRangePicker/style.ts similarity index 100% rename from packages/shared/lib/components/BasicRangePicker/style.ts rename to packages/dms-kit/src/components/BasicRangePicker/style.ts diff --git a/packages/shared/lib/components/BasicResult/BasicResult.test.tsx b/packages/dms-kit/src/components/BasicResult/BasicResult.test.tsx similarity index 100% rename from packages/shared/lib/components/BasicResult/BasicResult.test.tsx rename to packages/dms-kit/src/components/BasicResult/BasicResult.test.tsx diff --git a/packages/shared/lib/components/BasicResult/BasicResult.tsx b/packages/dms-kit/src/components/BasicResult/BasicResult.tsx similarity index 100% rename from packages/shared/lib/components/BasicResult/BasicResult.tsx rename to packages/dms-kit/src/components/BasicResult/BasicResult.tsx diff --git a/packages/shared/lib/components/BasicResult/BasicResult.types.ts b/packages/dms-kit/src/components/BasicResult/BasicResult.types.ts similarity index 100% rename from packages/shared/lib/components/BasicResult/BasicResult.types.ts rename to packages/dms-kit/src/components/BasicResult/BasicResult.types.ts diff --git a/packages/shared/lib/components/BasicResult/README.md b/packages/dms-kit/src/components/BasicResult/README.md similarity index 100% rename from packages/shared/lib/components/BasicResult/README.md rename to packages/dms-kit/src/components/BasicResult/README.md diff --git a/packages/shared/lib/components/BasicResult/ResultIcon.tsx b/packages/dms-kit/src/components/BasicResult/ResultIcon.tsx similarity index 100% rename from packages/shared/lib/components/BasicResult/ResultIcon.tsx rename to packages/dms-kit/src/components/BasicResult/ResultIcon.tsx diff --git a/packages/shared/lib/components/BasicResult/__snapshots__/BasicResult.test.tsx.snap b/packages/dms-kit/src/components/BasicResult/__snapshots__/BasicResult.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/BasicResult/__snapshots__/BasicResult.test.tsx.snap rename to packages/dms-kit/src/components/BasicResult/__snapshots__/BasicResult.test.tsx.snap diff --git a/packages/shared/lib/components/BasicResult/index.ts b/packages/dms-kit/src/components/BasicResult/index.ts similarity index 100% rename from packages/shared/lib/components/BasicResult/index.ts rename to packages/dms-kit/src/components/BasicResult/index.ts diff --git a/packages/shared/lib/components/BasicResult/style.ts b/packages/dms-kit/src/components/BasicResult/style.ts similarity index 100% rename from packages/shared/lib/components/BasicResult/style.ts rename to packages/dms-kit/src/components/BasicResult/style.ts diff --git a/packages/shared/lib/components/BasicSegmented/BasicSegmented.test.tsx b/packages/dms-kit/src/components/BasicSegmented/BasicSegmented.test.tsx similarity index 100% rename from packages/shared/lib/components/BasicSegmented/BasicSegmented.test.tsx rename to packages/dms-kit/src/components/BasicSegmented/BasicSegmented.test.tsx diff --git a/packages/shared/lib/components/BasicSegmented/BasicSegmented.tsx b/packages/dms-kit/src/components/BasicSegmented/BasicSegmented.tsx similarity index 100% rename from packages/shared/lib/components/BasicSegmented/BasicSegmented.tsx rename to packages/dms-kit/src/components/BasicSegmented/BasicSegmented.tsx diff --git a/packages/shared/lib/components/BasicSegmented/BasicSegmented.types.ts b/packages/dms-kit/src/components/BasicSegmented/BasicSegmented.types.ts similarity index 100% rename from packages/shared/lib/components/BasicSegmented/BasicSegmented.types.ts rename to packages/dms-kit/src/components/BasicSegmented/BasicSegmented.types.ts diff --git a/packages/shared/lib/components/BasicSegmented/README.md b/packages/dms-kit/src/components/BasicSegmented/README.md similarity index 100% rename from packages/shared/lib/components/BasicSegmented/README.md rename to packages/dms-kit/src/components/BasicSegmented/README.md diff --git a/packages/shared/lib/components/BasicSegmented/__snapshots__/BasicSegmented.test.tsx.snap b/packages/dms-kit/src/components/BasicSegmented/__snapshots__/BasicSegmented.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/BasicSegmented/__snapshots__/BasicSegmented.test.tsx.snap rename to packages/dms-kit/src/components/BasicSegmented/__snapshots__/BasicSegmented.test.tsx.snap diff --git a/packages/shared/lib/components/BasicSegmented/index.ts b/packages/dms-kit/src/components/BasicSegmented/index.ts similarity index 100% rename from packages/shared/lib/components/BasicSegmented/index.ts rename to packages/dms-kit/src/components/BasicSegmented/index.ts diff --git a/packages/shared/lib/components/BasicSegmented/style.ts b/packages/dms-kit/src/components/BasicSegmented/style.ts similarity index 100% rename from packages/shared/lib/components/BasicSegmented/style.ts rename to packages/dms-kit/src/components/BasicSegmented/style.ts diff --git a/packages/shared/lib/components/BasicSelect/BasicSelect.test.tsx b/packages/dms-kit/src/components/BasicSelect/BasicSelect.test.tsx similarity index 100% rename from packages/shared/lib/components/BasicSelect/BasicSelect.test.tsx rename to packages/dms-kit/src/components/BasicSelect/BasicSelect.test.tsx diff --git a/packages/shared/lib/components/BasicSelect/BasicSelect.tsx b/packages/dms-kit/src/components/BasicSelect/BasicSelect.tsx similarity index 100% rename from packages/shared/lib/components/BasicSelect/BasicSelect.tsx rename to packages/dms-kit/src/components/BasicSelect/BasicSelect.tsx diff --git a/packages/shared/lib/components/BasicSelect/BasicSelect.types.ts b/packages/dms-kit/src/components/BasicSelect/BasicSelect.types.ts similarity index 100% rename from packages/shared/lib/components/BasicSelect/BasicSelect.types.ts rename to packages/dms-kit/src/components/BasicSelect/BasicSelect.types.ts diff --git a/packages/shared/lib/components/BasicSelect/README.md b/packages/dms-kit/src/components/BasicSelect/README.md similarity index 100% rename from packages/shared/lib/components/BasicSelect/README.md rename to packages/dms-kit/src/components/BasicSelect/README.md diff --git a/packages/shared/lib/components/BasicSelect/__snapshots__/BasicSelect.test.tsx.snap b/packages/dms-kit/src/components/BasicSelect/__snapshots__/BasicSelect.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/BasicSelect/__snapshots__/BasicSelect.test.tsx.snap rename to packages/dms-kit/src/components/BasicSelect/__snapshots__/BasicSelect.test.tsx.snap diff --git a/packages/shared/lib/components/BasicSelect/index.ts b/packages/dms-kit/src/components/BasicSelect/index.ts similarity index 100% rename from packages/shared/lib/components/BasicSelect/index.ts rename to packages/dms-kit/src/components/BasicSelect/index.ts diff --git a/packages/shared/lib/components/BasicSelect/style.ts b/packages/dms-kit/src/components/BasicSelect/style.ts similarity index 100% rename from packages/shared/lib/components/BasicSelect/style.ts rename to packages/dms-kit/src/components/BasicSelect/style.ts diff --git a/packages/shared/lib/components/BasicSelect/utils/index.ts b/packages/dms-kit/src/components/BasicSelect/utils/index.ts similarity index 100% rename from packages/shared/lib/components/BasicSelect/utils/index.ts rename to packages/dms-kit/src/components/BasicSelect/utils/index.ts diff --git a/packages/shared/lib/components/BasicSwitch/BasicSwitch.test.tsx b/packages/dms-kit/src/components/BasicSwitch/BasicSwitch.test.tsx similarity index 100% rename from packages/shared/lib/components/BasicSwitch/BasicSwitch.test.tsx rename to packages/dms-kit/src/components/BasicSwitch/BasicSwitch.test.tsx diff --git a/packages/shared/lib/components/BasicSwitch/BasicSwitch.tsx b/packages/dms-kit/src/components/BasicSwitch/BasicSwitch.tsx similarity index 100% rename from packages/shared/lib/components/BasicSwitch/BasicSwitch.tsx rename to packages/dms-kit/src/components/BasicSwitch/BasicSwitch.tsx diff --git a/packages/shared/lib/components/BasicSwitch/BasicSwitch.types.ts b/packages/dms-kit/src/components/BasicSwitch/BasicSwitch.types.ts similarity index 100% rename from packages/shared/lib/components/BasicSwitch/BasicSwitch.types.ts rename to packages/dms-kit/src/components/BasicSwitch/BasicSwitch.types.ts diff --git a/packages/shared/lib/components/BasicSwitch/README.md b/packages/dms-kit/src/components/BasicSwitch/README.md similarity index 100% rename from packages/shared/lib/components/BasicSwitch/README.md rename to packages/dms-kit/src/components/BasicSwitch/README.md diff --git a/packages/shared/lib/components/BasicSwitch/__snapshots__/BasicSwitch.test.tsx.snap b/packages/dms-kit/src/components/BasicSwitch/__snapshots__/BasicSwitch.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/BasicSwitch/__snapshots__/BasicSwitch.test.tsx.snap rename to packages/dms-kit/src/components/BasicSwitch/__snapshots__/BasicSwitch.test.tsx.snap diff --git a/packages/shared/lib/components/BasicSwitch/index.ts b/packages/dms-kit/src/components/BasicSwitch/index.ts similarity index 100% rename from packages/shared/lib/components/BasicSwitch/index.ts rename to packages/dms-kit/src/components/BasicSwitch/index.ts diff --git a/packages/shared/lib/components/BasicSwitch/style.ts b/packages/dms-kit/src/components/BasicSwitch/style.ts similarity index 100% rename from packages/shared/lib/components/BasicSwitch/style.ts rename to packages/dms-kit/src/components/BasicSwitch/style.ts diff --git a/packages/shared/lib/components/BasicTable/BasicTable.test.tsx b/packages/dms-kit/src/components/BasicTable/BasicTable.test.tsx similarity index 100% rename from packages/shared/lib/components/BasicTable/BasicTable.test.tsx rename to packages/dms-kit/src/components/BasicTable/BasicTable.test.tsx diff --git a/packages/shared/lib/components/BasicTable/BasicTable.tsx b/packages/dms-kit/src/components/BasicTable/BasicTable.tsx similarity index 100% rename from packages/shared/lib/components/BasicTable/BasicTable.tsx rename to packages/dms-kit/src/components/BasicTable/BasicTable.tsx diff --git a/packages/shared/lib/components/BasicTable/BasicTable.types.ts b/packages/dms-kit/src/components/BasicTable/BasicTable.types.ts similarity index 100% rename from packages/shared/lib/components/BasicTable/BasicTable.types.ts rename to packages/dms-kit/src/components/BasicTable/BasicTable.types.ts diff --git a/packages/shared/lib/components/BasicTable/README.md b/packages/dms-kit/src/components/BasicTable/README.md similarity index 100% rename from packages/shared/lib/components/BasicTable/README.md rename to packages/dms-kit/src/components/BasicTable/README.md diff --git a/packages/shared/lib/components/BasicTable/__snapshots__/BasicTable.test.tsx.snap b/packages/dms-kit/src/components/BasicTable/__snapshots__/BasicTable.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/BasicTable/__snapshots__/BasicTable.test.tsx.snap rename to packages/dms-kit/src/components/BasicTable/__snapshots__/BasicTable.test.tsx.snap diff --git a/packages/shared/lib/components/BasicTable/index.ts b/packages/dms-kit/src/components/BasicTable/index.ts similarity index 100% rename from packages/shared/lib/components/BasicTable/index.ts rename to packages/dms-kit/src/components/BasicTable/index.ts diff --git a/packages/shared/lib/components/BasicTag/BasicTag.test.tsx b/packages/dms-kit/src/components/BasicTag/BasicTag.test.tsx similarity index 100% rename from packages/shared/lib/components/BasicTag/BasicTag.test.tsx rename to packages/dms-kit/src/components/BasicTag/BasicTag.test.tsx diff --git a/packages/shared/lib/components/BasicTag/BasicTag.tsx b/packages/dms-kit/src/components/BasicTag/BasicTag.tsx similarity index 100% rename from packages/shared/lib/components/BasicTag/BasicTag.tsx rename to packages/dms-kit/src/components/BasicTag/BasicTag.tsx diff --git a/packages/shared/lib/components/BasicTag/BasicTag.types.ts b/packages/dms-kit/src/components/BasicTag/BasicTag.types.ts similarity index 100% rename from packages/shared/lib/components/BasicTag/BasicTag.types.ts rename to packages/dms-kit/src/components/BasicTag/BasicTag.types.ts diff --git a/packages/shared/lib/components/BasicTag/README.md b/packages/dms-kit/src/components/BasicTag/README.md similarity index 100% rename from packages/shared/lib/components/BasicTag/README.md rename to packages/dms-kit/src/components/BasicTag/README.md diff --git a/packages/shared/lib/components/BasicTag/__snapshots__/BasicTag.test.tsx.snap b/packages/dms-kit/src/components/BasicTag/__snapshots__/BasicTag.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/BasicTag/__snapshots__/BasicTag.test.tsx.snap rename to packages/dms-kit/src/components/BasicTag/__snapshots__/BasicTag.test.tsx.snap diff --git a/packages/shared/lib/components/BasicTag/index.ts b/packages/dms-kit/src/components/BasicTag/index.ts similarity index 100% rename from packages/shared/lib/components/BasicTag/index.ts rename to packages/dms-kit/src/components/BasicTag/index.ts diff --git a/packages/shared/lib/components/BasicTag/style.ts b/packages/dms-kit/src/components/BasicTag/style.ts similarity index 100% rename from packages/shared/lib/components/BasicTag/style.ts rename to packages/dms-kit/src/components/BasicTag/style.ts diff --git a/packages/shared/lib/components/BasicToolTip/BasicToolTip.test.tsx b/packages/dms-kit/src/components/BasicToolTip/BasicToolTip.test.tsx similarity index 100% rename from packages/shared/lib/components/BasicToolTip/BasicToolTip.test.tsx rename to packages/dms-kit/src/components/BasicToolTip/BasicToolTip.test.tsx diff --git a/packages/shared/lib/components/BasicToolTip/BasicToolTip.tsx b/packages/dms-kit/src/components/BasicToolTip/BasicToolTip.tsx similarity index 100% rename from packages/shared/lib/components/BasicToolTip/BasicToolTip.tsx rename to packages/dms-kit/src/components/BasicToolTip/BasicToolTip.tsx diff --git a/packages/shared/lib/components/BasicToolTip/BasicToolTip.types.ts b/packages/dms-kit/src/components/BasicToolTip/BasicToolTip.types.ts similarity index 100% rename from packages/shared/lib/components/BasicToolTip/BasicToolTip.types.ts rename to packages/dms-kit/src/components/BasicToolTip/BasicToolTip.types.ts diff --git a/packages/shared/lib/components/BasicToolTip/README.md b/packages/dms-kit/src/components/BasicToolTip/README.md similarity index 100% rename from packages/shared/lib/components/BasicToolTip/README.md rename to packages/dms-kit/src/components/BasicToolTip/README.md diff --git a/packages/shared/lib/components/BasicToolTip/__snapshots__/BasicToolTip.test.tsx.snap b/packages/dms-kit/src/components/BasicToolTip/__snapshots__/BasicToolTip.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/BasicToolTip/__snapshots__/BasicToolTip.test.tsx.snap rename to packages/dms-kit/src/components/BasicToolTip/__snapshots__/BasicToolTip.test.tsx.snap diff --git a/packages/shared/lib/components/BasicToolTip/index.ts b/packages/dms-kit/src/components/BasicToolTip/index.ts similarity index 100% rename from packages/shared/lib/components/BasicToolTip/index.ts rename to packages/dms-kit/src/components/BasicToolTip/index.ts diff --git a/packages/shared/lib/components/BasicToolTip/style.ts b/packages/dms-kit/src/components/BasicToolTip/style.ts similarity index 100% rename from packages/shared/lib/components/BasicToolTip/style.ts rename to packages/dms-kit/src/components/BasicToolTip/style.ts diff --git a/packages/shared/lib/components/BasicToolTip/utils/index.tsx b/packages/dms-kit/src/components/BasicToolTip/utils/index.tsx similarity index 100% rename from packages/shared/lib/components/BasicToolTip/utils/index.tsx rename to packages/dms-kit/src/components/BasicToolTip/utils/index.tsx diff --git a/packages/shared/lib/components/BasicTreeSelect/BasicTreeSelect.test.tsx b/packages/dms-kit/src/components/BasicTreeSelect/BasicTreeSelect.test.tsx similarity index 100% rename from packages/shared/lib/components/BasicTreeSelect/BasicTreeSelect.test.tsx rename to packages/dms-kit/src/components/BasicTreeSelect/BasicTreeSelect.test.tsx diff --git a/packages/shared/lib/components/BasicTreeSelect/BasicTreeSelect.tsx b/packages/dms-kit/src/components/BasicTreeSelect/BasicTreeSelect.tsx similarity index 100% rename from packages/shared/lib/components/BasicTreeSelect/BasicTreeSelect.tsx rename to packages/dms-kit/src/components/BasicTreeSelect/BasicTreeSelect.tsx diff --git a/packages/shared/lib/components/BasicTreeSelect/BasicTreeSelect.types.ts b/packages/dms-kit/src/components/BasicTreeSelect/BasicTreeSelect.types.ts similarity index 100% rename from packages/shared/lib/components/BasicTreeSelect/BasicTreeSelect.types.ts rename to packages/dms-kit/src/components/BasicTreeSelect/BasicTreeSelect.types.ts diff --git a/packages/shared/lib/components/BasicTreeSelect/README.md b/packages/dms-kit/src/components/BasicTreeSelect/README.md similarity index 100% rename from packages/shared/lib/components/BasicTreeSelect/README.md rename to packages/dms-kit/src/components/BasicTreeSelect/README.md diff --git a/packages/shared/lib/components/BasicTreeSelect/__snapshots__/BasicTreeSelect.test.tsx.snap b/packages/dms-kit/src/components/BasicTreeSelect/__snapshots__/BasicTreeSelect.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/BasicTreeSelect/__snapshots__/BasicTreeSelect.test.tsx.snap rename to packages/dms-kit/src/components/BasicTreeSelect/__snapshots__/BasicTreeSelect.test.tsx.snap diff --git a/packages/shared/lib/components/BasicTreeSelect/index.ts b/packages/dms-kit/src/components/BasicTreeSelect/index.ts similarity index 100% rename from packages/shared/lib/components/BasicTreeSelect/index.ts rename to packages/dms-kit/src/components/BasicTreeSelect/index.ts diff --git a/packages/shared/lib/components/BasicTreeSelect/style.ts b/packages/dms-kit/src/components/BasicTreeSelect/style.ts similarity index 85% rename from packages/shared/lib/components/BasicTreeSelect/style.ts rename to packages/dms-kit/src/components/BasicTreeSelect/style.ts index 8c5b7a8fa..08bd9c1f8 100644 --- a/packages/shared/lib/components/BasicTreeSelect/style.ts +++ b/packages/dms-kit/src/components/BasicTreeSelect/style.ts @@ -1,7 +1,17 @@ -import { styled } from '@mui/material/styles'; -import { TreeSelect } from 'antd'; - -export const BasicTreeSelectStyleWrapper = styled(TreeSelect)` +import { StyledComponent } from '@emotion/styled'; +import { styled, Theme } from '@mui/material/styles'; +import { MUIStyledCommonProps } from '@mui/system/createStyled'; +import { TreeSelect, TreeSelectProps } from 'antd'; + +export const BasicTreeSelectStyleWrapper: StyledComponent< + TreeSelectProps & { + children?: React.ReactNode; + } & { + ref?: React.Ref | undefined; + } & MUIStyledCommonProps, + {}, + {} +> = styled(TreeSelect)` &.ant-select.basic-tree-select-wrapper { .ant-select-clear { width: 14px; diff --git a/packages/shared/lib/components/ConfigItem/ConfigItem.tsx b/packages/dms-kit/src/components/ConfigItem/ConfigItem.tsx similarity index 100% rename from packages/shared/lib/components/ConfigItem/ConfigItem.tsx rename to packages/dms-kit/src/components/ConfigItem/ConfigItem.tsx diff --git a/packages/shared/lib/components/ConfigItem/ConfigItem.types.ts b/packages/dms-kit/src/components/ConfigItem/ConfigItem.types.ts similarity index 100% rename from packages/shared/lib/components/ConfigItem/ConfigItem.types.ts rename to packages/dms-kit/src/components/ConfigItem/ConfigItem.types.ts diff --git a/packages/shared/lib/components/ConfigItem/README.md b/packages/dms-kit/src/components/ConfigItem/README.md similarity index 100% rename from packages/shared/lib/components/ConfigItem/README.md rename to packages/dms-kit/src/components/ConfigItem/README.md diff --git a/packages/shared/lib/components/ConfigItem/__tests__/ConfigItem.test.tsx b/packages/dms-kit/src/components/ConfigItem/__tests__/ConfigItem.test.tsx similarity index 100% rename from packages/shared/lib/components/ConfigItem/__tests__/ConfigItem.test.tsx rename to packages/dms-kit/src/components/ConfigItem/__tests__/ConfigItem.test.tsx diff --git a/packages/shared/lib/components/ConfigItem/__tests__/EditInput.test.tsx b/packages/dms-kit/src/components/ConfigItem/__tests__/EditInput.test.tsx similarity index 100% rename from packages/shared/lib/components/ConfigItem/__tests__/EditInput.test.tsx rename to packages/dms-kit/src/components/ConfigItem/__tests__/EditInput.test.tsx diff --git a/packages/shared/lib/components/ConfigItem/__tests__/EditInputNumber.test.tsx b/packages/dms-kit/src/components/ConfigItem/__tests__/EditInputNumber.test.tsx similarity index 100% rename from packages/shared/lib/components/ConfigItem/__tests__/EditInputNumber.test.tsx rename to packages/dms-kit/src/components/ConfigItem/__tests__/EditInputNumber.test.tsx diff --git a/packages/shared/lib/components/ConfigItem/__tests__/ImageUploader.test.tsx b/packages/dms-kit/src/components/ConfigItem/__tests__/ImageUploader.test.tsx similarity index 100% rename from packages/shared/lib/components/ConfigItem/__tests__/ImageUploader.test.tsx rename to packages/dms-kit/src/components/ConfigItem/__tests__/ImageUploader.test.tsx diff --git a/packages/shared/lib/components/ConfigItem/__tests__/LabelContent.test.tsx b/packages/dms-kit/src/components/ConfigItem/__tests__/LabelContent.test.tsx similarity index 100% rename from packages/shared/lib/components/ConfigItem/__tests__/LabelContent.test.tsx rename to packages/dms-kit/src/components/ConfigItem/__tests__/LabelContent.test.tsx diff --git a/packages/shared/lib/components/ConfigItem/__tests__/__snapshots__/ConfigItem.test.tsx.snap b/packages/dms-kit/src/components/ConfigItem/__tests__/__snapshots__/ConfigItem.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/ConfigItem/__tests__/__snapshots__/ConfigItem.test.tsx.snap rename to packages/dms-kit/src/components/ConfigItem/__tests__/__snapshots__/ConfigItem.test.tsx.snap diff --git a/packages/shared/lib/components/ConfigItem/__tests__/__snapshots__/EditInput.test.tsx.snap b/packages/dms-kit/src/components/ConfigItem/__tests__/__snapshots__/EditInput.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/ConfigItem/__tests__/__snapshots__/EditInput.test.tsx.snap rename to packages/dms-kit/src/components/ConfigItem/__tests__/__snapshots__/EditInput.test.tsx.snap diff --git a/packages/shared/lib/components/ConfigItem/__tests__/__snapshots__/EditInputNumber.test.tsx.snap b/packages/dms-kit/src/components/ConfigItem/__tests__/__snapshots__/EditInputNumber.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/ConfigItem/__tests__/__snapshots__/EditInputNumber.test.tsx.snap rename to packages/dms-kit/src/components/ConfigItem/__tests__/__snapshots__/EditInputNumber.test.tsx.snap diff --git a/packages/shared/lib/components/ConfigItem/__tests__/__snapshots__/ImageUploader.test.tsx.snap b/packages/dms-kit/src/components/ConfigItem/__tests__/__snapshots__/ImageUploader.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/ConfigItem/__tests__/__snapshots__/ImageUploader.test.tsx.snap rename to packages/dms-kit/src/components/ConfigItem/__tests__/__snapshots__/ImageUploader.test.tsx.snap diff --git a/packages/shared/lib/components/ConfigItem/__tests__/__snapshots__/LabelContent.test.tsx.snap b/packages/dms-kit/src/components/ConfigItem/__tests__/__snapshots__/LabelContent.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/ConfigItem/__tests__/__snapshots__/LabelContent.test.tsx.snap rename to packages/dms-kit/src/components/ConfigItem/__tests__/__snapshots__/LabelContent.test.tsx.snap diff --git a/packages/shared/lib/components/ConfigItem/components/EditInput.tsx b/packages/dms-kit/src/components/ConfigItem/components/EditInput.tsx similarity index 100% rename from packages/shared/lib/components/ConfigItem/components/EditInput.tsx rename to packages/dms-kit/src/components/ConfigItem/components/EditInput.tsx diff --git a/packages/shared/lib/components/ConfigItem/components/EditInputNumber.tsx b/packages/dms-kit/src/components/ConfigItem/components/EditInputNumber.tsx similarity index 100% rename from packages/shared/lib/components/ConfigItem/components/EditInputNumber.tsx rename to packages/dms-kit/src/components/ConfigItem/components/EditInputNumber.tsx diff --git a/packages/shared/lib/components/ConfigItem/components/ImageUploader.tsx b/packages/dms-kit/src/components/ConfigItem/components/ImageUploader.tsx similarity index 100% rename from packages/shared/lib/components/ConfigItem/components/ImageUploader.tsx rename to packages/dms-kit/src/components/ConfigItem/components/ImageUploader.tsx diff --git a/packages/shared/lib/components/ConfigItem/components/LabelContent.tsx b/packages/dms-kit/src/components/ConfigItem/components/LabelContent.tsx similarity index 100% rename from packages/shared/lib/components/ConfigItem/components/LabelContent.tsx rename to packages/dms-kit/src/components/ConfigItem/components/LabelContent.tsx diff --git a/packages/shared/lib/components/ConfigItem/hooks/useHideConfigInputNode.tsx b/packages/dms-kit/src/components/ConfigItem/hooks/useHideConfigInputNode.tsx similarity index 100% rename from packages/shared/lib/components/ConfigItem/hooks/useHideConfigInputNode.tsx rename to packages/dms-kit/src/components/ConfigItem/hooks/useHideConfigInputNode.tsx diff --git a/packages/shared/lib/components/ConfigItem/index.ts b/packages/dms-kit/src/components/ConfigItem/index.ts similarity index 100% rename from packages/shared/lib/components/ConfigItem/index.ts rename to packages/dms-kit/src/components/ConfigItem/index.ts diff --git a/packages/shared/lib/components/ConfigItem/style.ts b/packages/dms-kit/src/components/ConfigItem/style.ts similarity index 100% rename from packages/shared/lib/components/ConfigItem/style.ts rename to packages/dms-kit/src/components/ConfigItem/style.ts diff --git a/packages/shared/lib/components/CopyIcon/CopyIcon.test.tsx b/packages/dms-kit/src/components/CopyIcon/CopyIcon.test.tsx similarity index 100% rename from packages/shared/lib/components/CopyIcon/CopyIcon.test.tsx rename to packages/dms-kit/src/components/CopyIcon/CopyIcon.test.tsx diff --git a/packages/shared/lib/components/CopyIcon/CopyIcon.tsx b/packages/dms-kit/src/components/CopyIcon/CopyIcon.tsx similarity index 100% rename from packages/shared/lib/components/CopyIcon/CopyIcon.tsx rename to packages/dms-kit/src/components/CopyIcon/CopyIcon.tsx diff --git a/packages/shared/lib/components/CopyIcon/CopyIcon.types.ts b/packages/dms-kit/src/components/CopyIcon/CopyIcon.types.ts similarity index 100% rename from packages/shared/lib/components/CopyIcon/CopyIcon.types.ts rename to packages/dms-kit/src/components/CopyIcon/CopyIcon.types.ts diff --git a/packages/shared/lib/components/CopyIcon/README.md b/packages/dms-kit/src/components/CopyIcon/README.md similarity index 100% rename from packages/shared/lib/components/CopyIcon/README.md rename to packages/dms-kit/src/components/CopyIcon/README.md diff --git a/packages/shared/lib/components/CopyIcon/__snapshots__/CopyIcon.test.tsx.snap b/packages/dms-kit/src/components/CopyIcon/__snapshots__/CopyIcon.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/CopyIcon/__snapshots__/CopyIcon.test.tsx.snap rename to packages/dms-kit/src/components/CopyIcon/__snapshots__/CopyIcon.test.tsx.snap diff --git a/packages/shared/lib/components/CopyIcon/index.tsx b/packages/dms-kit/src/components/CopyIcon/index.tsx similarity index 100% rename from packages/shared/lib/components/CopyIcon/index.tsx rename to packages/dms-kit/src/components/CopyIcon/index.tsx diff --git a/packages/shared/lib/components/CopyIcon/style.ts b/packages/dms-kit/src/components/CopyIcon/style.ts similarity index 100% rename from packages/shared/lib/components/CopyIcon/style.ts rename to packages/dms-kit/src/components/CopyIcon/style.ts diff --git a/packages/shared/lib/components/CronInput/CronInput.data.ts b/packages/dms-kit/src/components/CronInput/CronInput.data.ts similarity index 100% rename from packages/shared/lib/components/CronInput/CronInput.data.ts rename to packages/dms-kit/src/components/CronInput/CronInput.data.ts diff --git a/packages/shared/lib/components/CronInput/CronInput.enum.ts b/packages/dms-kit/src/components/CronInput/CronInput.enum.ts similarity index 100% rename from packages/shared/lib/components/CronInput/CronInput.enum.ts rename to packages/dms-kit/src/components/CronInput/CronInput.enum.ts diff --git a/packages/shared/lib/components/CronInput/CronInput.test.tsx b/packages/dms-kit/src/components/CronInput/CronInput.test.tsx similarity index 100% rename from packages/shared/lib/components/CronInput/CronInput.test.tsx rename to packages/dms-kit/src/components/CronInput/CronInput.test.tsx diff --git a/packages/shared/lib/components/CronInput/CronInput.tsx b/packages/dms-kit/src/components/CronInput/CronInput.tsx similarity index 100% rename from packages/shared/lib/components/CronInput/CronInput.tsx rename to packages/dms-kit/src/components/CronInput/CronInput.tsx diff --git a/packages/shared/lib/components/CronInput/CronInput.types.ts b/packages/dms-kit/src/components/CronInput/CronInput.types.ts similarity index 100% rename from packages/shared/lib/components/CronInput/CronInput.types.ts rename to packages/dms-kit/src/components/CronInput/CronInput.types.ts diff --git a/packages/shared/lib/components/CronInput/README.md b/packages/dms-kit/src/components/CronInput/README.md similarity index 100% rename from packages/shared/lib/components/CronInput/README.md rename to packages/dms-kit/src/components/CronInput/README.md diff --git a/packages/shared/lib/components/CronInput/__snapshots__/CronInput.test.tsx.snap b/packages/dms-kit/src/components/CronInput/__snapshots__/CronInput.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/CronInput/__snapshots__/CronInput.test.tsx.snap rename to packages/dms-kit/src/components/CronInput/__snapshots__/CronInput.test.tsx.snap diff --git a/packages/shared/lib/components/CronInput/index.ts b/packages/dms-kit/src/components/CronInput/index.ts similarity index 100% rename from packages/shared/lib/components/CronInput/index.ts rename to packages/dms-kit/src/components/CronInput/index.ts diff --git a/packages/shared/lib/components/CronInput/style.ts b/packages/dms-kit/src/components/CronInput/style.ts similarity index 100% rename from packages/shared/lib/components/CronInput/style.ts rename to packages/dms-kit/src/components/CronInput/style.ts diff --git a/packages/shared/lib/components/CronInput/useCron/cron.tool.test.ts b/packages/dms-kit/src/components/CronInput/useCron/cron.tool.test.ts similarity index 100% rename from packages/shared/lib/components/CronInput/useCron/cron.tool.test.ts rename to packages/dms-kit/src/components/CronInput/useCron/cron.tool.test.ts diff --git a/packages/shared/lib/components/CronInput/useCron/cron.tool.ts b/packages/dms-kit/src/components/CronInput/useCron/cron.tool.ts similarity index 100% rename from packages/shared/lib/components/CronInput/useCron/cron.tool.ts rename to packages/dms-kit/src/components/CronInput/useCron/cron.tool.ts diff --git a/packages/shared/lib/components/CronInput/useCron/index.test.tsx b/packages/dms-kit/src/components/CronInput/useCron/index.test.tsx similarity index 100% rename from packages/shared/lib/components/CronInput/useCron/index.test.tsx rename to packages/dms-kit/src/components/CronInput/useCron/index.test.tsx diff --git a/packages/shared/lib/components/CronInput/useCron/index.tsx b/packages/dms-kit/src/components/CronInput/useCron/index.tsx similarity index 100% rename from packages/shared/lib/components/CronInput/useCron/index.tsx rename to packages/dms-kit/src/components/CronInput/useCron/index.tsx diff --git a/packages/shared/lib/components/CronInput/useCron/index.type.ts b/packages/dms-kit/src/components/CronInput/useCron/index.type.ts similarity index 100% rename from packages/shared/lib/components/CronInput/useCron/index.type.ts rename to packages/dms-kit/src/components/CronInput/useCron/index.type.ts diff --git a/packages/shared/lib/components/CustomAvatar/CustomAvatar.test.tsx b/packages/dms-kit/src/components/CustomAvatar/CustomAvatar.test.tsx similarity index 100% rename from packages/shared/lib/components/CustomAvatar/CustomAvatar.test.tsx rename to packages/dms-kit/src/components/CustomAvatar/CustomAvatar.test.tsx diff --git a/packages/shared/lib/components/CustomAvatar/CustomAvatar.tsx b/packages/dms-kit/src/components/CustomAvatar/CustomAvatar.tsx similarity index 100% rename from packages/shared/lib/components/CustomAvatar/CustomAvatar.tsx rename to packages/dms-kit/src/components/CustomAvatar/CustomAvatar.tsx diff --git a/packages/shared/lib/components/CustomAvatar/CustomAvatar.types.ts b/packages/dms-kit/src/components/CustomAvatar/CustomAvatar.types.ts similarity index 100% rename from packages/shared/lib/components/CustomAvatar/CustomAvatar.types.ts rename to packages/dms-kit/src/components/CustomAvatar/CustomAvatar.types.ts diff --git a/packages/shared/lib/components/CustomAvatar/README.md b/packages/dms-kit/src/components/CustomAvatar/README.md similarity index 100% rename from packages/shared/lib/components/CustomAvatar/README.md rename to packages/dms-kit/src/components/CustomAvatar/README.md diff --git a/packages/shared/lib/components/CustomAvatar/__snapshots__/CustomAvatar.test.tsx.snap b/packages/dms-kit/src/components/CustomAvatar/__snapshots__/CustomAvatar.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/CustomAvatar/__snapshots__/CustomAvatar.test.tsx.snap rename to packages/dms-kit/src/components/CustomAvatar/__snapshots__/CustomAvatar.test.tsx.snap diff --git a/packages/shared/lib/components/CustomAvatar/index.ts b/packages/dms-kit/src/components/CustomAvatar/index.ts similarity index 100% rename from packages/shared/lib/components/CustomAvatar/index.ts rename to packages/dms-kit/src/components/CustomAvatar/index.ts diff --git a/packages/shared/lib/components/CustomAvatar/style.ts b/packages/dms-kit/src/components/CustomAvatar/style.ts similarity index 100% rename from packages/shared/lib/components/CustomAvatar/style.ts rename to packages/dms-kit/src/components/CustomAvatar/style.ts diff --git a/packages/shared/lib/components/CustomDraggerUpload/CustomDraggerUpload.test.tsx b/packages/dms-kit/src/components/CustomDraggerUpload/CustomDraggerUpload.test.tsx similarity index 100% rename from packages/shared/lib/components/CustomDraggerUpload/CustomDraggerUpload.test.tsx rename to packages/dms-kit/src/components/CustomDraggerUpload/CustomDraggerUpload.test.tsx diff --git a/packages/shared/lib/components/CustomDraggerUpload/CustomDraggerUpload.tsx b/packages/dms-kit/src/components/CustomDraggerUpload/CustomDraggerUpload.tsx similarity index 100% rename from packages/shared/lib/components/CustomDraggerUpload/CustomDraggerUpload.tsx rename to packages/dms-kit/src/components/CustomDraggerUpload/CustomDraggerUpload.tsx diff --git a/packages/shared/lib/components/CustomDraggerUpload/CustomDraggerUpload.types.ts b/packages/dms-kit/src/components/CustomDraggerUpload/CustomDraggerUpload.types.ts similarity index 100% rename from packages/shared/lib/components/CustomDraggerUpload/CustomDraggerUpload.types.ts rename to packages/dms-kit/src/components/CustomDraggerUpload/CustomDraggerUpload.types.ts diff --git a/packages/shared/lib/components/CustomDraggerUpload/README.md b/packages/dms-kit/src/components/CustomDraggerUpload/README.md similarity index 100% rename from packages/shared/lib/components/CustomDraggerUpload/README.md rename to packages/dms-kit/src/components/CustomDraggerUpload/README.md diff --git a/packages/shared/lib/components/CustomDraggerUpload/__snapshots__/CustomDraggerUpload.test.tsx.snap b/packages/dms-kit/src/components/CustomDraggerUpload/__snapshots__/CustomDraggerUpload.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/CustomDraggerUpload/__snapshots__/CustomDraggerUpload.test.tsx.snap rename to packages/dms-kit/src/components/CustomDraggerUpload/__snapshots__/CustomDraggerUpload.test.tsx.snap diff --git a/packages/shared/lib/components/CustomDraggerUpload/index.ts b/packages/dms-kit/src/components/CustomDraggerUpload/index.ts similarity index 100% rename from packages/shared/lib/components/CustomDraggerUpload/index.ts rename to packages/dms-kit/src/components/CustomDraggerUpload/index.ts diff --git a/packages/shared/lib/components/CustomDraggerUpload/style.ts b/packages/dms-kit/src/components/CustomDraggerUpload/style.ts similarity index 100% rename from packages/shared/lib/components/CustomDraggerUpload/style.ts rename to packages/dms-kit/src/components/CustomDraggerUpload/style.ts diff --git a/packages/shared/lib/components/CustomForm/FormItem/CustomLabelContent.tsx b/packages/dms-kit/src/components/CustomForm/FormItem/CustomLabelContent.tsx similarity index 100% rename from packages/shared/lib/components/CustomForm/FormItem/CustomLabelContent.tsx rename to packages/dms-kit/src/components/CustomForm/FormItem/CustomLabelContent.tsx diff --git a/packages/shared/lib/components/CustomForm/FormItem/FormInputBotBorder.tsx b/packages/dms-kit/src/components/CustomForm/FormItem/FormInputBotBorder.tsx similarity index 100% rename from packages/shared/lib/components/CustomForm/FormItem/FormInputBotBorder.tsx rename to packages/dms-kit/src/components/CustomForm/FormItem/FormInputBotBorder.tsx diff --git a/packages/shared/lib/components/CustomForm/FormItem/FormItem.types.ts b/packages/dms-kit/src/components/CustomForm/FormItem/FormItem.types.ts similarity index 100% rename from packages/shared/lib/components/CustomForm/FormItem/FormItem.types.ts rename to packages/dms-kit/src/components/CustomForm/FormItem/FormItem.types.ts diff --git a/packages/shared/lib/components/CustomForm/FormItem/FormItemLabel.tsx b/packages/dms-kit/src/components/CustomForm/FormItem/FormItemLabel.tsx similarity index 100% rename from packages/shared/lib/components/CustomForm/FormItem/FormItemLabel.tsx rename to packages/dms-kit/src/components/CustomForm/FormItem/FormItemLabel.tsx diff --git a/packages/shared/lib/components/CustomForm/FormItem/FormItemNoLabel.tsx b/packages/dms-kit/src/components/CustomForm/FormItem/FormItemNoLabel.tsx similarity index 100% rename from packages/shared/lib/components/CustomForm/FormItem/FormItemNoLabel.tsx rename to packages/dms-kit/src/components/CustomForm/FormItem/FormItemNoLabel.tsx diff --git a/packages/shared/lib/components/CustomForm/FormItem/__tests__/CustomLabelContent.test.tsx b/packages/dms-kit/src/components/CustomForm/FormItem/__tests__/CustomLabelContent.test.tsx similarity index 100% rename from packages/shared/lib/components/CustomForm/FormItem/__tests__/CustomLabelContent.test.tsx rename to packages/dms-kit/src/components/CustomForm/FormItem/__tests__/CustomLabelContent.test.tsx diff --git a/packages/shared/lib/components/CustomForm/FormItem/__tests__/FormInputBotBorder.test.tsx b/packages/dms-kit/src/components/CustomForm/FormItem/__tests__/FormInputBotBorder.test.tsx similarity index 100% rename from packages/shared/lib/components/CustomForm/FormItem/__tests__/FormInputBotBorder.test.tsx rename to packages/dms-kit/src/components/CustomForm/FormItem/__tests__/FormInputBotBorder.test.tsx diff --git a/packages/shared/lib/components/CustomForm/FormItem/__tests__/FormItemLabel.test.tsx b/packages/dms-kit/src/components/CustomForm/FormItem/__tests__/FormItemLabel.test.tsx similarity index 100% rename from packages/shared/lib/components/CustomForm/FormItem/__tests__/FormItemLabel.test.tsx rename to packages/dms-kit/src/components/CustomForm/FormItem/__tests__/FormItemLabel.test.tsx diff --git a/packages/shared/lib/components/CustomForm/FormItem/__tests__/FormItemNoLabel.test.tsx b/packages/dms-kit/src/components/CustomForm/FormItem/__tests__/FormItemNoLabel.test.tsx similarity index 100% rename from packages/shared/lib/components/CustomForm/FormItem/__tests__/FormItemNoLabel.test.tsx rename to packages/dms-kit/src/components/CustomForm/FormItem/__tests__/FormItemNoLabel.test.tsx diff --git a/packages/shared/lib/components/CustomForm/FormItem/__tests__/__snapshots__/CustomLabelContent.test.tsx.snap b/packages/dms-kit/src/components/CustomForm/FormItem/__tests__/__snapshots__/CustomLabelContent.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/CustomForm/FormItem/__tests__/__snapshots__/CustomLabelContent.test.tsx.snap rename to packages/dms-kit/src/components/CustomForm/FormItem/__tests__/__snapshots__/CustomLabelContent.test.tsx.snap diff --git a/packages/shared/lib/components/CustomForm/FormItem/__tests__/__snapshots__/FormInputBotBorder.test.tsx.snap b/packages/dms-kit/src/components/CustomForm/FormItem/__tests__/__snapshots__/FormInputBotBorder.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/CustomForm/FormItem/__tests__/__snapshots__/FormInputBotBorder.test.tsx.snap rename to packages/dms-kit/src/components/CustomForm/FormItem/__tests__/__snapshots__/FormInputBotBorder.test.tsx.snap diff --git a/packages/shared/lib/components/CustomForm/FormItem/__tests__/__snapshots__/FormItemLabel.test.tsx.snap b/packages/dms-kit/src/components/CustomForm/FormItem/__tests__/__snapshots__/FormItemLabel.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/CustomForm/FormItem/__tests__/__snapshots__/FormItemLabel.test.tsx.snap rename to packages/dms-kit/src/components/CustomForm/FormItem/__tests__/__snapshots__/FormItemLabel.test.tsx.snap diff --git a/packages/shared/lib/components/CustomForm/FormItem/__tests__/__snapshots__/FormItemNoLabel.test.tsx.snap b/packages/dms-kit/src/components/CustomForm/FormItem/__tests__/__snapshots__/FormItemNoLabel.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/CustomForm/FormItem/__tests__/__snapshots__/FormItemNoLabel.test.tsx.snap rename to packages/dms-kit/src/components/CustomForm/FormItem/__tests__/__snapshots__/FormItemNoLabel.test.tsx.snap diff --git a/packages/shared/lib/components/CustomForm/FormItem/style.ts b/packages/dms-kit/src/components/CustomForm/FormItem/style.ts similarity index 100% rename from packages/shared/lib/components/CustomForm/FormItem/style.ts rename to packages/dms-kit/src/components/CustomForm/FormItem/style.ts diff --git a/packages/shared/lib/components/CustomForm/FormItemTitle/FormItemBigTitle.tsx b/packages/dms-kit/src/components/CustomForm/FormItemTitle/FormItemBigTitle.tsx similarity index 100% rename from packages/shared/lib/components/CustomForm/FormItemTitle/FormItemBigTitle.tsx rename to packages/dms-kit/src/components/CustomForm/FormItemTitle/FormItemBigTitle.tsx diff --git a/packages/shared/lib/components/CustomForm/FormItemTitle/FormItemSubTitle.tsx b/packages/dms-kit/src/components/CustomForm/FormItemTitle/FormItemSubTitle.tsx similarity index 100% rename from packages/shared/lib/components/CustomForm/FormItemTitle/FormItemSubTitle.tsx rename to packages/dms-kit/src/components/CustomForm/FormItemTitle/FormItemSubTitle.tsx diff --git a/packages/shared/lib/components/CustomForm/FormItemTitle/FormItemTitle.types.ts b/packages/dms-kit/src/components/CustomForm/FormItemTitle/FormItemTitle.types.ts similarity index 100% rename from packages/shared/lib/components/CustomForm/FormItemTitle/FormItemTitle.types.ts rename to packages/dms-kit/src/components/CustomForm/FormItemTitle/FormItemTitle.types.ts diff --git a/packages/shared/lib/components/CustomForm/FormItemTitle/__tests__/FormItemBigTitle.test.tsx b/packages/dms-kit/src/components/CustomForm/FormItemTitle/__tests__/FormItemBigTitle.test.tsx similarity index 100% rename from packages/shared/lib/components/CustomForm/FormItemTitle/__tests__/FormItemBigTitle.test.tsx rename to packages/dms-kit/src/components/CustomForm/FormItemTitle/__tests__/FormItemBigTitle.test.tsx diff --git a/packages/shared/lib/components/CustomForm/FormItemTitle/__tests__/FormItemSubTitle.test.tsx b/packages/dms-kit/src/components/CustomForm/FormItemTitle/__tests__/FormItemSubTitle.test.tsx similarity index 100% rename from packages/shared/lib/components/CustomForm/FormItemTitle/__tests__/FormItemSubTitle.test.tsx rename to packages/dms-kit/src/components/CustomForm/FormItemTitle/__tests__/FormItemSubTitle.test.tsx diff --git a/packages/shared/lib/components/CustomForm/FormItemTitle/__tests__/__snapshots__/FormItemBigTitle.test.tsx.snap b/packages/dms-kit/src/components/CustomForm/FormItemTitle/__tests__/__snapshots__/FormItemBigTitle.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/CustomForm/FormItemTitle/__tests__/__snapshots__/FormItemBigTitle.test.tsx.snap rename to packages/dms-kit/src/components/CustomForm/FormItemTitle/__tests__/__snapshots__/FormItemBigTitle.test.tsx.snap diff --git a/packages/shared/lib/components/CustomForm/FormItemTitle/__tests__/__snapshots__/FormItemSubTitle.test.tsx.snap b/packages/dms-kit/src/components/CustomForm/FormItemTitle/__tests__/__snapshots__/FormItemSubTitle.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/CustomForm/FormItemTitle/__tests__/__snapshots__/FormItemSubTitle.test.tsx.snap rename to packages/dms-kit/src/components/CustomForm/FormItemTitle/__tests__/__snapshots__/FormItemSubTitle.test.tsx.snap diff --git a/packages/shared/lib/components/CustomForm/FormItemTitle/style.ts b/packages/dms-kit/src/components/CustomForm/FormItemTitle/style.ts similarity index 100% rename from packages/shared/lib/components/CustomForm/FormItemTitle/style.ts rename to packages/dms-kit/src/components/CustomForm/FormItemTitle/style.ts diff --git a/packages/shared/lib/components/CustomForm/README.md b/packages/dms-kit/src/components/CustomForm/README.md similarity index 100% rename from packages/shared/lib/components/CustomForm/README.md rename to packages/dms-kit/src/components/CustomForm/README.md diff --git a/packages/shared/lib/components/CustomForm/index.ts b/packages/dms-kit/src/components/CustomForm/index.ts similarity index 100% rename from packages/shared/lib/components/CustomForm/index.ts rename to packages/dms-kit/src/components/CustomForm/index.ts diff --git a/packages/shared/lib/components/CustomForm/style.ts b/packages/dms-kit/src/components/CustomForm/style.ts similarity index 100% rename from packages/shared/lib/components/CustomForm/style.ts rename to packages/dms-kit/src/components/CustomForm/style.ts diff --git a/packages/shared/lib/components/CustomInput/CustomInput.test.tsx b/packages/dms-kit/src/components/CustomInput/CustomInput.test.tsx similarity index 100% rename from packages/shared/lib/components/CustomInput/CustomInput.test.tsx rename to packages/dms-kit/src/components/CustomInput/CustomInput.test.tsx diff --git a/packages/shared/lib/components/CustomInput/CustomInput.tsx b/packages/dms-kit/src/components/CustomInput/CustomInput.tsx similarity index 100% rename from packages/shared/lib/components/CustomInput/CustomInput.tsx rename to packages/dms-kit/src/components/CustomInput/CustomInput.tsx diff --git a/packages/shared/lib/components/CustomInput/CustomInput.types.ts b/packages/dms-kit/src/components/CustomInput/CustomInput.types.ts similarity index 100% rename from packages/shared/lib/components/CustomInput/CustomInput.types.ts rename to packages/dms-kit/src/components/CustomInput/CustomInput.types.ts diff --git a/packages/shared/lib/components/CustomInput/README.md b/packages/dms-kit/src/components/CustomInput/README.md similarity index 100% rename from packages/shared/lib/components/CustomInput/README.md rename to packages/dms-kit/src/components/CustomInput/README.md diff --git a/packages/shared/lib/components/CustomInput/__snapshots__/CustomInput.test.tsx.snap b/packages/dms-kit/src/components/CustomInput/__snapshots__/CustomInput.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/CustomInput/__snapshots__/CustomInput.test.tsx.snap rename to packages/dms-kit/src/components/CustomInput/__snapshots__/CustomInput.test.tsx.snap diff --git a/packages/shared/lib/components/CustomInput/index.ts b/packages/dms-kit/src/components/CustomInput/index.ts similarity index 100% rename from packages/shared/lib/components/CustomInput/index.ts rename to packages/dms-kit/src/components/CustomInput/index.ts diff --git a/packages/shared/lib/components/CustomInput/style.ts b/packages/dms-kit/src/components/CustomInput/style.ts similarity index 100% rename from packages/shared/lib/components/CustomInput/style.ts rename to packages/dms-kit/src/components/CustomInput/style.ts diff --git a/packages/shared/lib/components/CustomSegmentedFilter/CustomSegmentedFilter.tsx b/packages/dms-kit/src/components/CustomSegmentedFilter/CustomSegmentedFilter.tsx similarity index 100% rename from packages/shared/lib/components/CustomSegmentedFilter/CustomSegmentedFilter.tsx rename to packages/dms-kit/src/components/CustomSegmentedFilter/CustomSegmentedFilter.tsx diff --git a/packages/shared/lib/components/CustomSegmentedFilter/CustomSegmentedFilter.types.ts b/packages/dms-kit/src/components/CustomSegmentedFilter/CustomSegmentedFilter.types.ts similarity index 100% rename from packages/shared/lib/components/CustomSegmentedFilter/CustomSegmentedFilter.types.ts rename to packages/dms-kit/src/components/CustomSegmentedFilter/CustomSegmentedFilter.types.ts diff --git a/packages/shared/lib/components/CustomSegmentedFilter/README.md b/packages/dms-kit/src/components/CustomSegmentedFilter/README.md similarity index 100% rename from packages/shared/lib/components/CustomSegmentedFilter/README.md rename to packages/dms-kit/src/components/CustomSegmentedFilter/README.md diff --git a/packages/shared/lib/components/CustomSegmentedFilter/__tests__/CustomSegmentedFilter.test.tsx b/packages/dms-kit/src/components/CustomSegmentedFilter/__tests__/CustomSegmentedFilter.test.tsx similarity index 100% rename from packages/shared/lib/components/CustomSegmentedFilter/__tests__/CustomSegmentedFilter.test.tsx rename to packages/dms-kit/src/components/CustomSegmentedFilter/__tests__/CustomSegmentedFilter.test.tsx diff --git a/packages/shared/lib/components/CustomSegmentedFilter/__tests__/__snapshots__/CustomSegmentedFilter.test.tsx.snap b/packages/dms-kit/src/components/CustomSegmentedFilter/__tests__/__snapshots__/CustomSegmentedFilter.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/CustomSegmentedFilter/__tests__/__snapshots__/CustomSegmentedFilter.test.tsx.snap rename to packages/dms-kit/src/components/CustomSegmentedFilter/__tests__/__snapshots__/CustomSegmentedFilter.test.tsx.snap diff --git a/packages/shared/lib/components/CustomSegmentedFilter/index.ts b/packages/dms-kit/src/components/CustomSegmentedFilter/index.ts similarity index 100% rename from packages/shared/lib/components/CustomSegmentedFilter/index.ts rename to packages/dms-kit/src/components/CustomSegmentedFilter/index.ts diff --git a/packages/shared/lib/components/CustomSelect/CustomOptionLabel.tsx b/packages/dms-kit/src/components/CustomSelect/CustomOptionLabel.tsx similarity index 100% rename from packages/shared/lib/components/CustomSelect/CustomOptionLabel.tsx rename to packages/dms-kit/src/components/CustomSelect/CustomOptionLabel.tsx diff --git a/packages/shared/lib/components/CustomSelect/CustomPlaceholder.tsx b/packages/dms-kit/src/components/CustomSelect/CustomPlaceholder.tsx similarity index 100% rename from packages/shared/lib/components/CustomSelect/CustomPlaceholder.tsx rename to packages/dms-kit/src/components/CustomSelect/CustomPlaceholder.tsx diff --git a/packages/shared/lib/components/CustomSelect/CustomSelect.tsx b/packages/dms-kit/src/components/CustomSelect/CustomSelect.tsx similarity index 100% rename from packages/shared/lib/components/CustomSelect/CustomSelect.tsx rename to packages/dms-kit/src/components/CustomSelect/CustomSelect.tsx diff --git a/packages/shared/lib/components/CustomSelect/CustomSelect.types.ts b/packages/dms-kit/src/components/CustomSelect/CustomSelect.types.ts similarity index 100% rename from packages/shared/lib/components/CustomSelect/CustomSelect.types.ts rename to packages/dms-kit/src/components/CustomSelect/CustomSelect.types.ts diff --git a/packages/shared/lib/components/CustomSelect/CustomSelectSearchInput.tsx b/packages/dms-kit/src/components/CustomSelect/CustomSelectSearchInput.tsx similarity index 100% rename from packages/shared/lib/components/CustomSelect/CustomSelectSearchInput.tsx rename to packages/dms-kit/src/components/CustomSelect/CustomSelectSearchInput.tsx diff --git a/packages/shared/lib/components/CustomSelect/README.md b/packages/dms-kit/src/components/CustomSelect/README.md similarity index 100% rename from packages/shared/lib/components/CustomSelect/README.md rename to packages/dms-kit/src/components/CustomSelect/README.md diff --git a/packages/shared/lib/components/CustomSelect/__tests__/CustomOptionLabel.test.tsx b/packages/dms-kit/src/components/CustomSelect/__tests__/CustomOptionLabel.test.tsx similarity index 100% rename from packages/shared/lib/components/CustomSelect/__tests__/CustomOptionLabel.test.tsx rename to packages/dms-kit/src/components/CustomSelect/__tests__/CustomOptionLabel.test.tsx diff --git a/packages/shared/lib/components/CustomSelect/__tests__/CustomPlaceholder.test.tsx b/packages/dms-kit/src/components/CustomSelect/__tests__/CustomPlaceholder.test.tsx similarity index 100% rename from packages/shared/lib/components/CustomSelect/__tests__/CustomPlaceholder.test.tsx rename to packages/dms-kit/src/components/CustomSelect/__tests__/CustomPlaceholder.test.tsx diff --git a/packages/shared/lib/components/CustomSelect/__tests__/CustomSelect.test.tsx b/packages/dms-kit/src/components/CustomSelect/__tests__/CustomSelect.test.tsx similarity index 100% rename from packages/shared/lib/components/CustomSelect/__tests__/CustomSelect.test.tsx rename to packages/dms-kit/src/components/CustomSelect/__tests__/CustomSelect.test.tsx diff --git a/packages/shared/lib/components/CustomSelect/__tests__/CustomSelectSearchInput.test.tsx b/packages/dms-kit/src/components/CustomSelect/__tests__/CustomSelectSearchInput.test.tsx similarity index 100% rename from packages/shared/lib/components/CustomSelect/__tests__/CustomSelectSearchInput.test.tsx rename to packages/dms-kit/src/components/CustomSelect/__tests__/CustomSelectSearchInput.test.tsx diff --git a/packages/shared/lib/components/CustomSelect/__tests__/__snapshots__/CustomOptionLabel.test.tsx.snap b/packages/dms-kit/src/components/CustomSelect/__tests__/__snapshots__/CustomOptionLabel.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/CustomSelect/__tests__/__snapshots__/CustomOptionLabel.test.tsx.snap rename to packages/dms-kit/src/components/CustomSelect/__tests__/__snapshots__/CustomOptionLabel.test.tsx.snap diff --git a/packages/shared/lib/components/CustomSelect/__tests__/__snapshots__/CustomPlaceholder.test.tsx.snap b/packages/dms-kit/src/components/CustomSelect/__tests__/__snapshots__/CustomPlaceholder.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/CustomSelect/__tests__/__snapshots__/CustomPlaceholder.test.tsx.snap rename to packages/dms-kit/src/components/CustomSelect/__tests__/__snapshots__/CustomPlaceholder.test.tsx.snap diff --git a/packages/shared/lib/components/CustomSelect/__tests__/__snapshots__/CustomSelect.test.tsx.snap b/packages/dms-kit/src/components/CustomSelect/__tests__/__snapshots__/CustomSelect.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/CustomSelect/__tests__/__snapshots__/CustomSelect.test.tsx.snap rename to packages/dms-kit/src/components/CustomSelect/__tests__/__snapshots__/CustomSelect.test.tsx.snap diff --git a/packages/shared/lib/components/CustomSelect/__tests__/__snapshots__/CustomSelectSearchInput.test.tsx.snap b/packages/dms-kit/src/components/CustomSelect/__tests__/__snapshots__/CustomSelectSearchInput.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/CustomSelect/__tests__/__snapshots__/CustomSelectSearchInput.test.tsx.snap rename to packages/dms-kit/src/components/CustomSelect/__tests__/__snapshots__/CustomSelectSearchInput.test.tsx.snap diff --git a/packages/shared/lib/components/CustomSelect/index.ts b/packages/dms-kit/src/components/CustomSelect/index.ts similarity index 100% rename from packages/shared/lib/components/CustomSelect/index.ts rename to packages/dms-kit/src/components/CustomSelect/index.ts diff --git a/packages/shared/lib/components/CustomSelect/style.ts b/packages/dms-kit/src/components/CustomSelect/style.ts similarity index 100% rename from packages/shared/lib/components/CustomSelect/style.ts rename to packages/dms-kit/src/components/CustomSelect/style.ts diff --git a/packages/shared/lib/components/DatabaseTypeLogo/DatabaseTypeLogo.test.tsx b/packages/dms-kit/src/components/DatabaseTypeLogo/DatabaseTypeLogo.test.tsx similarity index 100% rename from packages/shared/lib/components/DatabaseTypeLogo/DatabaseTypeLogo.test.tsx rename to packages/dms-kit/src/components/DatabaseTypeLogo/DatabaseTypeLogo.test.tsx diff --git a/packages/shared/lib/components/DatabaseTypeLogo/DatabaseTypeLogo.tsx b/packages/dms-kit/src/components/DatabaseTypeLogo/DatabaseTypeLogo.tsx similarity index 100% rename from packages/shared/lib/components/DatabaseTypeLogo/DatabaseTypeLogo.tsx rename to packages/dms-kit/src/components/DatabaseTypeLogo/DatabaseTypeLogo.tsx diff --git a/packages/shared/lib/components/DatabaseTypeLogo/DatabaseTypeLogo.types.ts b/packages/dms-kit/src/components/DatabaseTypeLogo/DatabaseTypeLogo.types.ts similarity index 100% rename from packages/shared/lib/components/DatabaseTypeLogo/DatabaseTypeLogo.types.ts rename to packages/dms-kit/src/components/DatabaseTypeLogo/DatabaseTypeLogo.types.ts diff --git a/packages/shared/lib/components/DatabaseTypeLogo/README.md b/packages/dms-kit/src/components/DatabaseTypeLogo/README.md similarity index 100% rename from packages/shared/lib/components/DatabaseTypeLogo/README.md rename to packages/dms-kit/src/components/DatabaseTypeLogo/README.md diff --git a/packages/shared/lib/components/DatabaseTypeLogo/__snapshots__/DatabaseTypeLogo.test.tsx.snap b/packages/dms-kit/src/components/DatabaseTypeLogo/__snapshots__/DatabaseTypeLogo.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/DatabaseTypeLogo/__snapshots__/DatabaseTypeLogo.test.tsx.snap rename to packages/dms-kit/src/components/DatabaseTypeLogo/__snapshots__/DatabaseTypeLogo.test.tsx.snap diff --git a/packages/shared/lib/components/DatabaseTypeLogo/index.ts b/packages/dms-kit/src/components/DatabaseTypeLogo/index.ts similarity index 100% rename from packages/shared/lib/components/DatabaseTypeLogo/index.ts rename to packages/dms-kit/src/components/DatabaseTypeLogo/index.ts diff --git a/packages/shared/lib/components/DatabaseTypeLogo/style.ts b/packages/dms-kit/src/components/DatabaseTypeLogo/style.ts similarity index 100% rename from packages/shared/lib/components/DatabaseTypeLogo/style.ts rename to packages/dms-kit/src/components/DatabaseTypeLogo/style.ts diff --git a/packages/shared/lib/components/EditText/EditText.test.tsx b/packages/dms-kit/src/components/EditText/EditText.test.tsx similarity index 100% rename from packages/shared/lib/components/EditText/EditText.test.tsx rename to packages/dms-kit/src/components/EditText/EditText.test.tsx diff --git a/packages/shared/lib/components/EditText/EditText.tsx b/packages/dms-kit/src/components/EditText/EditText.tsx similarity index 100% rename from packages/shared/lib/components/EditText/EditText.tsx rename to packages/dms-kit/src/components/EditText/EditText.tsx diff --git a/packages/shared/lib/components/EditText/EditText.types.ts b/packages/dms-kit/src/components/EditText/EditText.types.ts similarity index 100% rename from packages/shared/lib/components/EditText/EditText.types.ts rename to packages/dms-kit/src/components/EditText/EditText.types.ts diff --git a/packages/shared/lib/components/EditText/README.md b/packages/dms-kit/src/components/EditText/README.md similarity index 100% rename from packages/shared/lib/components/EditText/README.md rename to packages/dms-kit/src/components/EditText/README.md diff --git a/packages/shared/lib/components/EditText/__snapshots__/EditText.test.tsx.snap b/packages/dms-kit/src/components/EditText/__snapshots__/EditText.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/EditText/__snapshots__/EditText.test.tsx.snap rename to packages/dms-kit/src/components/EditText/__snapshots__/EditText.test.tsx.snap diff --git a/packages/shared/lib/components/EditText/index.ts b/packages/dms-kit/src/components/EditText/index.ts similarity index 100% rename from packages/shared/lib/components/EditText/index.ts rename to packages/dms-kit/src/components/EditText/index.ts diff --git a/packages/shared/lib/components/EditText/style.ts b/packages/dms-kit/src/components/EditText/style.ts similarity index 100% rename from packages/shared/lib/components/EditText/style.ts rename to packages/dms-kit/src/components/EditText/style.ts diff --git a/packages/shared/lib/components/EditableSelect/EditableSelect.tsx b/packages/dms-kit/src/components/EditableSelect/EditableSelect.tsx similarity index 100% rename from packages/shared/lib/components/EditableSelect/EditableSelect.tsx rename to packages/dms-kit/src/components/EditableSelect/EditableSelect.tsx diff --git a/packages/shared/lib/components/EditableSelect/__tests__/EditableSelect.test.tsx b/packages/dms-kit/src/components/EditableSelect/__tests__/EditableSelect.test.tsx similarity index 100% rename from packages/shared/lib/components/EditableSelect/__tests__/EditableSelect.test.tsx rename to packages/dms-kit/src/components/EditableSelect/__tests__/EditableSelect.test.tsx diff --git a/packages/shared/lib/components/EditableSelect/__tests__/__snapshots__/EditableSelect.test.tsx.snap b/packages/dms-kit/src/components/EditableSelect/__tests__/__snapshots__/EditableSelect.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/EditableSelect/__tests__/__snapshots__/EditableSelect.test.tsx.snap rename to packages/dms-kit/src/components/EditableSelect/__tests__/__snapshots__/EditableSelect.test.tsx.snap diff --git a/packages/shared/lib/components/EditableSelect/index.ts b/packages/dms-kit/src/components/EditableSelect/index.ts similarity index 100% rename from packages/shared/lib/components/EditableSelect/index.ts rename to packages/dms-kit/src/components/EditableSelect/index.ts diff --git a/packages/shared/lib/components/EditableSelect/index.type.ts b/packages/dms-kit/src/components/EditableSelect/index.type.ts similarity index 100% rename from packages/shared/lib/components/EditableSelect/index.type.ts rename to packages/dms-kit/src/components/EditableSelect/index.type.ts diff --git a/packages/shared/lib/components/EditableSelect/style.ts b/packages/dms-kit/src/components/EditableSelect/style.ts similarity index 100% rename from packages/shared/lib/components/EditableSelect/style.ts rename to packages/dms-kit/src/components/EditableSelect/style.ts diff --git a/packages/shared/lib/components/EmptyBox/EmptyBox.test.tsx b/packages/dms-kit/src/components/EmptyBox/EmptyBox.test.tsx similarity index 100% rename from packages/shared/lib/components/EmptyBox/EmptyBox.test.tsx rename to packages/dms-kit/src/components/EmptyBox/EmptyBox.test.tsx diff --git a/packages/shared/lib/components/EmptyBox/EmptyBox.tsx b/packages/dms-kit/src/components/EmptyBox/EmptyBox.tsx similarity index 100% rename from packages/shared/lib/components/EmptyBox/EmptyBox.tsx rename to packages/dms-kit/src/components/EmptyBox/EmptyBox.tsx diff --git a/packages/shared/lib/components/EmptyBox/EmptyBox.types.ts b/packages/dms-kit/src/components/EmptyBox/EmptyBox.types.ts similarity index 100% rename from packages/shared/lib/components/EmptyBox/EmptyBox.types.ts rename to packages/dms-kit/src/components/EmptyBox/EmptyBox.types.ts diff --git a/packages/shared/lib/components/EmptyBox/README.md b/packages/dms-kit/src/components/EmptyBox/README.md similarity index 100% rename from packages/shared/lib/components/EmptyBox/README.md rename to packages/dms-kit/src/components/EmptyBox/README.md diff --git a/packages/shared/lib/components/EmptyBox/index.ts b/packages/dms-kit/src/components/EmptyBox/index.ts similarity index 100% rename from packages/shared/lib/components/EmptyBox/index.ts rename to packages/dms-kit/src/components/EmptyBox/index.ts diff --git a/packages/shared/lib/components/HeaderProgress/HeaderProgress.test.tsx b/packages/dms-kit/src/components/HeaderProgress/HeaderProgress.test.tsx similarity index 100% rename from packages/shared/lib/components/HeaderProgress/HeaderProgress.test.tsx rename to packages/dms-kit/src/components/HeaderProgress/HeaderProgress.test.tsx diff --git a/packages/shared/lib/components/HeaderProgress/HeaderProgress.tsx b/packages/dms-kit/src/components/HeaderProgress/HeaderProgress.tsx similarity index 100% rename from packages/shared/lib/components/HeaderProgress/HeaderProgress.tsx rename to packages/dms-kit/src/components/HeaderProgress/HeaderProgress.tsx diff --git a/packages/shared/lib/components/HeaderProgress/README.md b/packages/dms-kit/src/components/HeaderProgress/README.md similarity index 100% rename from packages/shared/lib/components/HeaderProgress/README.md rename to packages/dms-kit/src/components/HeaderProgress/README.md diff --git a/packages/shared/lib/components/HeaderProgress/index.ts b/packages/dms-kit/src/components/HeaderProgress/index.ts similarity index 100% rename from packages/shared/lib/components/HeaderProgress/index.ts rename to packages/dms-kit/src/components/HeaderProgress/index.ts diff --git a/packages/shared/lib/components/LazyLoadComponent/LazyLoadComponent.tsx b/packages/dms-kit/src/components/LazyLoadComponent/LazyLoadComponent.tsx similarity index 100% rename from packages/shared/lib/components/LazyLoadComponent/LazyLoadComponent.tsx rename to packages/dms-kit/src/components/LazyLoadComponent/LazyLoadComponent.tsx diff --git a/packages/shared/lib/components/LazyLoadComponent/LazyLoadComponent.types.ts b/packages/dms-kit/src/components/LazyLoadComponent/LazyLoadComponent.types.ts similarity index 100% rename from packages/shared/lib/components/LazyLoadComponent/LazyLoadComponent.types.ts rename to packages/dms-kit/src/components/LazyLoadComponent/LazyLoadComponent.types.ts diff --git a/packages/shared/lib/components/LazyLoadComponent/README.md b/packages/dms-kit/src/components/LazyLoadComponent/README.md similarity index 100% rename from packages/shared/lib/components/LazyLoadComponent/README.md rename to packages/dms-kit/src/components/LazyLoadComponent/README.md diff --git a/packages/shared/lib/components/LazyLoadComponent/__tests__/index.test.tsx b/packages/dms-kit/src/components/LazyLoadComponent/__tests__/index.test.tsx similarity index 100% rename from packages/shared/lib/components/LazyLoadComponent/__tests__/index.test.tsx rename to packages/dms-kit/src/components/LazyLoadComponent/__tests__/index.test.tsx diff --git a/packages/shared/lib/components/LazyLoadComponent/index.ts b/packages/dms-kit/src/components/LazyLoadComponent/index.ts similarity index 100% rename from packages/shared/lib/components/LazyLoadComponent/index.ts rename to packages/dms-kit/src/components/LazyLoadComponent/index.ts diff --git a/packages/shared/lib/components/LazyLoadComponent/style.ts b/packages/dms-kit/src/components/LazyLoadComponent/style.ts similarity index 100% rename from packages/shared/lib/components/LazyLoadComponent/style.ts rename to packages/dms-kit/src/components/LazyLoadComponent/style.ts diff --git a/packages/shared/lib/components/ModeSwitcher/ModeSwitcher.test.tsx b/packages/dms-kit/src/components/ModeSwitcher/ModeSwitcher.test.tsx similarity index 100% rename from packages/shared/lib/components/ModeSwitcher/ModeSwitcher.test.tsx rename to packages/dms-kit/src/components/ModeSwitcher/ModeSwitcher.test.tsx diff --git a/packages/shared/lib/components/ModeSwitcher/ModeSwitcher.tsx b/packages/dms-kit/src/components/ModeSwitcher/ModeSwitcher.tsx similarity index 100% rename from packages/shared/lib/components/ModeSwitcher/ModeSwitcher.tsx rename to packages/dms-kit/src/components/ModeSwitcher/ModeSwitcher.tsx diff --git a/packages/shared/lib/components/ModeSwitcher/ModeSwitcher.types.ts b/packages/dms-kit/src/components/ModeSwitcher/ModeSwitcher.types.ts similarity index 100% rename from packages/shared/lib/components/ModeSwitcher/ModeSwitcher.types.ts rename to packages/dms-kit/src/components/ModeSwitcher/ModeSwitcher.types.ts diff --git a/packages/shared/lib/components/ModeSwitcher/README.md b/packages/dms-kit/src/components/ModeSwitcher/README.md similarity index 100% rename from packages/shared/lib/components/ModeSwitcher/README.md rename to packages/dms-kit/src/components/ModeSwitcher/README.md diff --git a/packages/shared/lib/components/ModeSwitcher/__snapshots__/ModeSwitcher.test.tsx.snap b/packages/dms-kit/src/components/ModeSwitcher/__snapshots__/ModeSwitcher.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/ModeSwitcher/__snapshots__/ModeSwitcher.test.tsx.snap rename to packages/dms-kit/src/components/ModeSwitcher/__snapshots__/ModeSwitcher.test.tsx.snap diff --git a/packages/shared/lib/components/ModeSwitcher/index.ts b/packages/dms-kit/src/components/ModeSwitcher/index.ts similarity index 100% rename from packages/shared/lib/components/ModeSwitcher/index.ts rename to packages/dms-kit/src/components/ModeSwitcher/index.ts diff --git a/packages/shared/lib/components/ModeSwitcher/style.ts b/packages/dms-kit/src/components/ModeSwitcher/style.ts similarity index 100% rename from packages/shared/lib/components/ModeSwitcher/style.ts rename to packages/dms-kit/src/components/ModeSwitcher/style.ts diff --git a/packages/shared/lib/components/PageHeader/PageHeader.test.tsx b/packages/dms-kit/src/components/PageHeader/PageHeader.test.tsx similarity index 100% rename from packages/shared/lib/components/PageHeader/PageHeader.test.tsx rename to packages/dms-kit/src/components/PageHeader/PageHeader.test.tsx diff --git a/packages/shared/lib/components/PageHeader/PageHeader.tsx b/packages/dms-kit/src/components/PageHeader/PageHeader.tsx similarity index 100% rename from packages/shared/lib/components/PageHeader/PageHeader.tsx rename to packages/dms-kit/src/components/PageHeader/PageHeader.tsx diff --git a/packages/shared/lib/components/PageHeader/PageHeader.types.ts b/packages/dms-kit/src/components/PageHeader/PageHeader.types.ts similarity index 100% rename from packages/shared/lib/components/PageHeader/PageHeader.types.ts rename to packages/dms-kit/src/components/PageHeader/PageHeader.types.ts diff --git a/packages/shared/lib/components/PageHeader/README.md b/packages/dms-kit/src/components/PageHeader/README.md similarity index 100% rename from packages/shared/lib/components/PageHeader/README.md rename to packages/dms-kit/src/components/PageHeader/README.md diff --git a/packages/shared/lib/components/PageHeader/__snapshots__/PageHeader.test.tsx.snap b/packages/dms-kit/src/components/PageHeader/__snapshots__/PageHeader.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/PageHeader/__snapshots__/PageHeader.test.tsx.snap rename to packages/dms-kit/src/components/PageHeader/__snapshots__/PageHeader.test.tsx.snap diff --git a/packages/shared/lib/components/PageHeader/index.ts b/packages/dms-kit/src/components/PageHeader/index.ts similarity index 100% rename from packages/shared/lib/components/PageHeader/index.ts rename to packages/dms-kit/src/components/PageHeader/index.ts diff --git a/packages/shared/lib/components/PageHeader/style.ts b/packages/dms-kit/src/components/PageHeader/style.ts similarity index 100% rename from packages/shared/lib/components/PageHeader/style.ts rename to packages/dms-kit/src/components/PageHeader/style.ts diff --git a/packages/shared/lib/components/ReminderInformation/README.md b/packages/dms-kit/src/components/ReminderInformation/README.md similarity index 100% rename from packages/shared/lib/components/ReminderInformation/README.md rename to packages/dms-kit/src/components/ReminderInformation/README.md diff --git a/packages/shared/lib/components/ReminderInformation/ReminderInformation.tsx b/packages/dms-kit/src/components/ReminderInformation/ReminderInformation.tsx similarity index 100% rename from packages/shared/lib/components/ReminderInformation/ReminderInformation.tsx rename to packages/dms-kit/src/components/ReminderInformation/ReminderInformation.tsx diff --git a/packages/shared/lib/components/ReminderInformation/ReminderInformation.types.ts b/packages/dms-kit/src/components/ReminderInformation/ReminderInformation.types.ts similarity index 100% rename from packages/shared/lib/components/ReminderInformation/ReminderInformation.types.ts rename to packages/dms-kit/src/components/ReminderInformation/ReminderInformation.types.ts diff --git a/packages/shared/lib/components/ReminderInformation/__tests__/ReminderInformation.test.tsx b/packages/dms-kit/src/components/ReminderInformation/__tests__/ReminderInformation.test.tsx similarity index 100% rename from packages/shared/lib/components/ReminderInformation/__tests__/ReminderInformation.test.tsx rename to packages/dms-kit/src/components/ReminderInformation/__tests__/ReminderInformation.test.tsx diff --git a/packages/shared/lib/components/ReminderInformation/__tests__/__snapshots__/ReminderInformation.test.tsx.snap b/packages/dms-kit/src/components/ReminderInformation/__tests__/__snapshots__/ReminderInformation.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/ReminderInformation/__tests__/__snapshots__/ReminderInformation.test.tsx.snap rename to packages/dms-kit/src/components/ReminderInformation/__tests__/__snapshots__/ReminderInformation.test.tsx.snap diff --git a/packages/shared/lib/components/ReminderInformation/index.ts b/packages/dms-kit/src/components/ReminderInformation/index.ts similarity index 100% rename from packages/shared/lib/components/ReminderInformation/index.ts rename to packages/dms-kit/src/components/ReminderInformation/index.ts diff --git a/packages/shared/lib/components/ReminderInformation/style.ts b/packages/dms-kit/src/components/ReminderInformation/style.ts similarity index 100% rename from packages/shared/lib/components/ReminderInformation/style.ts rename to packages/dms-kit/src/components/ReminderInformation/style.ts diff --git a/packages/shared/lib/components/SegmentedTabs/README.md b/packages/dms-kit/src/components/SegmentedTabs/README.md similarity index 100% rename from packages/shared/lib/components/SegmentedTabs/README.md rename to packages/dms-kit/src/components/SegmentedTabs/README.md diff --git a/packages/shared/lib/components/SegmentedTabs/SegmentedTabs.test.tsx b/packages/dms-kit/src/components/SegmentedTabs/SegmentedTabs.test.tsx similarity index 100% rename from packages/shared/lib/components/SegmentedTabs/SegmentedTabs.test.tsx rename to packages/dms-kit/src/components/SegmentedTabs/SegmentedTabs.test.tsx diff --git a/packages/shared/lib/components/SegmentedTabs/SegmentedTabs.tsx b/packages/dms-kit/src/components/SegmentedTabs/SegmentedTabs.tsx similarity index 100% rename from packages/shared/lib/components/SegmentedTabs/SegmentedTabs.tsx rename to packages/dms-kit/src/components/SegmentedTabs/SegmentedTabs.tsx diff --git a/packages/shared/lib/components/SegmentedTabs/SegmentedTabs.types.ts b/packages/dms-kit/src/components/SegmentedTabs/SegmentedTabs.types.ts similarity index 100% rename from packages/shared/lib/components/SegmentedTabs/SegmentedTabs.types.ts rename to packages/dms-kit/src/components/SegmentedTabs/SegmentedTabs.types.ts diff --git a/packages/shared/lib/components/SegmentedTabs/__snapshots__/SegmentedTabs.test.tsx.snap b/packages/dms-kit/src/components/SegmentedTabs/__snapshots__/SegmentedTabs.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/SegmentedTabs/__snapshots__/SegmentedTabs.test.tsx.snap rename to packages/dms-kit/src/components/SegmentedTabs/__snapshots__/SegmentedTabs.test.tsx.snap diff --git a/packages/shared/lib/components/SegmentedTabs/index.ts b/packages/dms-kit/src/components/SegmentedTabs/index.ts similarity index 100% rename from packages/shared/lib/components/SegmentedTabs/index.ts rename to packages/dms-kit/src/components/SegmentedTabs/index.ts diff --git a/packages/shared/lib/components/SensitiveDisplay/README.md b/packages/dms-kit/src/components/SensitiveDisplay/README.md similarity index 100% rename from packages/shared/lib/components/SensitiveDisplay/README.md rename to packages/dms-kit/src/components/SensitiveDisplay/README.md diff --git a/packages/shared/lib/components/SensitiveDisplay/SensitiveDisplay.test.tsx b/packages/dms-kit/src/components/SensitiveDisplay/SensitiveDisplay.test.tsx similarity index 100% rename from packages/shared/lib/components/SensitiveDisplay/SensitiveDisplay.test.tsx rename to packages/dms-kit/src/components/SensitiveDisplay/SensitiveDisplay.test.tsx diff --git a/packages/shared/lib/components/SensitiveDisplay/SensitiveDisplay.tsx b/packages/dms-kit/src/components/SensitiveDisplay/SensitiveDisplay.tsx similarity index 100% rename from packages/shared/lib/components/SensitiveDisplay/SensitiveDisplay.tsx rename to packages/dms-kit/src/components/SensitiveDisplay/SensitiveDisplay.tsx diff --git a/packages/shared/lib/components/SensitiveDisplay/SensitiveDisplay.types.ts b/packages/dms-kit/src/components/SensitiveDisplay/SensitiveDisplay.types.ts similarity index 100% rename from packages/shared/lib/components/SensitiveDisplay/SensitiveDisplay.types.ts rename to packages/dms-kit/src/components/SensitiveDisplay/SensitiveDisplay.types.ts diff --git a/packages/shared/lib/components/SensitiveDisplay/__snapshots__/SensitiveDisplay.test.tsx.snap b/packages/dms-kit/src/components/SensitiveDisplay/__snapshots__/SensitiveDisplay.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/SensitiveDisplay/__snapshots__/SensitiveDisplay.test.tsx.snap rename to packages/dms-kit/src/components/SensitiveDisplay/__snapshots__/SensitiveDisplay.test.tsx.snap diff --git a/packages/shared/lib/components/SensitiveDisplay/index.ts b/packages/dms-kit/src/components/SensitiveDisplay/index.ts similarity index 100% rename from packages/shared/lib/components/SensitiveDisplay/index.ts rename to packages/dms-kit/src/components/SensitiveDisplay/index.ts diff --git a/packages/shared/lib/components/SensitiveDisplay/style.ts b/packages/dms-kit/src/components/SensitiveDisplay/style.ts similarity index 100% rename from packages/shared/lib/components/SensitiveDisplay/style.ts rename to packages/dms-kit/src/components/SensitiveDisplay/style.ts diff --git a/packages/shared/lib/components/SpinIndicator/README.md b/packages/dms-kit/src/components/SpinIndicator/README.md similarity index 100% rename from packages/shared/lib/components/SpinIndicator/README.md rename to packages/dms-kit/src/components/SpinIndicator/README.md diff --git a/packages/shared/lib/components/SpinIndicator/SpinIndicator.test.tsx b/packages/dms-kit/src/components/SpinIndicator/SpinIndicator.test.tsx similarity index 100% rename from packages/shared/lib/components/SpinIndicator/SpinIndicator.test.tsx rename to packages/dms-kit/src/components/SpinIndicator/SpinIndicator.test.tsx diff --git a/packages/shared/lib/components/SpinIndicator/SpinIndicator.tsx b/packages/dms-kit/src/components/SpinIndicator/SpinIndicator.tsx similarity index 100% rename from packages/shared/lib/components/SpinIndicator/SpinIndicator.tsx rename to packages/dms-kit/src/components/SpinIndicator/SpinIndicator.tsx diff --git a/packages/shared/lib/components/SpinIndicator/SpinIndicator.types.ts b/packages/dms-kit/src/components/SpinIndicator/SpinIndicator.types.ts similarity index 100% rename from packages/shared/lib/components/SpinIndicator/SpinIndicator.types.ts rename to packages/dms-kit/src/components/SpinIndicator/SpinIndicator.types.ts diff --git a/packages/shared/lib/components/SpinIndicator/__snapshots__/SpinIndicator.test.tsx.snap b/packages/dms-kit/src/components/SpinIndicator/__snapshots__/SpinIndicator.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/SpinIndicator/__snapshots__/SpinIndicator.test.tsx.snap rename to packages/dms-kit/src/components/SpinIndicator/__snapshots__/SpinIndicator.test.tsx.snap diff --git a/packages/shared/lib/components/SpinIndicator/index.ts b/packages/dms-kit/src/components/SpinIndicator/index.ts similarity index 100% rename from packages/shared/lib/components/SpinIndicator/index.ts rename to packages/dms-kit/src/components/SpinIndicator/index.ts diff --git a/packages/shared/lib/components/SystemConfigurationHub/README.md b/packages/dms-kit/src/components/SystemConfigurationHub/README.md similarity index 100% rename from packages/shared/lib/components/SystemConfigurationHub/README.md rename to packages/dms-kit/src/components/SystemConfigurationHub/README.md diff --git a/packages/shared/lib/components/SystemConfigurationHub/components/ConfigModifyBtn/__snapshots__/index.test.tsx.snap b/packages/dms-kit/src/components/SystemConfigurationHub/components/ConfigModifyBtn/__snapshots__/index.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/SystemConfigurationHub/components/ConfigModifyBtn/__snapshots__/index.test.tsx.snap rename to packages/dms-kit/src/components/SystemConfigurationHub/components/ConfigModifyBtn/__snapshots__/index.test.tsx.snap diff --git a/packages/shared/lib/components/SystemConfigurationHub/components/ConfigModifyBtn/index.test.tsx b/packages/dms-kit/src/components/SystemConfigurationHub/components/ConfigModifyBtn/index.test.tsx similarity index 87% rename from packages/shared/lib/components/SystemConfigurationHub/components/ConfigModifyBtn/index.test.tsx rename to packages/dms-kit/src/components/SystemConfigurationHub/components/ConfigModifyBtn/index.test.tsx index 91fa75826..5773eab78 100644 --- a/packages/shared/lib/components/SystemConfigurationHub/components/ConfigModifyBtn/index.test.tsx +++ b/packages/dms-kit/src/components/SystemConfigurationHub/components/ConfigModifyBtn/index.test.tsx @@ -1,12 +1,12 @@ import { cleanup, fireEvent, act } from '@testing-library/react'; import ConfigModifyBtn from '.'; -import { mockUseCurrentUser } from '../../../../testUtil/mockHook/mockUseCurrentUser'; +// import { mockUseCurrentUser } from '../../../../testUtil/mockHook/mockUseCurrentUser'; import { superRender } from '../../../../testUtil/superRender'; import { getBySelector } from '../../../../testUtil/customQuery'; describe('base/System/components/ConfigModifyBtn', () => { beforeEach(() => { - mockUseCurrentUser(); + // mockUseCurrentUser(); jest.useFakeTimers(); }); diff --git a/packages/shared/lib/components/SystemConfigurationHub/components/ConfigModifyBtn/index.tsx b/packages/dms-kit/src/components/SystemConfigurationHub/components/ConfigModifyBtn/index.tsx similarity index 100% rename from packages/shared/lib/components/SystemConfigurationHub/components/ConfigModifyBtn/index.tsx rename to packages/dms-kit/src/components/SystemConfigurationHub/components/ConfigModifyBtn/index.tsx diff --git a/packages/shared/lib/components/SystemConfigurationHub/components/ConfigModifyBtn/style.ts b/packages/dms-kit/src/components/SystemConfigurationHub/components/ConfigModifyBtn/style.ts similarity index 100% rename from packages/shared/lib/components/SystemConfigurationHub/components/ConfigModifyBtn/style.ts rename to packages/dms-kit/src/components/SystemConfigurationHub/components/ConfigModifyBtn/style.ts diff --git a/packages/shared/lib/components/SystemConfigurationHub/components/ConfigSubmitButtonField/__snapshots__/index.test.tsx.snap b/packages/dms-kit/src/components/SystemConfigurationHub/components/ConfigSubmitButtonField/__snapshots__/index.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/SystemConfigurationHub/components/ConfigSubmitButtonField/__snapshots__/index.test.tsx.snap rename to packages/dms-kit/src/components/SystemConfigurationHub/components/ConfigSubmitButtonField/__snapshots__/index.test.tsx.snap diff --git a/packages/shared/lib/components/SystemConfigurationHub/components/ConfigSubmitButtonField/index.test.tsx b/packages/dms-kit/src/components/SystemConfigurationHub/components/ConfigSubmitButtonField/index.test.tsx similarity index 100% rename from packages/shared/lib/components/SystemConfigurationHub/components/ConfigSubmitButtonField/index.test.tsx rename to packages/dms-kit/src/components/SystemConfigurationHub/components/ConfigSubmitButtonField/index.test.tsx diff --git a/packages/shared/lib/components/SystemConfigurationHub/components/ConfigSubmitButtonField/index.tsx b/packages/dms-kit/src/components/SystemConfigurationHub/components/ConfigSubmitButtonField/index.tsx similarity index 100% rename from packages/shared/lib/components/SystemConfigurationHub/components/ConfigSubmitButtonField/index.tsx rename to packages/dms-kit/src/components/SystemConfigurationHub/components/ConfigSubmitButtonField/index.tsx diff --git a/packages/shared/lib/components/SystemConfigurationHub/components/ConfigSwitch/index.test.tsx b/packages/dms-kit/src/components/SystemConfigurationHub/components/ConfigSwitch/index.test.tsx similarity index 100% rename from packages/shared/lib/components/SystemConfigurationHub/components/ConfigSwitch/index.test.tsx rename to packages/dms-kit/src/components/SystemConfigurationHub/components/ConfigSwitch/index.test.tsx diff --git a/packages/shared/lib/components/SystemConfigurationHub/components/ConfigSwitch/index.tsx b/packages/dms-kit/src/components/SystemConfigurationHub/components/ConfigSwitch/index.tsx similarity index 93% rename from packages/shared/lib/components/SystemConfigurationHub/components/ConfigSwitch/index.tsx rename to packages/dms-kit/src/components/SystemConfigurationHub/components/ConfigSwitch/index.tsx index ba56e5dec..73fc3da12 100644 --- a/packages/shared/lib/components/SystemConfigurationHub/components/ConfigSwitch/index.tsx +++ b/packages/dms-kit/src/components/SystemConfigurationHub/components/ConfigSwitch/index.tsx @@ -1,9 +1,6 @@ import { Popconfirm } from 'antd'; import { FormItemLabel } from '../../../CustomForm'; -import { - BasicSwitch, - BasicSwitchProps -} from '../../../../components/BasicSwitch'; +import { BasicSwitch, BasicSwitchProps } from '../../../BasicSwitch'; import classNames from 'classnames'; import { useTranslation } from 'react-i18next'; diff --git a/packages/shared/lib/components/SystemConfigurationHub/components/ConfigTestBtn/__snapshots__/index.test.tsx.snap b/packages/dms-kit/src/components/SystemConfigurationHub/components/ConfigTestBtn/__snapshots__/index.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/SystemConfigurationHub/components/ConfigTestBtn/__snapshots__/index.test.tsx.snap rename to packages/dms-kit/src/components/SystemConfigurationHub/components/ConfigTestBtn/__snapshots__/index.test.tsx.snap diff --git a/packages/shared/lib/components/SystemConfigurationHub/components/ConfigTestBtn/index.test.tsx b/packages/dms-kit/src/components/SystemConfigurationHub/components/ConfigTestBtn/index.test.tsx similarity index 100% rename from packages/shared/lib/components/SystemConfigurationHub/components/ConfigTestBtn/index.test.tsx rename to packages/dms-kit/src/components/SystemConfigurationHub/components/ConfigTestBtn/index.test.tsx diff --git a/packages/shared/lib/components/SystemConfigurationHub/components/ConfigTestBtn/index.tsx b/packages/dms-kit/src/components/SystemConfigurationHub/components/ConfigTestBtn/index.tsx similarity index 100% rename from packages/shared/lib/components/SystemConfigurationHub/components/ConfigTestBtn/index.tsx rename to packages/dms-kit/src/components/SystemConfigurationHub/components/ConfigTestBtn/index.tsx diff --git a/packages/shared/lib/components/SystemConfigurationHub/components/ConfigTestPopoverForm/__snapshots__/index.test.tsx.snap b/packages/dms-kit/src/components/SystemConfigurationHub/components/ConfigTestPopoverForm/__snapshots__/index.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/SystemConfigurationHub/components/ConfigTestPopoverForm/__snapshots__/index.test.tsx.snap rename to packages/dms-kit/src/components/SystemConfigurationHub/components/ConfigTestPopoverForm/__snapshots__/index.test.tsx.snap diff --git a/packages/shared/lib/components/SystemConfigurationHub/components/ConfigTestPopoverForm/index.test.tsx b/packages/dms-kit/src/components/SystemConfigurationHub/components/ConfigTestPopoverForm/index.test.tsx similarity index 100% rename from packages/shared/lib/components/SystemConfigurationHub/components/ConfigTestPopoverForm/index.test.tsx rename to packages/dms-kit/src/components/SystemConfigurationHub/components/ConfigTestPopoverForm/index.test.tsx diff --git a/packages/shared/lib/components/SystemConfigurationHub/components/ConfigTestPopoverForm/index.tsx b/packages/dms-kit/src/components/SystemConfigurationHub/components/ConfigTestPopoverForm/index.tsx similarity index 100% rename from packages/shared/lib/components/SystemConfigurationHub/components/ConfigTestPopoverForm/index.tsx rename to packages/dms-kit/src/components/SystemConfigurationHub/components/ConfigTestPopoverForm/index.tsx diff --git a/packages/shared/lib/components/SystemConfigurationHub/hooks/__tests__/__snapshots__/useConfigRender.test.tsx.snap b/packages/dms-kit/src/components/SystemConfigurationHub/hooks/__tests__/__snapshots__/useConfigRender.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/SystemConfigurationHub/hooks/__tests__/__snapshots__/useConfigRender.test.tsx.snap rename to packages/dms-kit/src/components/SystemConfigurationHub/hooks/__tests__/__snapshots__/useConfigRender.test.tsx.snap diff --git a/packages/shared/lib/components/SystemConfigurationHub/hooks/__tests__/__snapshots__/useConfigSwitchControls.test.tsx.snap b/packages/dms-kit/src/components/SystemConfigurationHub/hooks/__tests__/__snapshots__/useConfigSwitchControls.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/SystemConfigurationHub/hooks/__tests__/__snapshots__/useConfigSwitchControls.test.tsx.snap rename to packages/dms-kit/src/components/SystemConfigurationHub/hooks/__tests__/__snapshots__/useConfigSwitchControls.test.tsx.snap diff --git a/packages/shared/lib/components/SystemConfigurationHub/hooks/__tests__/useConfigRender.test.tsx b/packages/dms-kit/src/components/SystemConfigurationHub/hooks/__tests__/useConfigRender.test.tsx similarity index 100% rename from packages/shared/lib/components/SystemConfigurationHub/hooks/__tests__/useConfigRender.test.tsx rename to packages/dms-kit/src/components/SystemConfigurationHub/hooks/__tests__/useConfigRender.test.tsx diff --git a/packages/shared/lib/components/SystemConfigurationHub/hooks/__tests__/useConfigSwitchControls.test.tsx b/packages/dms-kit/src/components/SystemConfigurationHub/hooks/__tests__/useConfigSwitchControls.test.tsx similarity index 100% rename from packages/shared/lib/components/SystemConfigurationHub/hooks/__tests__/useConfigSwitchControls.test.tsx rename to packages/dms-kit/src/components/SystemConfigurationHub/hooks/__tests__/useConfigSwitchControls.test.tsx diff --git a/packages/shared/lib/components/SystemConfigurationHub/hooks/useConfigRender.tsx b/packages/dms-kit/src/components/SystemConfigurationHub/hooks/useConfigRender.tsx similarity index 100% rename from packages/shared/lib/components/SystemConfigurationHub/hooks/useConfigRender.tsx rename to packages/dms-kit/src/components/SystemConfigurationHub/hooks/useConfigRender.tsx diff --git a/packages/shared/lib/components/SystemConfigurationHub/hooks/useConfigSwitchControls.ts b/packages/dms-kit/src/components/SystemConfigurationHub/hooks/useConfigSwitchControls.ts similarity index 100% rename from packages/shared/lib/components/SystemConfigurationHub/hooks/useConfigSwitchControls.ts rename to packages/dms-kit/src/components/SystemConfigurationHub/hooks/useConfigSwitchControls.ts diff --git a/packages/shared/lib/components/SystemConfigurationHub/index.ts b/packages/dms-kit/src/components/SystemConfigurationHub/index.ts similarity index 100% rename from packages/shared/lib/components/SystemConfigurationHub/index.ts rename to packages/dms-kit/src/components/SystemConfigurationHub/index.ts diff --git a/packages/shared/lib/components/SystemConfigurationHub/style.ts b/packages/dms-kit/src/components/SystemConfigurationHub/style.ts similarity index 100% rename from packages/shared/lib/components/SystemConfigurationHub/style.ts rename to packages/dms-kit/src/components/SystemConfigurationHub/style.ts diff --git a/packages/shared/lib/components/TestDatabaseConnectButton/README.md b/packages/dms-kit/src/components/TestDatabaseConnectButton/README.md similarity index 100% rename from packages/shared/lib/components/TestDatabaseConnectButton/README.md rename to packages/dms-kit/src/components/TestDatabaseConnectButton/README.md diff --git a/packages/shared/lib/components/TestDatabaseConnectButton/TestDatabaseConnectButton.test.tsx b/packages/dms-kit/src/components/TestDatabaseConnectButton/TestDatabaseConnectButton.test.tsx similarity index 100% rename from packages/shared/lib/components/TestDatabaseConnectButton/TestDatabaseConnectButton.test.tsx rename to packages/dms-kit/src/components/TestDatabaseConnectButton/TestDatabaseConnectButton.test.tsx diff --git a/packages/shared/lib/components/TestDatabaseConnectButton/TestDatabaseConnectButton.tsx b/packages/dms-kit/src/components/TestDatabaseConnectButton/TestDatabaseConnectButton.tsx similarity index 100% rename from packages/shared/lib/components/TestDatabaseConnectButton/TestDatabaseConnectButton.tsx rename to packages/dms-kit/src/components/TestDatabaseConnectButton/TestDatabaseConnectButton.tsx diff --git a/packages/shared/lib/components/TestDatabaseConnectButton/TestDatabaseConnectButton.types.ts b/packages/dms-kit/src/components/TestDatabaseConnectButton/TestDatabaseConnectButton.types.ts similarity index 100% rename from packages/shared/lib/components/TestDatabaseConnectButton/TestDatabaseConnectButton.types.ts rename to packages/dms-kit/src/components/TestDatabaseConnectButton/TestDatabaseConnectButton.types.ts diff --git a/packages/shared/lib/components/TestDatabaseConnectButton/__snapshots__/TestDatabaseConnectButton.test.tsx.snap b/packages/dms-kit/src/components/TestDatabaseConnectButton/__snapshots__/TestDatabaseConnectButton.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/TestDatabaseConnectButton/__snapshots__/TestDatabaseConnectButton.test.tsx.snap rename to packages/dms-kit/src/components/TestDatabaseConnectButton/__snapshots__/TestDatabaseConnectButton.test.tsx.snap diff --git a/packages/shared/lib/components/TestDatabaseConnectButton/index.ts b/packages/dms-kit/src/components/TestDatabaseConnectButton/index.ts similarity index 100% rename from packages/shared/lib/components/TestDatabaseConnectButton/index.ts rename to packages/dms-kit/src/components/TestDatabaseConnectButton/index.ts diff --git a/packages/shared/lib/components/TestDatabaseConnectButton/style.ts b/packages/dms-kit/src/components/TestDatabaseConnectButton/style.ts similarity index 100% rename from packages/shared/lib/components/TestDatabaseConnectButton/style.ts rename to packages/dms-kit/src/components/TestDatabaseConnectButton/style.ts diff --git a/packages/shared/lib/components/ToggleTokens/README.md b/packages/dms-kit/src/components/ToggleTokens/README.md similarity index 100% rename from packages/shared/lib/components/ToggleTokens/README.md rename to packages/dms-kit/src/components/ToggleTokens/README.md diff --git a/packages/shared/lib/components/ToggleTokens/ToggleTokens.test.tsx b/packages/dms-kit/src/components/ToggleTokens/ToggleTokens.test.tsx similarity index 100% rename from packages/shared/lib/components/ToggleTokens/ToggleTokens.test.tsx rename to packages/dms-kit/src/components/ToggleTokens/ToggleTokens.test.tsx diff --git a/packages/shared/lib/components/ToggleTokens/ToggleTokens.tsx b/packages/dms-kit/src/components/ToggleTokens/ToggleTokens.tsx similarity index 100% rename from packages/shared/lib/components/ToggleTokens/ToggleTokens.tsx rename to packages/dms-kit/src/components/ToggleTokens/ToggleTokens.tsx diff --git a/packages/shared/lib/components/ToggleTokens/ToggleTokens.types.ts b/packages/dms-kit/src/components/ToggleTokens/ToggleTokens.types.ts similarity index 100% rename from packages/shared/lib/components/ToggleTokens/ToggleTokens.types.ts rename to packages/dms-kit/src/components/ToggleTokens/ToggleTokens.types.ts diff --git a/packages/shared/lib/components/ToggleTokens/__snapshots__/ToggleTokens.test.tsx.snap b/packages/dms-kit/src/components/ToggleTokens/__snapshots__/ToggleTokens.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/ToggleTokens/__snapshots__/ToggleTokens.test.tsx.snap rename to packages/dms-kit/src/components/ToggleTokens/__snapshots__/ToggleTokens.test.tsx.snap diff --git a/packages/shared/lib/components/ToggleTokens/index.ts b/packages/dms-kit/src/components/ToggleTokens/index.ts similarity index 100% rename from packages/shared/lib/components/ToggleTokens/index.ts rename to packages/dms-kit/src/components/ToggleTokens/index.ts diff --git a/packages/shared/lib/components/ToggleTokens/style.ts b/packages/dms-kit/src/components/ToggleTokens/style.ts similarity index 100% rename from packages/shared/lib/components/ToggleTokens/style.ts rename to packages/dms-kit/src/components/ToggleTokens/style.ts diff --git a/packages/shared/lib/components/VerificationCodeInput/VerificationCodeInput.tsx b/packages/dms-kit/src/components/VerificationCodeInput/VerificationCodeInput.tsx similarity index 100% rename from packages/shared/lib/components/VerificationCodeInput/VerificationCodeInput.tsx rename to packages/dms-kit/src/components/VerificationCodeInput/VerificationCodeInput.tsx diff --git a/packages/shared/lib/components/VerificationCodeInput/__tests__/VerificationCodeInput.test.tsx b/packages/dms-kit/src/components/VerificationCodeInput/__tests__/VerificationCodeInput.test.tsx similarity index 100% rename from packages/shared/lib/components/VerificationCodeInput/__tests__/VerificationCodeInput.test.tsx rename to packages/dms-kit/src/components/VerificationCodeInput/__tests__/VerificationCodeInput.test.tsx diff --git a/packages/shared/lib/components/VerificationCodeInput/__tests__/__snapshots__/VerificationCodeInput.test.tsx.snap b/packages/dms-kit/src/components/VerificationCodeInput/__tests__/__snapshots__/VerificationCodeInput.test.tsx.snap similarity index 100% rename from packages/shared/lib/components/VerificationCodeInput/__tests__/__snapshots__/VerificationCodeInput.test.tsx.snap rename to packages/dms-kit/src/components/VerificationCodeInput/__tests__/__snapshots__/VerificationCodeInput.test.tsx.snap diff --git a/packages/shared/lib/components/VerificationCodeInput/index.tsx b/packages/dms-kit/src/components/VerificationCodeInput/index.tsx similarity index 100% rename from packages/shared/lib/components/VerificationCodeInput/index.tsx rename to packages/dms-kit/src/components/VerificationCodeInput/index.tsx diff --git a/packages/shared/lib/components/VerificationCodeInput/style.ts b/packages/dms-kit/src/components/VerificationCodeInput/style.ts similarity index 100% rename from packages/shared/lib/components/VerificationCodeInput/style.ts rename to packages/dms-kit/src/components/VerificationCodeInput/style.ts diff --git a/packages/shared/lib/data/EmitterKey.ts b/packages/dms-kit/src/data/EmitterKey.ts similarity index 100% rename from packages/shared/lib/data/EmitterKey.ts rename to packages/dms-kit/src/data/EmitterKey.ts diff --git a/packages/shared/lib/data/common.ts b/packages/dms-kit/src/data/common.ts similarity index 100% rename from packages/shared/lib/data/common.ts rename to packages/dms-kit/src/data/common.ts diff --git a/packages/shared/lib/data/routePaths.ts b/packages/dms-kit/src/data/routePaths.ts similarity index 100% rename from packages/shared/lib/data/routePaths.ts rename to packages/dms-kit/src/data/routePaths.ts diff --git a/packages/shared/lib/enum/index.ts b/packages/dms-kit/src/enum/index.ts similarity index 100% rename from packages/shared/lib/enum/index.ts rename to packages/dms-kit/src/enum/index.ts diff --git a/packages/shared/lib/publish-entry.ts b/packages/dms-kit/src/index.ts similarity index 92% rename from packages/shared/lib/publish-entry.ts rename to packages/dms-kit/src/index.ts index 22174fd31..a82f742e2 100644 --- a/packages/shared/lib/publish-entry.ts +++ b/packages/dms-kit/src/index.ts @@ -17,8 +17,8 @@ export * from './data/common'; export * from './data/routePaths'; export * from './locale'; -export * from './components/ActionButton'; -export * from './components/ActiontechTable'; +// export * from './components/ActionButton'; +// export * from './components/ActiontechTable'; export * from './components/BasicButton'; export * from './components/BasicDatePicker'; export * from './components/BasicDrawer'; @@ -36,7 +36,7 @@ export * from './components/BasicTable'; export * from './components/BasicTag'; export * from './components/BasicToolTip'; export * from './components/BasicTreeSelect'; -export * from './components/BasicTypographyEllipsis'; +// export * from './components/BasicTypographyEllipsis'; export * from './components/ConfigItem'; export * from './components/CopyIcon'; export * from './components/CronInput'; @@ -47,8 +47,8 @@ export * from './components/CustomInput'; export * from './components/CustomSegmentedFilter'; export * from './components/CustomSelect'; export * from './components/DatabaseTypeLogo'; -export * from './components/EditableSelect'; export * from './components/EditText'; +export * from './components/EditableSelect'; export * from './components/EmptyBox'; export * from './components/HeaderProgress'; export * from './components/LazyLoadComponent'; @@ -61,7 +61,7 @@ export * from './components/SpinIndicator'; export * from './components/SystemConfigurationHub'; export * from './components/TestDatabaseConnectButton'; export * from './components/ToggleTokens'; -export * from './components/TypedRouter'; +// export * from './components/TypedRouter'; export * from './components/VerificationCodeInput'; export * from './providers'; diff --git a/packages/shared/lib/locale/en-US/common.ts b/packages/dms-kit/src/locale/en-US/common.ts similarity index 100% rename from packages/shared/lib/locale/en-US/common.ts rename to packages/dms-kit/src/locale/en-US/common.ts diff --git a/packages/shared/lib/locale/en-US/index.ts b/packages/dms-kit/src/locale/en-US/index.ts similarity index 100% rename from packages/shared/lib/locale/en-US/index.ts rename to packages/dms-kit/src/locale/en-US/index.ts diff --git a/packages/shared/lib/locale/index.ts b/packages/dms-kit/src/locale/index.ts similarity index 100% rename from packages/shared/lib/locale/index.ts rename to packages/dms-kit/src/locale/index.ts diff --git a/packages/shared/lib/locale/zh-CN/common.ts b/packages/dms-kit/src/locale/zh-CN/common.ts similarity index 100% rename from packages/shared/lib/locale/zh-CN/common.ts rename to packages/dms-kit/src/locale/zh-CN/common.ts diff --git a/packages/shared/lib/locale/zh-CN/index.ts b/packages/dms-kit/src/locale/zh-CN/index.ts similarity index 100% rename from packages/shared/lib/locale/zh-CN/index.ts rename to packages/dms-kit/src/locale/zh-CN/index.ts diff --git a/packages/shared/lib/providers/index.tsx b/packages/dms-kit/src/providers/index.tsx similarity index 100% rename from packages/shared/lib/providers/index.tsx rename to packages/dms-kit/src/providers/index.tsx diff --git a/packages/shared/lib/providers/locale.tsx b/packages/dms-kit/src/providers/locale.tsx similarity index 100% rename from packages/shared/lib/providers/locale.tsx rename to packages/dms-kit/src/providers/locale.tsx diff --git a/packages/shared/lib/providers/theme.tsx b/packages/dms-kit/src/providers/theme.tsx similarity index 100% rename from packages/shared/lib/providers/theme.tsx rename to packages/dms-kit/src/providers/theme.tsx diff --git a/packages/shared/lib/styleWrapper/element.ts b/packages/dms-kit/src/styleWrapper/element.ts similarity index 100% rename from packages/shared/lib/styleWrapper/element.ts rename to packages/dms-kit/src/styleWrapper/element.ts diff --git a/packages/shared/lib/styleWrapper/nav.ts b/packages/dms-kit/src/styleWrapper/nav.ts similarity index 100% rename from packages/shared/lib/styleWrapper/nav.ts rename to packages/dms-kit/src/styleWrapper/nav.ts diff --git a/packages/dms-kit/src/testUtil/common.tsx b/packages/dms-kit/src/testUtil/common.tsx new file mode 100644 index 000000000..3129ee539 --- /dev/null +++ b/packages/dms-kit/src/testUtil/common.tsx @@ -0,0 +1,62 @@ +/* eslint-disable no-console */ +export const ignoreConsoleErrors = ( + params: Array +) => { + const originalError = console.error; + const paramsWithGlobalRules = [ + ...params, + 'Warning: findDOMNode is deprecated and will be removed in the next major release. Instead, add a ref directly to the element you want to reference. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-find-nod' + ]; + + beforeAll(() => { + console.error = (...arg) => { + if ( + typeof arg[0] === 'string' && + paramsWithGlobalRules.some((v) => arg[0].includes(v)) + ) { + return; + } + originalError(...arg); + }; + }); + + afterAll(() => { + // 恢复原始的 console.error + console.error = originalError; + }); +}; + +export enum UtilsConsoleErrorStringsEnum { + // 表单校验失败并且没有使用 try catch 捕获时出现该错误 + ASYNC_VALIDATOR_ERROR = 'async-validator', + + // 组件被 Form 包裹但是没有提供 form 时 + UNCONNECTED_FORM_COMPONENT = 'Instance created by `useForm` is not connected to any Form element. Forget to pass `form` prop?', + + // 非受控组件 + UNCONTROLLED_COMPONENT = 'A component is changing a controlled input to be uncontrolled.', + + // antd-plots 组件相关错误 + PARENT_COMPONENT_PROP_ERROR = 'If you accidentally passed it from a parent component, remove it from the DOM element.', + + // 在选择 date-range-pick 组件的结束日期 input 元素时,实际选择到了,报此 warning + INPUT_DATE_FORMAT_MISMATCH = 'Not match any format. Please help to fire a issue about this.', + + // 循环生成组件时若没有设置 key,便会抛出该错误信息 + UNIQUE_KEY_REQUIRED = `Each child in a list should have a unique "key" prop`, + + // 当为原生的 html 添加大驼峰、小驼峰之类的自定义属性,会出现报错 + INVALID_CUSTOM_ATTRIBUTE = `prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase`, + + /** + * 过滤 NaN is an invalid value for the height css style property. 问题 + * input.textarea 设置 minRows 或者 maxRows 时出现 + */ + INVALID_CSS_VALUE = '`NaN` is an invalid value for the', + + // antd Drawer Popconfirm等弹出组件不在同一个根元素内 会报此warning + TRIGGER_ELEMENT_SAME_ROOT = 'trigger element and popup element should in same shadow root.', + + // monaco-editor mock input not exist onMount property + UNKNOWN_EVENT_HANDLER = 'Unknown event handler property' +} diff --git a/packages/dms-kit/src/testUtil/customQuery.ts b/packages/dms-kit/src/testUtil/customQuery.ts new file mode 100644 index 000000000..881e2ef57 --- /dev/null +++ b/packages/dms-kit/src/testUtil/customQuery.ts @@ -0,0 +1,139 @@ +import * as domTestingLib from '@testing-library/dom'; +import { act, fireEvent, screen } from '@testing-library/react'; + +export const getBySelector = (selector: string, baseElement?: Element) => { + let temp; + if (baseElement !== undefined) { + temp = baseElement.querySelectorAll(selector); + } else { + temp = document.querySelectorAll(selector); + } + if (temp.length === 0) { + throw domTestingLib.queryHelpers.getElementError( + `Unable to find an element by: selector=${selector}`, + document.body + ); + } + if (temp.length > 1) { + throw domTestingLib.queryHelpers.getElementError( + `Found multiple elements with the selector=${selector}`, + document.body + ); + } + return temp[0]; +}; + +export const queryBySelector = (selector: string, baseElement?: Element) => { + let temp; + if (baseElement !== undefined) { + temp = baseElement.querySelector(selector); + } else { + temp = document.querySelector(selector); + } + return temp; +}; + +export const getAllBySelector = (selector: string, baseElement?: Element) => { + let temp; + if (baseElement !== undefined) { + temp = baseElement.querySelectorAll(selector); + } else { + temp = document.querySelectorAll(selector); + } + if (temp.length === 0) { + throw domTestingLib.queryHelpers.getElementError( + `Unable to find an element by: selector=${selector}`, + document.body + ); + } + return temp; +}; + +export const getSelectContentByFormLabel = (label: string) => { + return getBySelector( + '.ant-select-selection-item-content', + screen.getByText(label).parentNode?.parentNode as HTMLDivElement + ); +}; + +export const getSelectValueByFormLabel = (label: string) => { + return getBySelector( + '.ant-select-selection-item', + screen.getByLabelText(label).parentNode?.parentNode as HTMLDivElement + ); +}; + +export const selectOptionByIndex = ( + label: string, + optionText: string, + index = 1 +) => { + fireEvent.mouseDown(screen.getByLabelText(label)); + const option = screen.getAllByText(optionText)[index]; + expect(option).toHaveClass('ant-select-item-option-content'); + fireEvent.click(option); +}; + +/** + * 具体功能同 selectOptionByIndex, 不过该函数主要针对下拉框选项为一个节点的情况 + * @param label 表单中 Select 组件外部 Form.Item 的label, 注意该 Form.Item 必须有 name + * @param optionCls 下拉项节点最外层的 class + * @param index 这里不同于 selectOptionByIndex 的 index, 其代表的就是真实需要选择的下拉项的序号, 从 0 开始. + */ +export const selectCustomOptionByClassName = ( + label: string, + optionCls: string, + index: number +) => { + fireEvent.mouseDown(screen.getByLabelText(label)); + const options = getAllBySelector(`.${optionCls}`); + let realIndex = index; + if (index < 0) { + realIndex = options.length + index; + } + + const option = options[realIndex]; + expect(option.parentNode).toHaveClass('ant-select-item-option-content'); + fireEvent.click(option); +}; + +export const getValueByInput = (val: string) => { + const inputList = getAllBySelector('.ant-input'); + const findInputList = []; + for (const input of inputList) { + if (input.getAttribute('value') === val) { + findInputList.push(input); + } + } + if (findInputList.length === 0) { + throw domTestingLib.queryHelpers.getElementError( + `Unable to find an element by: value=${val}`, + document.body + ); + } + if (findInputList.length > 1) { + throw domTestingLib.queryHelpers.getElementError( + `Found multiple elements with the value=${val}`, + document.body + ); + } + return findInputList[0]; +}; + +const globalTimeout = global.setTimeout; + +export const sleep = async (timeout = 0) => { + await act(async () => { + await new Promise((resolve) => { + globalTimeout(resolve, timeout); + }); + }); +}; + +export const getHrefByText = (name: string) => { + return screen.getByText(name).getAttribute('href'); +}; + +export const getAllHrefByText = (name: string) => { + return screen.getAllByText(name).map((v) => v.getAttribute('href')); +}; diff --git a/packages/dms-kit/src/testUtil/index.ts b/packages/dms-kit/src/testUtil/index.ts new file mode 100644 index 000000000..45eadaa58 --- /dev/null +++ b/packages/dms-kit/src/testUtil/index.ts @@ -0,0 +1,3 @@ +export * from './superRender'; +export * from './customQuery'; +export * from './common'; diff --git a/packages/dms-kit/src/testUtil/superRender.tsx b/packages/dms-kit/src/testUtil/superRender.tsx new file mode 100644 index 000000000..ac6721037 --- /dev/null +++ b/packages/dms-kit/src/testUtil/superRender.tsx @@ -0,0 +1,101 @@ +import { render, renderHook as renderHookReact } from '@testing-library/react'; +import { MutableSnapshot, RecoilRoot } from 'recoil'; +import { MemoryRouter, MemoryRouterProps } from 'react-router-dom'; +import { ConfigProvider, theme as antdTheme } from 'antd'; +import zhCN from 'antd/locale/zh_CN'; +import { ThemeProvider } from '@mui/system'; +import { StyledEngineProvider } from '@mui/material/styles'; +import lightTheme from '../theme/light'; +import { ToolkitStore } from '@reduxjs/toolkit/dist/configureStore'; + +export type RenderParams = Parameters; + +export type RecoilRootPropsCustom = { + initializeState?: (mutableSnapshot: MutableSnapshot) => void; + override?: boolean; +}; + +export interface WrapperOptions { + routerProps?: MemoryRouterProps; + storeFactory?: (initStore: any) => ToolkitStore; + initStore?: any; + recoilRootProps?: RecoilRootPropsCustom; + theme?: any; +} + +export const createTestWrapper = (options?: WrapperOptions) => { + const { routerProps, recoilRootProps, theme = lightTheme } = options || {}; + + return ({ children }: { children: React.ReactNode }) => { + const themeComponent = ( + {children} + ); + + return ( + + + + + {themeComponent} + + + + + ); + }; +}; + +export const createTesHookWrapper = (options?: WrapperOptions) => { + const { routerProps, recoilRootProps, theme = lightTheme } = options || {}; + + return ({ children }: { children: React.ReactNode }) => { + const themeComponent = ( + {children} + ); + + return ( + + + + + {themeComponent} + + + + + ); + }; +}; + +export const superRender = ( + ...[ui, option, options]: [...RenderParams, WrapperOptions?] +) => { + const wrapper = createTestWrapper(options); + + return render(ui, { + wrapper, + ...option + }); +}; + +export const superRenderHook = ( + hook: (props: TProps) => TResult, + renderHookOptions?: Omit< + Parameters>[1], + 'wrapper' + >, + wrapperOptions?: WrapperOptions +) => { + const wrapper = createTesHookWrapper(wrapperOptions); + + return renderHookReact(hook, { + ...renderHookOptions, + wrapper + }); +}; diff --git a/packages/shared/lib/theme/dark/basic.ts b/packages/dms-kit/src/theme/dark/basic.ts similarity index 100% rename from packages/shared/lib/theme/dark/basic.ts rename to packages/dms-kit/src/theme/dark/basic.ts diff --git a/packages/shared/lib/theme/dark/components/button.ts b/packages/dms-kit/src/theme/dark/components/button.ts similarity index 100% rename from packages/shared/lib/theme/dark/components/button.ts rename to packages/dms-kit/src/theme/dark/components/button.ts diff --git a/packages/shared/lib/theme/dark/components/chart.ts b/packages/dms-kit/src/theme/dark/components/chart.ts similarity index 100% rename from packages/shared/lib/theme/dark/components/chart.ts rename to packages/dms-kit/src/theme/dark/components/chart.ts diff --git a/packages/shared/lib/theme/dark/components/columnsSetting.ts b/packages/dms-kit/src/theme/dark/components/columnsSetting.ts similarity index 100% rename from packages/shared/lib/theme/dark/components/columnsSetting.ts rename to packages/dms-kit/src/theme/dark/components/columnsSetting.ts diff --git a/packages/shared/lib/theme/dark/components/configItem.ts b/packages/dms-kit/src/theme/dark/components/configItem.ts similarity index 100% rename from packages/shared/lib/theme/dark/components/configItem.ts rename to packages/dms-kit/src/theme/dark/components/configItem.ts diff --git a/packages/shared/lib/theme/dark/components/customFilter.ts b/packages/dms-kit/src/theme/dark/components/customFilter.ts similarity index 100% rename from packages/shared/lib/theme/dark/components/customFilter.ts rename to packages/dms-kit/src/theme/dark/components/customFilter.ts diff --git a/packages/shared/lib/theme/dark/components/customSelect.ts b/packages/dms-kit/src/theme/dark/components/customSelect.ts similarity index 100% rename from packages/shared/lib/theme/dark/components/customSelect.ts rename to packages/dms-kit/src/theme/dark/components/customSelect.ts diff --git a/packages/shared/lib/theme/dark/components/draggerUpload.ts b/packages/dms-kit/src/theme/dark/components/draggerUpload.ts similarity index 100% rename from packages/shared/lib/theme/dark/components/draggerUpload.ts rename to packages/dms-kit/src/theme/dark/components/draggerUpload.ts diff --git a/packages/shared/lib/theme/dark/components/drawer.ts b/packages/dms-kit/src/theme/dark/components/drawer.ts similarity index 100% rename from packages/shared/lib/theme/dark/components/drawer.ts rename to packages/dms-kit/src/theme/dark/components/drawer.ts diff --git a/packages/shared/lib/theme/dark/components/empty.ts b/packages/dms-kit/src/theme/dark/components/empty.ts similarity index 100% rename from packages/shared/lib/theme/dark/components/empty.ts rename to packages/dms-kit/src/theme/dark/components/empty.ts diff --git a/packages/shared/lib/theme/dark/components/filterContainer.ts b/packages/dms-kit/src/theme/dark/components/filterContainer.ts similarity index 100% rename from packages/shared/lib/theme/dark/components/filterContainer.ts rename to packages/dms-kit/src/theme/dark/components/filterContainer.ts diff --git a/packages/shared/lib/theme/dark/components/index.ts b/packages/dms-kit/src/theme/dark/components/index.ts similarity index 100% rename from packages/shared/lib/theme/dark/components/index.ts rename to packages/dms-kit/src/theme/dark/components/index.ts diff --git a/packages/shared/lib/theme/dark/components/infoList.ts b/packages/dms-kit/src/theme/dark/components/infoList.ts similarity index 100% rename from packages/shared/lib/theme/dark/components/infoList.ts rename to packages/dms-kit/src/theme/dark/components/infoList.ts diff --git a/packages/shared/lib/theme/dark/components/input.ts b/packages/dms-kit/src/theme/dark/components/input.ts similarity index 100% rename from packages/shared/lib/theme/dark/components/input.ts rename to packages/dms-kit/src/theme/dark/components/input.ts diff --git a/packages/shared/lib/theme/dark/components/modal.ts b/packages/dms-kit/src/theme/dark/components/modal.ts similarity index 100% rename from packages/shared/lib/theme/dark/components/modal.ts rename to packages/dms-kit/src/theme/dark/components/modal.ts diff --git a/packages/shared/lib/theme/dark/components/monacoEditor.ts b/packages/dms-kit/src/theme/dark/components/monacoEditor.ts similarity index 100% rename from packages/shared/lib/theme/dark/components/monacoEditor.ts rename to packages/dms-kit/src/theme/dark/components/monacoEditor.ts diff --git a/packages/shared/lib/theme/dark/components/pageHeader.ts b/packages/dms-kit/src/theme/dark/components/pageHeader.ts similarity index 100% rename from packages/shared/lib/theme/dark/components/pageHeader.ts rename to packages/dms-kit/src/theme/dark/components/pageHeader.ts diff --git a/packages/shared/lib/theme/dark/components/rangePicker.ts b/packages/dms-kit/src/theme/dark/components/rangePicker.ts similarity index 100% rename from packages/shared/lib/theme/dark/components/rangePicker.ts rename to packages/dms-kit/src/theme/dark/components/rangePicker.ts diff --git a/packages/shared/lib/theme/dark/components/result.ts b/packages/dms-kit/src/theme/dark/components/result.ts similarity index 100% rename from packages/shared/lib/theme/dark/components/result.ts rename to packages/dms-kit/src/theme/dark/components/result.ts diff --git a/packages/shared/lib/theme/dark/components/ruleComponent.ts b/packages/dms-kit/src/theme/dark/components/ruleComponent.ts similarity index 100% rename from packages/shared/lib/theme/dark/components/ruleComponent.ts rename to packages/dms-kit/src/theme/dark/components/ruleComponent.ts diff --git a/packages/shared/lib/theme/dark/components/searchInput.ts b/packages/dms-kit/src/theme/dark/components/searchInput.ts similarity index 100% rename from packages/shared/lib/theme/dark/components/searchInput.ts rename to packages/dms-kit/src/theme/dark/components/searchInput.ts diff --git a/packages/shared/lib/theme/dark/components/segmented.ts b/packages/dms-kit/src/theme/dark/components/segmented.ts similarity index 100% rename from packages/shared/lib/theme/dark/components/segmented.ts rename to packages/dms-kit/src/theme/dark/components/segmented.ts diff --git a/packages/shared/lib/theme/dark/components/select.ts b/packages/dms-kit/src/theme/dark/components/select.ts similarity index 100% rename from packages/shared/lib/theme/dark/components/select.ts rename to packages/dms-kit/src/theme/dark/components/select.ts diff --git a/packages/shared/lib/theme/dark/components/table.ts b/packages/dms-kit/src/theme/dark/components/table.ts similarity index 100% rename from packages/shared/lib/theme/dark/components/table.ts rename to packages/dms-kit/src/theme/dark/components/table.ts diff --git a/packages/shared/lib/theme/dark/components/tag.ts b/packages/dms-kit/src/theme/dark/components/tag.ts similarity index 100% rename from packages/shared/lib/theme/dark/components/tag.ts rename to packages/dms-kit/src/theme/dark/components/tag.ts diff --git a/packages/shared/lib/theme/dark/components/toolbar.ts b/packages/dms-kit/src/theme/dark/components/toolbar.ts similarity index 100% rename from packages/shared/lib/theme/dark/components/toolbar.ts rename to packages/dms-kit/src/theme/dark/components/toolbar.ts diff --git a/packages/shared/lib/theme/dark/index.ts b/packages/dms-kit/src/theme/dark/index.ts similarity index 100% rename from packages/shared/lib/theme/dark/index.ts rename to packages/dms-kit/src/theme/dark/index.ts diff --git a/packages/shared/lib/theme/dark/nav.ts b/packages/dms-kit/src/theme/dark/nav.ts similarity index 100% rename from packages/shared/lib/theme/dark/nav.ts rename to packages/dms-kit/src/theme/dark/nav.ts diff --git a/packages/shared/lib/theme/light/basic.ts b/packages/dms-kit/src/theme/light/basic.ts similarity index 100% rename from packages/shared/lib/theme/light/basic.ts rename to packages/dms-kit/src/theme/light/basic.ts diff --git a/packages/shared/lib/theme/light/components/button.ts b/packages/dms-kit/src/theme/light/components/button.ts similarity index 100% rename from packages/shared/lib/theme/light/components/button.ts rename to packages/dms-kit/src/theme/light/components/button.ts diff --git a/packages/shared/lib/theme/light/components/chart.ts b/packages/dms-kit/src/theme/light/components/chart.ts similarity index 100% rename from packages/shared/lib/theme/light/components/chart.ts rename to packages/dms-kit/src/theme/light/components/chart.ts diff --git a/packages/shared/lib/theme/light/components/columnsSetting.ts b/packages/dms-kit/src/theme/light/components/columnsSetting.ts similarity index 100% rename from packages/shared/lib/theme/light/components/columnsSetting.ts rename to packages/dms-kit/src/theme/light/components/columnsSetting.ts diff --git a/packages/shared/lib/theme/light/components/configItem.ts b/packages/dms-kit/src/theme/light/components/configItem.ts similarity index 100% rename from packages/shared/lib/theme/light/components/configItem.ts rename to packages/dms-kit/src/theme/light/components/configItem.ts diff --git a/packages/shared/lib/theme/light/components/customFilter.ts b/packages/dms-kit/src/theme/light/components/customFilter.ts similarity index 100% rename from packages/shared/lib/theme/light/components/customFilter.ts rename to packages/dms-kit/src/theme/light/components/customFilter.ts diff --git a/packages/shared/lib/theme/light/components/customSelect.ts b/packages/dms-kit/src/theme/light/components/customSelect.ts similarity index 100% rename from packages/shared/lib/theme/light/components/customSelect.ts rename to packages/dms-kit/src/theme/light/components/customSelect.ts diff --git a/packages/shared/lib/theme/light/components/draggerUpload.ts b/packages/dms-kit/src/theme/light/components/draggerUpload.ts similarity index 100% rename from packages/shared/lib/theme/light/components/draggerUpload.ts rename to packages/dms-kit/src/theme/light/components/draggerUpload.ts diff --git a/packages/shared/lib/theme/light/components/drawer.ts b/packages/dms-kit/src/theme/light/components/drawer.ts similarity index 100% rename from packages/shared/lib/theme/light/components/drawer.ts rename to packages/dms-kit/src/theme/light/components/drawer.ts diff --git a/packages/shared/lib/theme/light/components/empty.ts b/packages/dms-kit/src/theme/light/components/empty.ts similarity index 100% rename from packages/shared/lib/theme/light/components/empty.ts rename to packages/dms-kit/src/theme/light/components/empty.ts diff --git a/packages/shared/lib/theme/light/components/filterContainer.ts b/packages/dms-kit/src/theme/light/components/filterContainer.ts similarity index 100% rename from packages/shared/lib/theme/light/components/filterContainer.ts rename to packages/dms-kit/src/theme/light/components/filterContainer.ts diff --git a/packages/shared/lib/theme/light/components/index.ts b/packages/dms-kit/src/theme/light/components/index.ts similarity index 100% rename from packages/shared/lib/theme/light/components/index.ts rename to packages/dms-kit/src/theme/light/components/index.ts diff --git a/packages/shared/lib/theme/light/components/infoList.ts b/packages/dms-kit/src/theme/light/components/infoList.ts similarity index 100% rename from packages/shared/lib/theme/light/components/infoList.ts rename to packages/dms-kit/src/theme/light/components/infoList.ts diff --git a/packages/shared/lib/theme/light/components/input.ts b/packages/dms-kit/src/theme/light/components/input.ts similarity index 100% rename from packages/shared/lib/theme/light/components/input.ts rename to packages/dms-kit/src/theme/light/components/input.ts diff --git a/packages/shared/lib/theme/light/components/modal.ts b/packages/dms-kit/src/theme/light/components/modal.ts similarity index 100% rename from packages/shared/lib/theme/light/components/modal.ts rename to packages/dms-kit/src/theme/light/components/modal.ts diff --git a/packages/shared/lib/theme/light/components/monacoEditor.ts b/packages/dms-kit/src/theme/light/components/monacoEditor.ts similarity index 100% rename from packages/shared/lib/theme/light/components/monacoEditor.ts rename to packages/dms-kit/src/theme/light/components/monacoEditor.ts diff --git a/packages/shared/lib/theme/light/components/pageHeader.ts b/packages/dms-kit/src/theme/light/components/pageHeader.ts similarity index 100% rename from packages/shared/lib/theme/light/components/pageHeader.ts rename to packages/dms-kit/src/theme/light/components/pageHeader.ts diff --git a/packages/shared/lib/theme/light/components/rangePicker.ts b/packages/dms-kit/src/theme/light/components/rangePicker.ts similarity index 100% rename from packages/shared/lib/theme/light/components/rangePicker.ts rename to packages/dms-kit/src/theme/light/components/rangePicker.ts diff --git a/packages/shared/lib/theme/light/components/result.ts b/packages/dms-kit/src/theme/light/components/result.ts similarity index 100% rename from packages/shared/lib/theme/light/components/result.ts rename to packages/dms-kit/src/theme/light/components/result.ts diff --git a/packages/shared/lib/theme/light/components/ruleComponent.ts b/packages/dms-kit/src/theme/light/components/ruleComponent.ts similarity index 100% rename from packages/shared/lib/theme/light/components/ruleComponent.ts rename to packages/dms-kit/src/theme/light/components/ruleComponent.ts diff --git a/packages/shared/lib/theme/light/components/searchInput.ts b/packages/dms-kit/src/theme/light/components/searchInput.ts similarity index 100% rename from packages/shared/lib/theme/light/components/searchInput.ts rename to packages/dms-kit/src/theme/light/components/searchInput.ts diff --git a/packages/shared/lib/theme/light/components/segmented.ts b/packages/dms-kit/src/theme/light/components/segmented.ts similarity index 100% rename from packages/shared/lib/theme/light/components/segmented.ts rename to packages/dms-kit/src/theme/light/components/segmented.ts diff --git a/packages/shared/lib/theme/light/components/select.ts b/packages/dms-kit/src/theme/light/components/select.ts similarity index 100% rename from packages/shared/lib/theme/light/components/select.ts rename to packages/dms-kit/src/theme/light/components/select.ts diff --git a/packages/shared/lib/theme/light/components/table.ts b/packages/dms-kit/src/theme/light/components/table.ts similarity index 100% rename from packages/shared/lib/theme/light/components/table.ts rename to packages/dms-kit/src/theme/light/components/table.ts diff --git a/packages/shared/lib/theme/light/components/tag.ts b/packages/dms-kit/src/theme/light/components/tag.ts similarity index 100% rename from packages/shared/lib/theme/light/components/tag.ts rename to packages/dms-kit/src/theme/light/components/tag.ts diff --git a/packages/shared/lib/theme/light/components/toolbar.ts b/packages/dms-kit/src/theme/light/components/toolbar.ts similarity index 100% rename from packages/shared/lib/theme/light/components/toolbar.ts rename to packages/dms-kit/src/theme/light/components/toolbar.ts diff --git a/packages/shared/lib/theme/light/index.ts b/packages/dms-kit/src/theme/light/index.ts similarity index 100% rename from packages/shared/lib/theme/light/index.ts rename to packages/dms-kit/src/theme/light/index.ts diff --git a/packages/shared/lib/theme/light/nav.ts b/packages/dms-kit/src/theme/light/nav.ts similarity index 100% rename from packages/shared/lib/theme/light/nav.ts rename to packages/dms-kit/src/theme/light/nav.ts diff --git a/packages/shared/lib/theme/theme.type.ts b/packages/dms-kit/src/theme/theme.type.ts similarity index 100% rename from packages/shared/lib/theme/theme.type.ts rename to packages/dms-kit/src/theme/theme.type.ts diff --git a/packages/dms-kit/src/types/common.type.ts b/packages/dms-kit/src/types/common.type.ts new file mode 100644 index 000000000..6a2dadad9 --- /dev/null +++ b/packages/dms-kit/src/types/common.type.ts @@ -0,0 +1,45 @@ +import { RuleObject } from 'antd/es/form'; +import { SystemRole } from '../enum'; +import { IndexRouteObject, NonIndexRouteObject } from 'react-router-dom'; + +export type Dictionary = { + [key: string]: string | number | boolean | Dictionary | string[] | undefined; +}; + +export type StringDictionary = { + [key: string]: string; +}; + +export type ModalStatus = { + [key: string]: boolean; +}; + +export type FormValidatorRule = RuleObject['validator']; + +export type TemplateKeyPath = { + [key in keyof T]: key extends string + ? T[key] extends Record + ? `${key}.${TemplateKeyPath}` + : key + : never; +}[keyof T]; + +export interface IStore { + [key: string]: any; +} + +export type PermissionReduxState = { + sqlOptimizationIsSupported: boolean; +}; + +export type ExcludeSymbol = T extends symbol ? never : T; + +export type FormValidateError = { + values: T; + errorFields: Array<{ + name: string[]; + errors: string[]; + warnings: string[]; + }>; + outOfDate: boolean; +}; diff --git a/packages/dms-kit/src/types/theme.type.ts b/packages/dms-kit/src/types/theme.type.ts new file mode 100644 index 000000000..9e76526e7 --- /dev/null +++ b/packages/dms-kit/src/types/theme.type.ts @@ -0,0 +1,86 @@ +import { + BasicButtonTheme, + BasicInputTheme, + BasicRangePickerTheme, + BasicSelectTheme, + BasicTheme, + PageHeaderTheme, + TableTheme, + UITokenTheme, + CustomSelectTheme, + ColumnsSettingTheme, + SearchInputTheme, + FilterContainerTheme, + ToolbarTheme, + CustomFilterRangePickerTheme, + BasicSegmentedTheme, + BasicDrawerTheme, + BasicModalTheme, + CustomMonacoEditorTheme, + CustomDraggerUploadTheme, + BasicResultTheme, + ConfigItemTheme, + RuleComponentTheme, + BasicEmptyTheme, + BasicChartTheme, + BasicInfoListTheme, + BasicTagTheme, + NavTheme +} from '../theme/theme.type'; + +export interface SharedTheme { + uiToken: UITokenTheme; + basic: BasicTheme; + nav: NavTheme; + components: { + basicButton: BasicButtonTheme; + basicInput: BasicInputTheme; + basicSelect: BasicSelectTheme; + basicRangePicker: BasicRangePickerTheme; + pageHeader: PageHeaderTheme; + table: TableTheme; + customSelect: CustomSelectTheme; + filterContainer: FilterContainerTheme; + searchInput: SearchInputTheme; + columnsSetting: ColumnsSettingTheme; + toolbar: ToolbarTheme; + customFilter: { + rangePicker: CustomFilterRangePickerTheme; + }; + basicSegmented: BasicSegmentedTheme; + basicDrawer: BasicDrawerTheme; + basicModal: BasicModalTheme; + customMonacoEditor: CustomMonacoEditorTheme; + customDraggerUpload: CustomDraggerUploadTheme; + basicResult: BasicResultTheme; + configItem: ConfigItemTheme; + ruleComponent: RuleComponentTheme; + basicEmpty: BasicEmptyTheme; + basicChart: BasicChartTheme; + basicInfoList: BasicInfoListTheme; + basicTag: BasicTagTheme; + }; +} + +interface ThemeCustom { + sharedTheme: SharedTheme; +} +declare module '@mui/system' { + interface Theme extends ThemeCustom { + noUse: string; + } + // 允许配置文件使用 `createTheme` + interface ThemeOptions extends Partial { + noUse?: string; + } +} + +declare module '@mui/material/styles' { + interface Theme extends ThemeCustom { + noUse: string; + } + // 允许配置文件使用 `createTheme` + interface ThemeOptions extends Partial { + noUse?: string; + } +} diff --git a/packages/shared/lib/utils/Common.ts b/packages/dms-kit/src/utils/Common.ts similarity index 100% rename from packages/shared/lib/utils/Common.ts rename to packages/dms-kit/src/utils/Common.ts diff --git a/packages/shared/lib/utils/Copy.ts b/packages/dms-kit/src/utils/Copy.ts similarity index 100% rename from packages/shared/lib/utils/Copy.ts rename to packages/dms-kit/src/utils/Copy.ts diff --git a/packages/shared/lib/utils/Download.ts b/packages/dms-kit/src/utils/Download.ts similarity index 100% rename from packages/shared/lib/utils/Download.ts rename to packages/dms-kit/src/utils/Download.ts diff --git a/packages/shared/lib/utils/EventEmitter.ts b/packages/dms-kit/src/utils/EventEmitter.ts similarity index 100% rename from packages/shared/lib/utils/EventEmitter.ts rename to packages/dms-kit/src/utils/EventEmitter.ts diff --git a/packages/shared/lib/utils/FormRule.ts b/packages/dms-kit/src/utils/FormRule.ts similarity index 100% rename from packages/shared/lib/utils/FormRule.ts rename to packages/dms-kit/src/utils/FormRule.ts diff --git a/packages/shared/lib/utils/FormatterSQL.ts b/packages/dms-kit/src/utils/FormatterSQL.ts similarity index 100% rename from packages/shared/lib/utils/FormatterSQL.ts rename to packages/dms-kit/src/utils/FormatterSQL.ts diff --git a/packages/shared/lib/utils/HighlightCode.ts b/packages/dms-kit/src/utils/HighlightCode.ts similarity index 100% rename from packages/shared/lib/utils/HighlightCode.ts rename to packages/dms-kit/src/utils/HighlightCode.ts diff --git a/packages/shared/lib/utils/LocalStorageWrapper.ts b/packages/dms-kit/src/utils/LocalStorageWrapper.ts similarity index 100% rename from packages/shared/lib/utils/LocalStorageWrapper.ts rename to packages/dms-kit/src/utils/LocalStorageWrapper.ts diff --git a/packages/shared/lib/utils/Math.ts b/packages/dms-kit/src/utils/Math.ts similarity index 100% rename from packages/shared/lib/utils/Math.ts rename to packages/dms-kit/src/utils/Math.ts diff --git a/packages/shared/lib/utils/Tool.ts b/packages/dms-kit/src/utils/Tool.ts similarity index 100% rename from packages/shared/lib/utils/Tool.ts rename to packages/dms-kit/src/utils/Tool.ts diff --git a/packages/shared/lib/utils/__tests__/Common.test.ts b/packages/dms-kit/src/utils/__tests__/Common.test.ts similarity index 100% rename from packages/shared/lib/utils/__tests__/Common.test.ts rename to packages/dms-kit/src/utils/__tests__/Common.test.ts diff --git a/packages/shared/lib/utils/__tests__/Copy.test.ts b/packages/dms-kit/src/utils/__tests__/Copy.test.ts similarity index 100% rename from packages/shared/lib/utils/__tests__/Copy.test.ts rename to packages/dms-kit/src/utils/__tests__/Copy.test.ts diff --git a/packages/shared/lib/utils/__tests__/Download.test.ts b/packages/dms-kit/src/utils/__tests__/Download.test.ts similarity index 100% rename from packages/shared/lib/utils/__tests__/Download.test.ts rename to packages/dms-kit/src/utils/__tests__/Download.test.ts diff --git a/packages/shared/lib/utils/__tests__/EventEmitter.test.ts b/packages/dms-kit/src/utils/__tests__/EventEmitter.test.ts similarity index 100% rename from packages/shared/lib/utils/__tests__/EventEmitter.test.ts rename to packages/dms-kit/src/utils/__tests__/EventEmitter.test.ts diff --git a/packages/shared/lib/utils/__tests__/FormRule.test.ts b/packages/dms-kit/src/utils/__tests__/FormRule.test.ts similarity index 100% rename from packages/shared/lib/utils/__tests__/FormRule.test.ts rename to packages/dms-kit/src/utils/__tests__/FormRule.test.ts diff --git a/packages/shared/lib/utils/__tests__/FormatSQL.test.ts b/packages/dms-kit/src/utils/__tests__/FormatSQL.test.ts similarity index 100% rename from packages/shared/lib/utils/__tests__/FormatSQL.test.ts rename to packages/dms-kit/src/utils/__tests__/FormatSQL.test.ts diff --git a/packages/shared/lib/utils/__tests__/LocalStorageWrapper.test.tsx b/packages/dms-kit/src/utils/__tests__/LocalStorageWrapper.test.tsx similarity index 100% rename from packages/shared/lib/utils/__tests__/LocalStorageWrapper.test.tsx rename to packages/dms-kit/src/utils/__tests__/LocalStorageWrapper.test.tsx diff --git a/packages/shared/lib/utils/__tests__/Math.test.ts b/packages/dms-kit/src/utils/__tests__/Math.test.ts similarity index 100% rename from packages/shared/lib/utils/__tests__/Math.test.ts rename to packages/dms-kit/src/utils/__tests__/Math.test.ts diff --git a/packages/shared/lib/utils/__tests__/Tool.test.ts b/packages/dms-kit/src/utils/__tests__/Tool.test.ts similarity index 100% rename from packages/shared/lib/utils/__tests__/Tool.test.ts rename to packages/dms-kit/src/utils/__tests__/Tool.test.ts diff --git a/packages/shared/lib/utils/__tests__/__snapshots__/Copy.test.ts.snap b/packages/dms-kit/src/utils/__tests__/__snapshots__/Copy.test.ts.snap similarity index 100% rename from packages/shared/lib/utils/__tests__/__snapshots__/Copy.test.ts.snap rename to packages/dms-kit/src/utils/__tests__/__snapshots__/Copy.test.ts.snap diff --git a/packages/shared/lib/utils/__tests__/__snapshots__/FormatSQL.test.ts.snap b/packages/dms-kit/src/utils/__tests__/__snapshots__/FormatSQL.test.ts.snap similarity index 100% rename from packages/shared/lib/utils/__tests__/__snapshots__/FormatSQL.test.ts.snap rename to packages/dms-kit/src/utils/__tests__/__snapshots__/FormatSQL.test.ts.snap diff --git a/packages/shared/lib/utils/index.ts b/packages/dms-kit/src/utils/index.ts similarity index 100% rename from packages/shared/lib/utils/index.ts rename to packages/dms-kit/src/utils/index.ts diff --git a/packages/dms-kit/tsconfig.json b/packages/dms-kit/tsconfig.json new file mode 100644 index 000000000..181da8249 --- /dev/null +++ b/packages/dms-kit/tsconfig.json @@ -0,0 +1,22 @@ +{ + "extends": "../../tsconfig.json", + "include": [ + "./src" + ], + "compilerOptions": { + "paths": { + "~/*": [ + "./src/*" + ], + }, + "declaration": true, + "declarationMap": false, + "emitDeclarationOnly": false, + "noEmit": false, + }, + "exclude": [ + "node_modules", + "es", + "lib", + ] +} \ No newline at end of file diff --git a/packages/shared/PUBLISH.md b/packages/shared/PUBLISH.md deleted file mode 100644 index 08285e122..000000000 --- a/packages/shared/PUBLISH.md +++ /dev/null @@ -1,124 +0,0 @@ -## @actiontech/shared 发包流程(临时目录发布) - -### 背景 - -在工作区内直接将 `package_publish.json` 改名为 `package.json` 再构建/发布,会影响同一 monorepo 里的其他包(如 `base`)对 `@actiontech/shared` 的类型解析:此时 `types` 指向 `./dist/index.d.ts`,但构建尚未产出 `dist`,从而触发 IDE/tsc 报错。 - -为消除对工作区的干扰,采用"临时目录发布":**先在临时目录中复制整个包,然后安装依赖、构建,最后发布**,工作区不进行任何切换,构建过程完全隔离。 - -### 目录与关键文件 - -- `packages/shared/publish-shared.mjs`: 发布脚本(临时目录发布) -- `packages/shared/package_publish.json`: 发布版 `package.json` 模板(含 `main/module/types/exports/files/publishConfig`) -- `packages/shared/tsup.config.ts`: 构建配置(`entry`, `tsconfig`, `dts`, `outDir` 等) -- `packages/shared/tsconfig.build.json`: 构建 tsconfig(可覆盖 `noEmit/isolatedModules` 等) - -### 前置条件 - -- Node.js、pnpm、npm 可用 -- 已配置正确的 npm registry(见 `package_publish.json.publishConfig`) -- 工作区可成功执行 `pnpm -C packages/shared build` - -### 发布步骤(脚本自动化完成) - -1. **创建临时目录**:在项目上级目录创建唯一的发布目录 -2. **复制整个包**:将 shared 包复制到临时目录,智能排除不需要的文件(`node_modules`、`dist`、`.git` 等) -3. **调整配置**:将 `package_publish.json` 转换为 `package.json`,更新版本号,移除生命周期脚本 -4. **安装依赖**:在临时目录中执行 `pnpm install` -5. **执行构建**:在临时目录中执行 `pnpm build`,产出 `dist` 目录 -6. **目录结构调整**: - - 重命名 `publish-entry.*` 为 `index.*` - - 移除 `lib` 目录(原始源码) - - 将 `dist` 重命名为 `lib`(符合发布包结构) -7. **产物预览**:显示完整的发包产物结构,供用户确认 -8. **用户确认**:提示用户确认是否发包(可跳过) -9. **执行发布**:在临时目录执行 `npm publish` -10. **版本号更新**:发包成功后自动更新 `package_publish.json` 的版本号 -11. **清理资源**:删除临时目录 - -整个过程不修改工作区的 `package.json`,不会影响其它包/IDE 的类型解析,构建过程完全在隔离环境中进行。 - -### 使用方法 - -- **正常发布**: - -```bash -node packages/shared/publish-shared.mjs --version 0.0.1-rc.9 -``` - -- **跳过确认直接发布**: - -```bash -node packages/shared/publish-shared.mjs --version 0.0.1-rc.9 --skip-confirm -# 或使用简写 -node packages/shared/publish-shared.mjs --version 0.0.1-rc.9 -y -``` - -- **演练(不真正发布,建议先试)**: - -```bash -npm_config_dry_run=true node packages/shared/publish-shared.mjs --version 0.0.0-test.0 -``` - -### 新增功能特性 - -#### 🎯 **发包前确认机制** - -- **产物结构预览**:发包前显示完整的目录结构,让用户确认产物内容 -- **交互式确认**:提示用户输入确认发包,避免误操作 -- **跳过确认选项**:支持 `--skip-confirm` 或 `-y` 参数,适用于自动化场景 - -#### 🔄 **智能版本号管理** - -- **发包成功后**:自动更新 `package_publish.json` 的版本号为发包版本 -- **发包失败时**:自动还原 `package_publish.json` 的版本号为原始版本 -- **版本号持久化**:确保发包成功后版本号得到正确更新 - -#### 🏗️ **优化的构建流程** - -- **完全隔离**:构建过程在临时目录中进行,不影响工作区 -- **依赖管理**:在临时目录中安装依赖,避免工作区依赖冲突 -- **智能文件过滤**:自动排除 `node_modules`、`dist`、`.git` 等不需要的文件 - -### 版本号建议 - -- 遵循 semver:`MAJOR.MINOR.PATCH[-PRERELEASE]` -- 示例:`1.2.3`、`1.2.3-rc.1` - -### 常见问题(FAQ) - -- **为什么之前会出现 "Could not find a declaration file for module '@actiontech/shared'"?** - - 旧流程在工作区切换为发布版 `package.json` 时,`types` 指向未产出的 `dist`,导致消费者包的 IDE/tsc 找不到类型声明而报错。现在改为临时目录发布,工作区不切换,问题消除。 - -- **我在 `tsconfig.build.json` 里 `exclude` 了相关目录,为什么仍有类型报错?** - - `exclude` 仅作用于以该 tsconfig 为入口的 tsc 编译;对 tsup 的 dts 生成(基于入口追踪)和其他包/IDE 的类型解析不生效。根因是工作区被切换为发布形态导致解析到未产出的 `dist`,与 `exclude` 无关。 - -- **发布后包内为何不能使用 `@actiontech/shared/lib/...` 深路径导入?** - - 发布包通常只包含 `dist`,不存在 `lib` 源码路径。请统一从包顶层导出使用(`import { X } from '@actiontech/shared'`),并确保在 `lib/publish-entry.ts` 中导出所需符号。 - -- **新增的确认机制会影响自动化发布吗?** - - 不会。可以使用 `--skip-confirm` 或 `-y` 参数跳过确认,适用于 CI/CD 等自动化场景。 - -- **版本号管理是如何工作的?** - - 发包成功后,脚本会自动更新 `package_publish.json` 的版本号;如果发包失败,会自动还原为原始版本号,确保版本号的一致性。 - -### 触发命令示例(CI/CD) - -```bash -# 假设已在仓库根目录 -# 自动化发布(跳过确认) -node packages/shared/publish-shared.mjs --version "$VERSION" --skip-confirm - -# 手动发布(需要确认) -node packages/shared/publish-shared.mjs --version "$VERSION" -``` - -### 遗留事项 - -- **组件导出暂存(与 react-router 强关联)**: - - 目前在 `lib/publish-entry.ts` 依然导出了 `TypedRouter`、`ActionButton`、`ActiontechTable` 等与 `react-router` 依赖强关联的组件。 - - 原因:部分组件依赖 `ActiontechTable` 文件中提供的工具方法;同时 `ActiontechTable` 本身需要导出。考虑到本次不做较大重构,故临时保留相关导出。 - - 后续计划:将 `ActiontechTable` 中的通用工具方法拆分为独立模块,逐步去除对 `react-router` 强耦合组件的顶层导出。 - -- **README 遗留**: - - 发布包内的 README 仍为遗留项,后续补充使用说明、导出清单、迁移指南等文档。 diff --git a/packages/shared/lib/api/common/ApiBase/index.test.ts b/packages/shared/lib/api/common/ApiBase/index.test.ts index 7c2790d3a..6a2fbd357 100644 --- a/packages/shared/lib/api/common/ApiBase/index.test.ts +++ b/packages/shared/lib/api/common/ApiBase/index.test.ts @@ -1,9 +1,9 @@ import ApiBase from '.'; -import Download from '../../../utils/Download'; +import { Download } from '@actiontech/dms-kit'; import axios from 'axios'; import { TestMockApi } from '../../../testUtil/mockApi'; -import { eventEmitter } from '../../../utils/EventEmitter'; -import EmitterKey from '../../../data/EmitterKey'; +import { eventEmitter } from '@actiontech/dms-kit/es/utils/EventEmitter'; +import EmitterKey from '@actiontech/dms-kit/es/data/EmitterKey'; import 'blob-polyfill'; const downloadSpy = jest.spyOn(Download, 'downloadByCreateElementA'); diff --git a/packages/shared/lib/api/common/ApiBase/index.ts b/packages/shared/lib/api/common/ApiBase/index.ts index c18f7b3b6..f9fc21378 100644 --- a/packages/shared/lib/api/common/ApiBase/index.ts +++ b/packages/shared/lib/api/common/ApiBase/index.ts @@ -1,6 +1,4 @@ import { AxiosRequestConfig, AxiosResponse } from 'axios'; -import { ResponseCode } from '../../../enum'; -import Download from '../../../utils/Download'; import i18n from 'i18next'; import store from '../../../../../base/src/store'; import { @@ -8,12 +6,14 @@ import { getResponseCode, isExportFileResponse, isFileStreamResponse, - getRecentlySelectedZone -} from '../../../utils/Common'; -import { eventEmitter } from '../../../utils/EventEmitter'; + getRecentlySelectedZone, + ResponseCode, + Download +} from '@actiontech/dms-kit'; +import { eventEmitter } from '@actiontech/dms-kit/es/utils/EventEmitter'; import { NotificationInstanceKeyType } from '../../../hooks/useNotificationContext'; import { ArgsProps } from 'antd/es/notification/interface'; -import EmitterKey from '../../../data/EmitterKey'; +import EmitterKey from '@actiontech/dms-kit/es/data/EmitterKey'; class ApiBase { public interceptorsResponse( diff --git a/packages/shared/lib/api/common/authInvalid/index.test.tsx b/packages/shared/lib/api/common/authInvalid/index.test.tsx index f030c4d0a..eec905dcf 100644 --- a/packages/shared/lib/api/common/authInvalid/index.test.tsx +++ b/packages/shared/lib/api/common/authInvalid/index.test.tsx @@ -3,9 +3,9 @@ import { redirectToLogin, refreshAuthToken, addFailedRequest } from '.'; import store from '../../../../../base/src/store'; import * as history from 'history'; import axios from 'axios'; -import { ResponseCode } from '../../../enum'; -import { eventEmitter } from '../../../utils/EventEmitter'; -import EmitterKey from '../../../data/EmitterKey'; +import { ResponseCode } from '@actiontech/dms-kit'; +import { eventEmitter } from '@actiontech/dms-kit/es/utils/EventEmitter'; +import EmitterKey from '@actiontech/dms-kit/es/data/EmitterKey'; jest.mock('axios'); jest.mock('react-redux', () => { @@ -15,7 +15,7 @@ jest.mock('react-redux', () => { }; }); -jest.mock('../../../utils/EventEmitter', () => ({ +jest.mock('@actiontech/dms-kit/es/utils/EventEmitter', () => ({ eventEmitter: { emit: jest.fn() } diff --git a/packages/shared/lib/api/common/authInvalid/index.ts b/packages/shared/lib/api/common/authInvalid/index.ts index a02c93a4f..b71575a8d 100644 --- a/packages/shared/lib/api/common/authInvalid/index.ts +++ b/packages/shared/lib/api/common/authInvalid/index.ts @@ -8,12 +8,15 @@ import { updateUserUid, updateUserInfoFetchStatus } from '../../../../../base/src/store/user'; -import { DMS_REDIRECT_KEY_PARAMS_NAME } from '../../../data/routePaths'; +import { + DMS_REDIRECT_KEY_PARAMS_NAME, + ResponseCode, + getErrorMessage, + getResponseCode +} from '@actiontech/dms-kit'; import { IRefreshSessionReturn } from '../../base/service/Session/index.d'; -import { ResponseCode } from '../../../enum'; -import { getErrorMessage, getResponseCode } from '../../../utils'; -import EmitterKey from '../../../data/EmitterKey'; -import { eventEmitter } from '../../../utils/EventEmitter'; +import EmitterKey from '@actiontech/dms-kit/es/data/EmitterKey'; +import { eventEmitter } from '@actiontech/dms-kit/es/utils/EventEmitter'; import { ArgsProps } from 'antd/es/notification/interface'; import { NotificationInstanceKeyType } from '../../../hooks/useNotificationContext'; import i18n from 'i18next'; diff --git a/packages/shared/lib/api/sqle/utils/Api.ts b/packages/shared/lib/api/sqle/utils/Api.ts index 0287faaaa..05d278255 100644 --- a/packages/shared/lib/api/sqle/utils/Api.ts +++ b/packages/shared/lib/api/sqle/utils/Api.ts @@ -1,5 +1,5 @@ import axios from 'axios'; -import { SQLE_BASE_URL } from '../../../data/common'; +import { SQLE_BASE_URL } from '@actiontech/dms-kit'; import ApiBase from '../../common/ApiBase'; import { addFailedRequest } from '../../common/authInvalid'; diff --git a/packages/shared/lib/components/ActionButton/ActionButton.tsx b/packages/shared/lib/components/ActionButton/ActionButton.tsx index c7918e88d..a7b9e0ee7 100644 --- a/packages/shared/lib/components/ActionButton/ActionButton.tsx +++ b/packages/shared/lib/components/ActionButton/ActionButton.tsx @@ -1,11 +1,13 @@ /* eslint-disable @typescript-eslint/no-unused-vars */ import { ActionButtonProps } from './ActionButton.types'; import { useTranslation } from 'react-i18next'; -import { PopconfirmMessageStyleWrapper } from '../../styleWrapper/element'; import { Popconfirm } from 'antd'; import { RoutePathValue, TypedLink, TypedLinkProps } from '../TypedRouter'; -import { BasicButton } from '../BasicButton'; -import { BasicToolTip } from '../BasicToolTip'; +import { + BasicButton, + BasicToolTip, + PopconfirmMessageStyleWrapper +} from '@actiontech/dms-kit'; const ActionButton = ( props: ActionButtonProps diff --git a/packages/shared/lib/components/ActionButton/ActionButton.types.ts b/packages/shared/lib/components/ActionButton/ActionButton.types.ts index ed99af829..4ac287785 100644 --- a/packages/shared/lib/components/ActionButton/ActionButton.types.ts +++ b/packages/shared/lib/components/ActionButton/ActionButton.types.ts @@ -1,8 +1,7 @@ import { PopconfirmProps, SpaceProps } from 'antd'; -import { BasicButtonProps } from '../BasicButton'; import { Key, ReactNode } from 'react'; import { RoutePathValue, TypedLinkProps } from '../TypedRouter'; -import { BasicTooltipProps } from '../BasicToolTip'; +import { BasicButtonProps, BasicTooltipProps } from '@actiontech/dms-kit'; type ActionButtonBase = Omit & { text?: ReactNode; diff --git a/packages/shared/lib/components/ActiontechTable/components/ColumnsItems.tsx b/packages/shared/lib/components/ActiontechTable/components/ColumnsItems.tsx index 6b34e5e68..fb2f75019 100644 --- a/packages/shared/lib/components/ActiontechTable/components/ColumnsItems.tsx +++ b/packages/shared/lib/components/ActiontechTable/components/ColumnsItems.tsx @@ -11,7 +11,7 @@ import { } from '@ant-design/icons'; import { DragOutlined } from '@actiontech/icons'; import { getColumnsLabel } from '../utils'; -import { BasicToolTip } from '../../BasicToolTip'; +import { BasicToolTip } from '@actiontech/dms-kit'; export type typeFixed = 'left' | 'right' | 'no-fixed'; export interface IColumnsItems { diff --git a/packages/shared/lib/components/ActiontechTable/components/ColumnsSetting.tsx b/packages/shared/lib/components/ActiontechTable/components/ColumnsSetting.tsx index d3fd21b84..ad65652c6 100644 --- a/packages/shared/lib/components/ActiontechTable/components/ColumnsSetting.tsx +++ b/packages/shared/lib/components/ActiontechTable/components/ColumnsSetting.tsx @@ -4,8 +4,8 @@ import { Popover } from 'antd'; import { CatchTableColumnValueType, ColumnsSettingProps } from '../index.type'; import useTableSettings from '../hooks/useTableSettings'; import { ColumnsSettingDropdownStyleWrapper } from './style'; -import { eventEmitter } from '../../../utils/EventEmitter'; -import EmitterKey from '../../../data/EmitterKey'; +import { eventEmitter } from '@actiontech/dms-kit/es/utils/EventEmitter'; +import EmitterKey from '@actiontech/dms-kit/es/data/EmitterKey'; import { cloneDeep } from 'lodash'; import type { DragEndEvent, DragMoveEvent } from '@dnd-kit/core'; import { @@ -23,7 +23,7 @@ import { import ColumnsItems, { typeFixed } from './ColumnsItems'; import { DownOutlined, UpOutlined, SettingOutlined } from '@actiontech/icons'; import { ColumnsSettingStyleWrapper } from './style'; -import { BasicButton } from '../../BasicButton'; +import { BasicButton } from '@actiontech/dms-kit'; /** * todo: diff --git a/packages/shared/lib/components/ActiontechTable/components/FilterButton.tsx b/packages/shared/lib/components/ActiontechTable/components/FilterButton.tsx index f8578d4a2..ac58cca1b 100644 --- a/packages/shared/lib/components/ActiontechTable/components/FilterButton.tsx +++ b/packages/shared/lib/components/ActiontechTable/components/FilterButton.tsx @@ -3,7 +3,7 @@ import { useMemo } from 'react'; import { useTranslation } from 'react-i18next'; import { DownOutlined, UpOutlined } from '@actiontech/icons'; import { ColumnsSettingStyleWrapper } from './style'; -import { BasicButton } from '../../BasicButton'; +import { BasicButton } from '@actiontech/dms-kit'; const FilterButton = >({ filterButtonMeta = new Map(), diff --git a/packages/shared/lib/components/ActiontechTable/components/RefreshButton.tsx b/packages/shared/lib/components/ActiontechTable/components/RefreshButton.tsx index b01b4172f..a596b4117 100644 --- a/packages/shared/lib/components/ActiontechTable/components/RefreshButton.tsx +++ b/packages/shared/lib/components/ActiontechTable/components/RefreshButton.tsx @@ -1,4 +1,4 @@ -import { BasicButton } from '../../BasicButton'; +import { BasicButton } from '@actiontech/dms-kit'; import { TableRefreshButtonProps } from '../index.type'; import { RefreshOutlined } from '@actiontech/icons'; diff --git a/packages/shared/lib/components/ActiontechTable/components/style.ts b/packages/shared/lib/components/ActiontechTable/components/style.ts index 7b32d06bf..d0e9e4f1a 100644 --- a/packages/shared/lib/components/ActiontechTable/components/style.ts +++ b/packages/shared/lib/components/ActiontechTable/components/style.ts @@ -1,7 +1,6 @@ import { styled } from '@mui/material/styles'; import { Space } from 'antd'; -import BasicInput from '../../BasicInput/Input'; -import BasicRangePicker from '../../BasicRangePicker/BasicRangePicker'; +import { BasicInput, BasicRangePicker } from '@actiontech/dms-kit'; export const FilterContainerStyleWrapper = styled(Space)` border-bottom: ${({ theme }) => diff --git a/packages/shared/lib/components/ActiontechTable/components/test/ColumnsSetting.test.tsx b/packages/shared/lib/components/ActiontechTable/components/test/ColumnsSetting.test.tsx index 212ec727b..577d506a3 100644 --- a/packages/shared/lib/components/ActiontechTable/components/test/ColumnsSetting.test.tsx +++ b/packages/shared/lib/components/ActiontechTable/components/test/ColumnsSetting.test.tsx @@ -8,8 +8,8 @@ import { fireEvent, act, cleanup, screen } from '@testing-library/react'; import { ColumnsSettingProps } from '../../index.type'; import ColumnsSetting from '../ColumnsSetting'; import { mockUseTableSettings } from './mockHooks/mockUseTableSettings'; -import { eventEmitter } from '../../../../utils/EventEmitter'; -import EmitterKey from '../../../../data/EmitterKey'; +import { eventEmitter } from '@actiontech/dms-kit/es/utils/EventEmitter'; +import EmitterKey from '@actiontech/dms-kit/es/data/EmitterKey'; import { mockUseTableSettingsData } from './mockHooks/data'; const tableNameMock = 'demo_list'; diff --git a/packages/shared/lib/components/ActiontechTable/hooks/test/useCustomFilter.test.tsx b/packages/shared/lib/components/ActiontechTable/hooks/test/useCustomFilter.test.tsx index a3aa6bdb4..1116a2ae3 100644 --- a/packages/shared/lib/components/ActiontechTable/hooks/test/useCustomFilter.test.tsx +++ b/packages/shared/lib/components/ActiontechTable/hooks/test/useCustomFilter.test.tsx @@ -1,7 +1,7 @@ import { act, cleanup, renderHook } from '@testing-library/react'; import useCustomFilter from '../useCustomFilter'; import { TypeFilterElement } from '../../index.type'; -import { CustomInputProps } from '../../../CustomInput'; +import { CustomInputProps } from '@actiontech/dms-kit'; describe('lib/ActiontechTable-hooks', () => { beforeEach(() => { diff --git a/packages/shared/lib/components/ActiontechTable/hooks/test/useTableSettings.test.tsx b/packages/shared/lib/components/ActiontechTable/hooks/test/useTableSettings.test.tsx index 62a28a4fb..120aa31e4 100644 --- a/packages/shared/lib/components/ActiontechTable/hooks/test/useTableSettings.test.tsx +++ b/packages/shared/lib/components/ActiontechTable/hooks/test/useTableSettings.test.tsx @@ -1,8 +1,8 @@ import { act, cleanup, renderHook } from '@testing-library/react'; import useTableSettings from '../useTableSettings'; -import LocalStorageWrapper from '../../../../utils/LocalStorageWrapper'; -import { eventEmitter } from '../../../../utils/EventEmitter'; -import EmitterKey from '../../../../data/EmitterKey'; +import { LocalStorageWrapper } from '@actiontech/dms-kit'; +import { eventEmitter } from '@actiontech/dms-kit/es/utils/EventEmitter'; +import EmitterKey from '@actiontech/dms-kit/es/data/EmitterKey'; describe('lib/ActiontechTable-hooks-useTableSettings', () => { const tableName = 'tableList'; diff --git a/packages/shared/lib/components/ActiontechTable/hooks/useCustomFilter.tsx b/packages/shared/lib/components/ActiontechTable/hooks/useCustomFilter.tsx index f6623e3c7..124740de2 100644 --- a/packages/shared/lib/components/ActiontechTable/hooks/useCustomFilter.tsx +++ b/packages/shared/lib/components/ActiontechTable/hooks/useCustomFilter.tsx @@ -7,10 +7,13 @@ import { FilterCustomProps, UpdateTableFilterInfoType } from '../index.type'; -import { CustomSelect, CustomSelectProps } from '../../CustomSelect'; +import { + CustomSelect, + CustomSelectProps, + CustomInput +} from '@actiontech/dms-kit'; import { CustomFilterRangePickerStyleWrapper } from '../components/style'; import { SearchOutlined } from '@actiontech/icons'; -import { CustomInput } from '../../CustomInput'; const useCustomFilter = () => { const { t } = useTranslation(); diff --git a/packages/shared/lib/components/ActiontechTable/hooks/useTableAction.tsx b/packages/shared/lib/components/ActiontechTable/hooks/useTableAction.tsx index 468f987fc..3a7d529fa 100644 --- a/packages/shared/lib/components/ActiontechTable/hooks/useTableAction.tsx +++ b/packages/shared/lib/components/ActiontechTable/hooks/useTableAction.tsx @@ -13,12 +13,11 @@ import { InlineTableActionButtonsStyleWrapper, InlineTableActionMoreButtonPopoverStyleWrapper } from '../components/style'; -import EmptyBox from '../../EmptyBox/EmptyBox'; import { checkButtonPermissions, checkButtonDisabled } from '../utils'; import classNames from 'classnames'; import { DashOutlined } from '@actiontech/icons'; import { ActionButton, ActionButtonProps } from '../../ActionButton'; -import { BasicButton } from '../../BasicButton'; +import { BasicButton, EmptyBox } from '@actiontech/dms-kit'; export const ACTIONTECH_TABLE_ACTION_BUTTON_WIDTH = 82; export const ACTIONTECH_TABLE_MORE_BUTTON_WIDTH = 40; diff --git a/packages/shared/lib/components/ActiontechTable/hooks/useTableRequestError.tsx b/packages/shared/lib/components/ActiontechTable/hooks/useTableRequestError.tsx index 94c7b62f8..926296189 100644 --- a/packages/shared/lib/components/ActiontechTable/hooks/useTableRequestError.tsx +++ b/packages/shared/lib/components/ActiontechTable/hooks/useTableRequestError.tsx @@ -1,7 +1,7 @@ /* eslint-disable @typescript-eslint/no-unused-vars */ import { AxiosResponse } from 'axios'; import { useState } from 'react'; -import { getErrorMessage } from '../../../utils/Common'; +import { getErrorMessage } from '@actiontech/dms-kit'; const useTableRequestError = () => { const [requestErrorMessage, setRequestErrorMessage] = useState(''); diff --git a/packages/shared/lib/components/ActiontechTable/hooks/useTableSettings.tsx b/packages/shared/lib/components/ActiontechTable/hooks/useTableSettings.tsx index 3f5f6a3e9..843a03675 100644 --- a/packages/shared/lib/components/ActiontechTable/hooks/useTableSettings.tsx +++ b/packages/shared/lib/components/ActiontechTable/hooks/useTableSettings.tsx @@ -4,10 +4,10 @@ import { CatchTableColumnsType } from '../index.type'; import { useCallback, useEffect, useState } from 'react'; -import { eventEmitter } from '../../../utils/EventEmitter'; -import EmitterKey from '../../../data/EmitterKey'; +import { eventEmitter } from '@actiontech/dms-kit/es/utils/EventEmitter'; +import EmitterKey from '@actiontech/dms-kit/es/data/EmitterKey'; import { getColumnsLabel } from '../utils'; -import LocalStorageWrapper from '../../../utils/LocalStorageWrapper'; +import { LocalStorageWrapper } from '@actiontech/dms-kit'; import { isEqual } from 'lodash'; const useTableSettings = < diff --git a/packages/shared/lib/components/ActiontechTable/index.type.ts b/packages/shared/lib/components/ActiontechTable/index.type.ts index dfd86adbc..815aadd46 100644 --- a/packages/shared/lib/components/ActiontechTable/index.type.ts +++ b/packages/shared/lib/components/ActiontechTable/index.type.ts @@ -2,11 +2,13 @@ import { TableProps, ButtonProps, PopconfirmProps, InputProps } from 'antd'; import { RangePickerProps } from 'antd/es/date-picker'; import { ColumnGroupType, ColumnType } from 'antd/es/table'; import { CSSProperties, Key, ReactNode } from 'react'; -import { CustomSelectProps } from '../CustomSelect'; -import { BasicButtonProps } from '../BasicButton'; import { TypedLinkProps } from '../TypedRouter'; import { ExcludeSymbol } from '../../types/common.type'; -import { CustomInputProps } from '../CustomInput'; +import { + CustomInputProps, + CustomSelectProps, + BasicButtonProps +} from '@actiontech/dms-kit'; //======================================= utils diff --git a/packages/shared/lib/components/BackButton/BackButton.tsx b/packages/shared/lib/components/BackButton/BackButton.tsx index 221e861d7..8d9878f2a 100644 --- a/packages/shared/lib/components/BackButton/BackButton.tsx +++ b/packages/shared/lib/components/BackButton/BackButton.tsx @@ -1,7 +1,7 @@ import useBack from '../../hooks/useBack'; import { LeftArrowOutlined } from '@actiontech/icons'; import { BackButtonProps } from './BackButton.types'; -import { BasicButton } from '../BasicButton'; +import { BasicButton } from '@actiontech/dms-kit'; const BackButton: React.FC = (props) => { const { goBack } = useBack(); diff --git a/packages/shared/lib/components/BasicChart/BasicChart.test.tsx b/packages/shared/lib/components/BasicChart/BasicChart.test.tsx index b513680bf..15f45a9ee 100644 --- a/packages/shared/lib/components/BasicChart/BasicChart.test.tsx +++ b/packages/shared/lib/components/BasicChart/BasicChart.test.tsx @@ -2,12 +2,13 @@ import { superRender } from '../../testUtil/superRender'; import BasicChart from './BasicChart'; import { ChartTypeEnum } from './BasicChart.enum'; import { BasicChartProps } from './BasicChart.types'; -import BasicEmpty from '../BasicEmpty/BasicEmpty'; +import { BasicEmpty } from '@actiontech/dms-kit'; import { screen } from '@testing-library/react'; -jest.mock('../BasicEmpty/BasicEmpty', () => { - return jest.fn().mockImplementation(() => null); -}); +jest.mock('@actiontech/dms-kit', () => ({ + ...jest.requireActual('@actiontech/dms-kit'), + BasicEmpty: jest.fn().mockImplementation(() => null) +})); describe('lib/BasicChart', () => { const customRender = (params: BasicChartProps) => { @@ -112,3 +113,4 @@ describe('lib/BasicChart', () => { ); }); }); + diff --git a/packages/shared/lib/components/BasicChart/BasicChart.tsx b/packages/shared/lib/components/BasicChart/BasicChart.tsx index e65be97f3..e4e6860e6 100644 --- a/packages/shared/lib/components/BasicChart/BasicChart.tsx +++ b/packages/shared/lib/components/BasicChart/BasicChart.tsx @@ -1,7 +1,7 @@ import React, { useMemo } from 'react'; import { Column, ColumnConfig, Line, LineConfig } from '@ant-design/plots'; import { BasicLineChartStyleWrapper } from './style'; -import BasicEmpty from '../BasicEmpty/BasicEmpty'; +import { BasicEmpty } from '@actiontech/dms-kit'; import { BasicChartProps } from './BasicChart.types'; import { ChartTypeEnum } from './BasicChart.enum'; diff --git a/packages/shared/lib/components/BasicTypographyEllipsis/BasicTypographyEllipsis.tsx b/packages/shared/lib/components/BasicTypographyEllipsis/BasicTypographyEllipsis.tsx index 3223b252f..7fcf0910f 100644 --- a/packages/shared/lib/components/BasicTypographyEllipsis/BasicTypographyEllipsis.tsx +++ b/packages/shared/lib/components/BasicTypographyEllipsis/BasicTypographyEllipsis.tsx @@ -3,7 +3,7 @@ import { TypographyStyleWrapper } from './style'; import classNames from 'classnames'; import { EllipsisConfig } from 'antd/es/typography/Base'; import { TypedLink } from '../TypedRouter'; -import { basicTooltipCommonProps } from '../BasicToolTip'; +import { basicTooltipCommonProps } from '@actiontech/dms-kit'; import { BasicTypographyEllipsisProps } from './BasicTypographyEllipsis.types'; // 外层需要一个 max-width 容器 "例如:.ellipsis-column-width" diff --git a/packages/shared/lib/components/EnterpriseFeatureDisplay/EnterpriseFeatureDisplay.tsx b/packages/shared/lib/components/EnterpriseFeatureDisplay/EnterpriseFeatureDisplay.tsx index c0696b9a0..604e5aaec 100644 --- a/packages/shared/lib/components/EnterpriseFeatureDisplay/EnterpriseFeatureDisplay.tsx +++ b/packages/shared/lib/components/EnterpriseFeatureDisplay/EnterpriseFeatureDisplay.tsx @@ -3,12 +3,14 @@ import { EnterpriseFeatureDisplayProps } from './EnterpriseFeatureDisplay.types' import { useTranslation } from 'react-i18next'; import { CEIndexStyleWrapper } from './style'; import Icon from '@ant-design/icons'; -import { DMS_DEFAULT_WEB_TITLE } from '../../data/common'; -import EmptyBox from '../EmptyBox/EmptyBox'; +import { + DMS_DEFAULT_WEB_TITLE, + EmptyBox, + BasicButton +} from '@actiontech/dms-kit'; import VersionComparison from './components/VersionComparison'; import classNames from 'classnames'; import { HeadphoneOutlined, BookMarkOutlined } from '@actiontech/icons'; -import { BasicButton } from '../BasicButton'; const EnterpriseFeatureDisplay: React.FC = ({ children, diff --git a/packages/shared/lib/components/EnterpriseFeatureDisplay/EnterpriseFeatureDisplay.types.ts b/packages/shared/lib/components/EnterpriseFeatureDisplay/EnterpriseFeatureDisplay.types.ts index 43d678bae..38f1a56c0 100644 --- a/packages/shared/lib/components/EnterpriseFeatureDisplay/EnterpriseFeatureDisplay.types.ts +++ b/packages/shared/lib/components/EnterpriseFeatureDisplay/EnterpriseFeatureDisplay.types.ts @@ -1,5 +1,4 @@ -import { I18nKey } from '../../locale'; -import { BasicTagColor } from '../../theme/theme.type'; +import { I18nKey, BasicTagColor } from '@actiontech/dms-kit'; export type EnterpriseFeatureDisplayProps = { children: React.ReactNode; diff --git a/packages/shared/lib/components/EnterpriseFeatureDisplay/components/VersionComparison.tsx b/packages/shared/lib/components/EnterpriseFeatureDisplay/components/VersionComparison.tsx index 0ef5b4cae..427ba6a4e 100644 --- a/packages/shared/lib/components/EnterpriseFeatureDisplay/components/VersionComparison.tsx +++ b/packages/shared/lib/components/EnterpriseFeatureDisplay/components/VersionComparison.tsx @@ -6,8 +6,7 @@ import { import { useTranslation } from 'react-i18next'; import { VersionComparisonItem } from '../EnterpriseFeatureDisplay.types'; import { CheckStrongOutlined } from '@actiontech/icons'; -import { BasicButton } from '../../BasicButton'; -import { BasicTag } from '../../BasicTag'; +import { BasicButton, BasicTag } from '@actiontech/dms-kit'; import { versionList } from '../EnterpriseFeatureDisplay.data'; const VersionComparison: React.FC = () => { diff --git a/packages/shared/lib/components/EnterpriseFeatureDisplay/style.ts b/packages/shared/lib/components/EnterpriseFeatureDisplay/style.ts index f2327b895..8bba460d2 100644 --- a/packages/shared/lib/components/EnterpriseFeatureDisplay/style.ts +++ b/packages/shared/lib/components/EnterpriseFeatureDisplay/style.ts @@ -1,6 +1,6 @@ import { styled } from '@mui/material/styles'; import { Space, Card } from 'antd'; -import { BasicTagColor } from '../../theme/theme.type'; +import { BasicTagColor } from '@actiontech/dms-kit'; export const CEIndexStyleWrapper = styled('section')` background: ${({ theme }) => theme.sharedTheme.basic.colorBgLayoutGray}; diff --git a/packages/shared/lib/components/SQLRenderer/__tests__/Snippet.test.tsx b/packages/shared/lib/components/SQLRenderer/__tests__/Snippet.test.tsx index 7c353f343..a693bbe95 100644 --- a/packages/shared/lib/components/SQLRenderer/__tests__/Snippet.test.tsx +++ b/packages/shared/lib/components/SQLRenderer/__tests__/Snippet.test.tsx @@ -3,7 +3,7 @@ import { getBySelector } from '../../../testUtil/customQuery'; import { superRender } from '../../../testUtil/superRender'; import Snippet from '../component/Snippet'; import { SQLSnippetRendererProps } from '../SQLRenderer.types'; -import Copy from '../../../utils/Copy'; +import { Copy } from '@actiontech/dms-kit'; import { act } from '@testing-library/react'; describe('test SQLRenderer.Snippet', () => { diff --git a/packages/shared/lib/components/SQLRenderer/component/Snippet.tsx b/packages/shared/lib/components/SQLRenderer/component/Snippet.tsx index 892e8696d..25153347d 100644 --- a/packages/shared/lib/components/SQLRenderer/component/Snippet.tsx +++ b/packages/shared/lib/components/SQLRenderer/component/Snippet.tsx @@ -4,10 +4,9 @@ import useRenderSQLTemplate from '../hooks/useRenderSQLTemplate'; import { SQLSnippetRendererProps } from '../SQLRenderer.types'; import { SQLRendererStyleWrapper } from '../style'; import { Spin, Typography } from 'antd'; -import HighlightCode from '../../../utils/HighlightCode'; import { useMemo } from 'react'; import { isNumber } from 'lodash'; -import { basicTooltipCommonProps } from '../../BasicToolTip'; +import { basicTooltipCommonProps, HighlightCode } from '@actiontech/dms-kit'; const Snippet: React.FC = ({ rows = 10, diff --git a/packages/shared/lib/components/SQLRenderer/hooks/useRenderCopyIcon.tsx b/packages/shared/lib/components/SQLRenderer/hooks/useRenderCopyIcon.tsx index 3b7a35cb8..86fa0c904 100644 --- a/packages/shared/lib/components/SQLRenderer/hooks/useRenderCopyIcon.tsx +++ b/packages/shared/lib/components/SQLRenderer/hooks/useRenderCopyIcon.tsx @@ -1,8 +1,7 @@ import classNames from 'classnames'; import { SQLRendererProps } from '../SQLRenderer.types'; import { useCallback } from 'react'; -import Copy from '../../../utils/Copy'; -import { CopyIcon } from '../../CopyIcon'; +import { CopyIcon, Copy } from '@actiontech/dms-kit'; const useRenderCopyIcon = ( params: Pick< diff --git a/packages/shared/lib/components/SQLRenderer/hooks/useRenderSQLTemplate.tsx b/packages/shared/lib/components/SQLRenderer/hooks/useRenderSQLTemplate.tsx index 34e9453b6..32649b6ad 100644 --- a/packages/shared/lib/components/SQLRenderer/hooks/useRenderSQLTemplate.tsx +++ b/packages/shared/lib/components/SQLRenderer/hooks/useRenderSQLTemplate.tsx @@ -1,6 +1,6 @@ import { useCallback } from 'react'; import { SQLRendererProps } from '../SQLRenderer.types'; -import HighlightCode from '../../../utils/HighlightCode'; +import { HighlightCode } from '@actiontech/dms-kit'; const useRenderSQLTemplate = ( params: Pick< diff --git a/packages/shared/lib/components/index.ts b/packages/shared/lib/components/index.ts index 6efb2f833..eaab3b530 100644 --- a/packages/shared/lib/components/index.ts +++ b/packages/shared/lib/components/index.ts @@ -1,51 +1,13 @@ export * from './ActionButton'; export * from './ActiontechTable'; export * from './BackButton'; -export * from './BasicButton'; -export * from './BasicChart'; -export * from './BasicDatePicker'; -export * from './BasicDrawer'; -export * from './BasicEmpty'; -export * from './BasicInfoList'; -export * from './BasicInput'; -export * from './BasicInputNumber'; -export * from './BasicModal'; -export * from './BasicRangePicker'; -export * from './BasicResult'; -export * from './BasicSegmented'; -export * from './BasicSelect'; -export * from './BasicSwitch'; -export * from './BasicTable'; -export * from './BasicTag'; -export * from './BasicToolTip'; -export * from './BasicTreeSelect'; + export * from './BasicTypographyEllipsis'; -export * from './ConfigItem'; -export * from './CopyIcon'; -export * from './CronInput'; -export * from './CustomAvatar'; -export * from './CustomDraggerUpload'; -export * from './CustomForm'; -export * from './CustomInput'; -export * from './CustomSegmentedFilter'; -export * from './CustomSelect'; -export * from './DatabaseTypeLogo'; -export * from './EditText'; -export * from './EmptyBox'; + export * from './EnterpriseFeatureDisplay'; -export * from './HeaderProgress'; -export * from './LazyLoadComponent'; -export * from './ModeSwitcher'; + export * from './MonacoEditor'; -export * from './PageHeader'; -export * from './ReminderInformation'; -export * from './SegmentedTabs'; -export * from './SensitiveDisplay'; -export * from './SpinIndicator'; + export * from './SQLRenderer'; -export * from './SystemConfigurationHub'; -export * from './TestDatabaseConnectButton'; -export * from './ToggleTokens'; + export * from './TypedRouter'; -export * from './VerificationCodeInput'; -export * from './EditableSelect'; diff --git a/packages/shared/lib/features/useChangeTheme/index.test.tsx b/packages/shared/lib/features/useChangeTheme/index.test.tsx index 4c363cf84..2a239ba35 100644 --- a/packages/shared/lib/features/useChangeTheme/index.test.tsx +++ b/packages/shared/lib/features/useChangeTheme/index.test.tsx @@ -1,6 +1,6 @@ import { superRenderHook } from '../../testUtil/superRender'; import { act } from '@testing-library/react'; -import { SupportTheme } from '../../enum'; +import { SupportTheme } from '@actiontech/dms-kit'; import useChangeTheme from '.'; import { mockUseCurrentUser } from '../../testUtil/mockHook/mockUseCurrentUser'; diff --git a/packages/shared/lib/features/useChangeTheme/index.ts b/packages/shared/lib/features/useChangeTheme/index.ts index 8c0c96fdc..902282969 100644 --- a/packages/shared/lib/features/useChangeTheme/index.ts +++ b/packages/shared/lib/features/useChangeTheme/index.ts @@ -1,5 +1,5 @@ import React from 'react'; -import { SupportTheme } from '../../enum'; +import { SupportTheme } from '@actiontech/dms-kit'; import useCurrentUser from '../useCurrentUser'; const useChangeTheme = () => { diff --git a/packages/shared/lib/features/useCurrentProject/index.test.ts b/packages/shared/lib/features/useCurrentProject/index.test.ts index a33cf5322..f8a53d97a 100644 --- a/packages/shared/lib/features/useCurrentProject/index.test.ts +++ b/packages/shared/lib/features/useCurrentProject/index.test.ts @@ -1,6 +1,6 @@ import { useParams } from 'react-router-dom'; import useCurrentProject from '.'; -import { DEFAULT_PROJECT_NAME } from '../../data/common'; +import { DEFAULT_PROJECT_NAME } from '@actiontech/dms-kit'; import { superRenderHook } from '../../testUtil/superRender'; jest.mock('react-router-dom', () => ({ diff --git a/packages/shared/lib/features/useCurrentUser/index.test.ts b/packages/shared/lib/features/useCurrentUser/index.test.ts index e7e0a1ae8..361893e26 100644 --- a/packages/shared/lib/features/useCurrentUser/index.test.ts +++ b/packages/shared/lib/features/useCurrentUser/index.test.ts @@ -1,7 +1,7 @@ import useCurrentUser from '.'; import { renderHook } from '@testing-library/react-hooks'; import { useSelector } from 'react-redux'; -import { SupportLanguage, SupportTheme, SystemRole } from '../../enum'; +import { SupportLanguage, SupportTheme, SystemRole } from '@actiontech/dms-kit'; import { useDispatch } from 'react-redux'; import { IUidWithName, IUserBindProject } from '../../api/base/service/common'; diff --git a/packages/shared/lib/features/useCurrentUser/index.ts b/packages/shared/lib/features/useCurrentUser/index.ts index b6f2fa8ba..3ef5e57cf 100644 --- a/packages/shared/lib/features/useCurrentUser/index.ts +++ b/packages/shared/lib/features/useCurrentUser/index.ts @@ -7,7 +7,7 @@ import { SupportTheme, SystemRole, UserRolesType -} from '../../enum'; +} from '@actiontech/dms-kit'; import { updateTheme as updateReduxTheme, updateLanguage as updateReduxLanguage diff --git a/packages/shared/lib/features/useDbServiceDriver/index.tsx b/packages/shared/lib/features/useDbServiceDriver/index.tsx index 41e5bf312..4444ba54b 100644 --- a/packages/shared/lib/features/useDbServiceDriver/index.tsx +++ b/packages/shared/lib/features/useDbServiceDriver/index.tsx @@ -1,12 +1,11 @@ import React, { useCallback } from 'react'; import { useRequest } from 'ahooks'; import DBService from '../../api/base/service/DBService'; -import { ResponseCode } from '../../enum'; +import { ResponseCode, DatabaseTypeLogo } from '@actiontech/dms-kit'; import { useDispatch } from 'react-redux'; import { updateDriverMeta } from '../../../../base/src/store/database'; import { useSelector } from 'react-redux'; import { IReduxState } from '../../../../base/src/store'; -import DatabaseTypeLogo from '../../components/DatabaseTypeLogo/DatabaseTypeLogo'; import { Select } from 'antd'; const useDbServiceDriver = () => { diff --git a/packages/shared/lib/features/usePermission/__tests__/index.test.ts b/packages/shared/lib/features/usePermission/__tests__/index.test.ts index 460e26a11..9647718c6 100644 --- a/packages/shared/lib/features/usePermission/__tests__/index.test.ts +++ b/packages/shared/lib/features/usePermission/__tests__/index.test.ts @@ -11,7 +11,7 @@ import { } from '../../../api/base/service/common.enum'; import { IOpPermissionItem } from '../../../api/base/service/common'; import { mockProjectInfo } from '../../../testUtil/mockHook/data'; -import { SystemRole } from '../../../enum'; +import { SystemRole } from '@actiontech/dms-kit'; import { ActiontechTableActionsWithPermissions } from '../index.type'; jest.mock('react-redux', () => ({ diff --git a/packages/shared/lib/features/usePermission/permissionManifest.ts b/packages/shared/lib/features/usePermission/permissionManifest.ts index 346dc0ad2..5c427da88 100644 --- a/packages/shared/lib/features/usePermission/permissionManifest.ts +++ b/packages/shared/lib/features/usePermission/permissionManifest.ts @@ -1,5 +1,5 @@ import { OpPermissionItemOpPermissionTypeEnum } from '../../api/base/service/common.enum'; -import { SystemModuleSupported, SystemRole } from '../../enum'; +import { SystemModuleSupported, SystemRole } from '@actiontech/dms-kit'; import { PERMISSIONS, PermissionsConstantType } from './permissions'; export type PermissionDetail = { diff --git a/packages/shared/lib/features/useUserInfo/index.ts b/packages/shared/lib/features/useUserInfo/index.ts index f1b6c0580..bd384f5c3 100644 --- a/packages/shared/lib/features/useUserInfo/index.ts +++ b/packages/shared/lib/features/useUserInfo/index.ts @@ -12,11 +12,15 @@ import { updateUserUid, updateLanguage } from '../../../../base/src/store/user'; -import { ResponseCode, SupportLanguage, SystemRole } from '../../enum'; +import { + ResponseCode, + SupportLanguage, + SystemRole, + DEFAULT_LANGUAGE, + ROUTE_PATHS +} from '@actiontech/dms-kit'; import User from '../../api/base/service/User'; -import { DEFAULT_LANGUAGE } from '../../locale'; import { useTypedNavigate } from '../../components/TypedRouter'; -import { ROUTE_PATHS } from '../../data/routePaths'; const useUserInfo = () => { const dispatch = useDispatch(); diff --git a/packages/shared/lib/hooks/useNotificationContext/index.test.tsx b/packages/shared/lib/hooks/useNotificationContext/index.test.tsx index 6ca9b8338..cf904d49e 100644 --- a/packages/shared/lib/hooks/useNotificationContext/index.test.tsx +++ b/packages/shared/lib/hooks/useNotificationContext/index.test.tsx @@ -1,7 +1,7 @@ import { renderHook } from '@testing-library/react'; import useNotificationContext from '.'; -import { eventEmitter } from '../../utils/EventEmitter'; -import EmitterKey from '../../data/EmitterKey'; +import { eventEmitter } from '@actiontech/dms-kit/es/utils/EventEmitter'; +import EmitterKey from '@actiontech/dms-kit/es/data/EmitterKey'; import { notification } from 'antd'; import { superRender } from '../../testUtil/superRender'; @@ -12,6 +12,7 @@ jest.mock('antd', () => ({ } })); + const api = { success: jest.fn(), error: jest.fn(), diff --git a/packages/shared/lib/hooks/useNotificationContext/index.tsx b/packages/shared/lib/hooks/useNotificationContext/index.tsx index bc0e77260..73184c114 100644 --- a/packages/shared/lib/hooks/useNotificationContext/index.tsx +++ b/packages/shared/lib/hooks/useNotificationContext/index.tsx @@ -4,8 +4,8 @@ import { NotificationInstance } from 'antd/es/notification/interface'; import { useCallback, useEffect } from 'react'; -import { eventEmitter } from '../../utils/EventEmitter'; -import EmitterKey from '../../data/EmitterKey'; +import { eventEmitter } from '@actiontech/dms-kit/es/utils/EventEmitter'; +import EmitterKey from '@actiontech/dms-kit/es/data/EmitterKey'; import { NotificationDescriptionStyleWrapper, NotificationMessageStyleWrapper diff --git a/packages/shared/lib/index.ts b/packages/shared/lib/index.ts index b25b5fb1d..f76fd6f16 100644 --- a/packages/shared/lib/index.ts +++ b/packages/shared/lib/index.ts @@ -1,3 +1,2 @@ export * from './components'; -export * from './utils'; export * from './hooks'; diff --git a/packages/shared/lib/testUtil/common.tsx b/packages/shared/lib/testUtil/common.tsx index 3129ee539..de773f813 100644 --- a/packages/shared/lib/testUtil/common.tsx +++ b/packages/shared/lib/testUtil/common.tsx @@ -1,62 +1,4 @@ -/* eslint-disable no-console */ -export const ignoreConsoleErrors = ( - params: Array -) => { - const originalError = console.error; - const paramsWithGlobalRules = [ - ...params, - 'Warning: findDOMNode is deprecated and will be removed in the next major release. Instead, add a ref directly to the element you want to reference. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-find-nod' - ]; - - beforeAll(() => { - console.error = (...arg) => { - if ( - typeof arg[0] === 'string' && - paramsWithGlobalRules.some((v) => arg[0].includes(v)) - ) { - return; - } - originalError(...arg); - }; - }); - - afterAll(() => { - // 恢复原始的 console.error - console.error = originalError; - }); -}; - -export enum UtilsConsoleErrorStringsEnum { - // 表单校验失败并且没有使用 try catch 捕获时出现该错误 - ASYNC_VALIDATOR_ERROR = 'async-validator', - - // 组件被 Form 包裹但是没有提供 form 时 - UNCONNECTED_FORM_COMPONENT = 'Instance created by `useForm` is not connected to any Form element. Forget to pass `form` prop?', - - // 非受控组件 - UNCONTROLLED_COMPONENT = 'A component is changing a controlled input to be uncontrolled.', - - // antd-plots 组件相关错误 - PARENT_COMPONENT_PROP_ERROR = 'If you accidentally passed it from a parent component, remove it from the DOM element.', - - // 在选择 date-range-pick 组件的结束日期 input 元素时,实际选择到了,报此 warning - INPUT_DATE_FORMAT_MISMATCH = 'Not match any format. Please help to fire a issue about this.', - - // 循环生成组件时若没有设置 key,便会抛出该错误信息 - UNIQUE_KEY_REQUIRED = `Each child in a list should have a unique "key" prop`, - - // 当为原生的 html 添加大驼峰、小驼峰之类的自定义属性,会出现报错 - INVALID_CUSTOM_ATTRIBUTE = `prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase`, - - /** - * 过滤 NaN is an invalid value for the height css style property. 问题 - * input.textarea 设置 minRows 或者 maxRows 时出现 - */ - INVALID_CSS_VALUE = '`NaN` is an invalid value for the', - - // antd Drawer Popconfirm等弹出组件不在同一个根元素内 会报此warning - TRIGGER_ELEMENT_SAME_ROOT = 'trigger element and popup element should in same shadow root.', - - // monaco-editor mock input not exist onMount property - UNKNOWN_EVENT_HANDLER = 'Unknown event handler property' -} +export { + ignoreConsoleErrors, + UtilsConsoleErrorStringsEnum +} from '@actiontech/dms-kit/src/testUtil/common'; diff --git a/packages/shared/lib/testUtil/customQuery.ts b/packages/shared/lib/testUtil/customQuery.ts index 881e2ef57..1262e0269 100644 --- a/packages/shared/lib/testUtil/customQuery.ts +++ b/packages/shared/lib/testUtil/customQuery.ts @@ -1,139 +1,13 @@ -import * as domTestingLib from '@testing-library/dom'; -import { act, fireEvent, screen } from '@testing-library/react'; - -export const getBySelector = (selector: string, baseElement?: Element) => { - let temp; - if (baseElement !== undefined) { - temp = baseElement.querySelectorAll(selector); - } else { - temp = document.querySelectorAll(selector); - } - if (temp.length === 0) { - throw domTestingLib.queryHelpers.getElementError( - `Unable to find an element by: selector=${selector}`, - document.body - ); - } - if (temp.length > 1) { - throw domTestingLib.queryHelpers.getElementError( - `Found multiple elements with the selector=${selector}`, - document.body - ); - } - return temp[0]; -}; - -export const queryBySelector = (selector: string, baseElement?: Element) => { - let temp; - if (baseElement !== undefined) { - temp = baseElement.querySelector(selector); - } else { - temp = document.querySelector(selector); - } - return temp; -}; - -export const getAllBySelector = (selector: string, baseElement?: Element) => { - let temp; - if (baseElement !== undefined) { - temp = baseElement.querySelectorAll(selector); - } else { - temp = document.querySelectorAll(selector); - } - if (temp.length === 0) { - throw domTestingLib.queryHelpers.getElementError( - `Unable to find an element by: selector=${selector}`, - document.body - ); - } - return temp; -}; - -export const getSelectContentByFormLabel = (label: string) => { - return getBySelector( - '.ant-select-selection-item-content', - screen.getByText(label).parentNode?.parentNode as HTMLDivElement - ); -}; - -export const getSelectValueByFormLabel = (label: string) => { - return getBySelector( - '.ant-select-selection-item', - screen.getByLabelText(label).parentNode?.parentNode as HTMLDivElement - ); -}; - -export const selectOptionByIndex = ( - label: string, - optionText: string, - index = 1 -) => { - fireEvent.mouseDown(screen.getByLabelText(label)); - const option = screen.getAllByText(optionText)[index]; - expect(option).toHaveClass('ant-select-item-option-content'); - fireEvent.click(option); -}; - -/** - * 具体功能同 selectOptionByIndex, 不过该函数主要针对下拉框选项为一个节点的情况 - * @param label 表单中 Select 组件外部 Form.Item 的label, 注意该 Form.Item 必须有 name - * @param optionCls 下拉项节点最外层的 class - * @param index 这里不同于 selectOptionByIndex 的 index, 其代表的就是真实需要选择的下拉项的序号, 从 0 开始. - */ -export const selectCustomOptionByClassName = ( - label: string, - optionCls: string, - index: number -) => { - fireEvent.mouseDown(screen.getByLabelText(label)); - const options = getAllBySelector(`.${optionCls}`); - let realIndex = index; - if (index < 0) { - realIndex = options.length + index; - } - - const option = options[realIndex]; - expect(option.parentNode).toHaveClass('ant-select-item-option-content'); - fireEvent.click(option); -}; - -export const getValueByInput = (val: string) => { - const inputList = getAllBySelector('.ant-input'); - const findInputList = []; - for (const input of inputList) { - if (input.getAttribute('value') === val) { - findInputList.push(input); - } - } - if (findInputList.length === 0) { - throw domTestingLib.queryHelpers.getElementError( - `Unable to find an element by: value=${val}`, - document.body - ); - } - if (findInputList.length > 1) { - throw domTestingLib.queryHelpers.getElementError( - `Found multiple elements with the value=${val}`, - document.body - ); - } - return findInputList[0]; -}; - -const globalTimeout = global.setTimeout; - -export const sleep = async (timeout = 0) => { - await act(async () => { - await new Promise((resolve) => { - globalTimeout(resolve, timeout); - }); - }); -}; - -export const getHrefByText = (name: string) => { - return screen.getByText(name).getAttribute('href'); -}; - -export const getAllHrefByText = (name: string) => { - return screen.getAllByText(name).map((v) => v.getAttribute('href')); -}; +export { + getBySelector, + queryBySelector, + getAllBySelector, + getSelectContentByFormLabel, + getSelectValueByFormLabel, + selectOptionByIndex, + selectCustomOptionByClassName, + getValueByInput, + sleep, + getHrefByText, + getAllHrefByText +} from '@actiontech/dms-kit/src/testUtil/customQuery'; diff --git a/packages/shared/lib/testUtil/mockApi/base/global/data.ts b/packages/shared/lib/testUtil/mockApi/base/global/data.ts index defec76bc..ef81d25fd 100644 --- a/packages/shared/lib/testUtil/mockApi/base/global/data.ts +++ b/packages/shared/lib/testUtil/mockApi/base/global/data.ts @@ -9,7 +9,7 @@ import { GetUserAuthenticationTypeEnum, ListDBServiceV2LastConnectionTestStatusEnum } from '../../../../api/base/service/common.enum'; -import { SupportLanguage } from '../../../../enum'; +import { SupportLanguage } from '@actiontech/dms-kit'; export const UserInfo = { token: 'Dhsiwkow133jn', diff --git a/packages/shared/lib/testUtil/mockApi/base/project/index.ts b/packages/shared/lib/testUtil/mockApi/base/project/index.ts index 7f319e152..7feec7e8a 100644 --- a/packages/shared/lib/testUtil/mockApi/base/project/index.ts +++ b/packages/shared/lib/testUtil/mockApi/base/project/index.ts @@ -9,7 +9,7 @@ import { mockCheckDBServicesPrivilegesData } from './data'; import { AxiosResponse } from 'axios'; -import { MIMETypeEnum } from '../../../../enum'; +import { MIMETypeEnum } from '@actiontech/dms-kit'; import Project from '../../../../api/base/service/Project'; import DBService from '../../../../api/base/service/DBService'; diff --git a/packages/shared/lib/testUtil/mockApi/sqle/execWorkflow/index.ts b/packages/shared/lib/testUtil/mockApi/sqle/execWorkflow/index.ts index 9d8daae28..a00b8efe5 100644 --- a/packages/shared/lib/testUtil/mockApi/sqle/execWorkflow/index.ts +++ b/packages/shared/lib/testUtil/mockApi/sqle/execWorkflow/index.ts @@ -11,7 +11,7 @@ import { mockGlobalWorkflowListData, mockRollbackSqlData } from './data'; -import { ResponseCode } from '../../../../enum'; +import { ResponseCode } from '@actiontech/dms-kit'; import { AxiosResponse } from 'axios'; class MockWorkflowApi implements MockSpyApy { diff --git a/packages/shared/lib/testUtil/mockApi/sqle/rule_template/index.ts b/packages/shared/lib/testUtil/mockApi/sqle/rule_template/index.ts index a9c73e088..a278a54e0 100644 --- a/packages/shared/lib/testUtil/mockApi/sqle/rule_template/index.ts +++ b/packages/shared/lib/testUtil/mockApi/sqle/rule_template/index.ts @@ -16,7 +16,7 @@ import { mockRuleCategoriesData, GetDriverRuleVersionTipsMockData } from './data'; -import { MIMETypeEnum } from '../../../../enum'; +import { MIMETypeEnum } from '@actiontech/dms-kit'; import { AxiosResponse } from 'axios'; class MockRuleTemplateApi implements MockSpyApy { diff --git a/packages/shared/lib/testUtil/mockHook/data.tsx b/packages/shared/lib/testUtil/mockHook/data.tsx index fbbe93909..f988ac851 100644 --- a/packages/shared/lib/testUtil/mockHook/data.tsx +++ b/packages/shared/lib/testUtil/mockHook/data.tsx @@ -4,9 +4,13 @@ import { OpPermissionItemOpPermissionTypeEnum, OpPermissionItemRangeTypeEnum } from '../../api/base/service/common.enum'; -import { OpPermissionTypeUid, SupportTheme, SystemRole } from '../../enum'; -import DatabaseTypeLogo from '../../components/DatabaseTypeLogo/DatabaseTypeLogo'; -import { SupportLanguage } from '../../enum'; +import { + OpPermissionTypeUid, + SupportTheme, + SystemRole, + DatabaseTypeLogo, + SupportLanguage +} from '@actiontech/dms-kit'; export const mockCurrentUserReturn = { isAdmin: true, diff --git a/packages/shared/lib/testUtil/superRender.tsx b/packages/shared/lib/testUtil/superRender.tsx index 650e4902f..c61076ecf 100644 --- a/packages/shared/lib/testUtil/superRender.tsx +++ b/packages/shared/lib/testUtil/superRender.tsx @@ -1,14 +1,10 @@ import { render, renderHook as renderHookReact } from '@testing-library/react'; import { Provider } from 'react-redux'; -import { MutableSnapshot, RecoilRoot } from 'recoil'; -import { MemoryRouter, MemoryRouterProps } from 'react-router-dom'; -import { ConfigProvider, theme as antdTheme } from 'antd'; -import zhCN from 'antd/locale/zh_CN'; +import { MutableSnapshot } from 'recoil'; +import { MemoryRouterProps } from 'react-router-dom'; import { storeFactory } from './mockRedux'; -import { ThemeProvider } from '@mui/system'; -import { StyledEngineProvider } from '@mui/material/styles'; -import lightTheme from '../theme/light'; import { ToolkitStore } from '@reduxjs/toolkit/dist/configureStore'; +import { createTestWrapper as createTestWrapperDmsKit } from '@actiontech/dms-kit/src/testUtil/superRender'; export type RenderParams = Parameters; @@ -26,38 +22,17 @@ export interface WrapperOptions { } export const createTestWrapper = (options?: WrapperOptions) => { - const { - routerProps, - storeFactory: customStoreFactory, - initStore, - recoilRootProps, - theme = lightTheme - } = options || {}; + const { storeFactory: customStoreFactory, initStore } = options || {}; return ({ children }: { children: React.ReactNode }) => { - const themeComponent = ( - {children} - ); - const store = customStoreFactory ? customStoreFactory(initStore) : storeFactory(initStore); return ( - - - - - - {themeComponent} - - - - - + + {createTestWrapperDmsKit(options)({ children })} + ); }; }; diff --git a/packages/shared/lib/types/common.type.ts b/packages/shared/lib/types/common.type.ts index ad8d7f9af..793449c1c 100644 --- a/packages/shared/lib/types/common.type.ts +++ b/packages/shared/lib/types/common.type.ts @@ -1,37 +1,18 @@ -import { RuleObject } from 'antd/es/form'; import { PermissionsConstantType } from '../features'; -import { SystemRole } from '../enum'; +import { SystemRole } from '@actiontech/dms-kit'; import { IndexRouteObject, NonIndexRouteObject } from 'react-router-dom'; -export type Dictionary = { - [key: string]: string | number | boolean | Dictionary | string[] | undefined; -}; - -export type StringDictionary = { - [key: string]: string; -}; - -export type ModalStatus = { - [key: string]: boolean; -}; - -export type FormValidatorRule = RuleObject['validator']; - -export type TemplateKeyPath = { - [key in keyof T]: key extends string - ? T[key] extends Record - ? `${key}.${TemplateKeyPath}` - : key - : never; -}[keyof T]; - -export interface IStore { - [key: string]: any; -} - -export type PermissionReduxState = { - sqlOptimizationIsSupported: boolean; -}; +export type { + Dictionary, + StringDictionary, + ModalStatus, + FormValidatorRule, + TemplateKeyPath, + IStore, + PermissionReduxState, + ExcludeSymbol, + FormValidateError +} from '@actiontech/dms-kit/src/types/common.type'; type BaseRouterConfigItem = { key: string; @@ -49,15 +30,3 @@ export type RouterConfigItem = BaseRouterConfigItem & { children?: RouterConfigItem[]; }); - -export type ExcludeSymbol = T extends symbol ? never : T; - -export type FormValidateError = { - values: T; - errorFields: Array<{ - name: string[]; - errors: string[]; - warnings: string[]; - }>; - outOfDate: boolean; -}; diff --git a/packages/shared/lib/types/theme.type.ts b/packages/shared/lib/types/theme.type.ts index 9e76526e7..6f14d9571 100644 --- a/packages/shared/lib/types/theme.type.ts +++ b/packages/shared/lib/types/theme.type.ts @@ -26,7 +26,7 @@ import { BasicInfoListTheme, BasicTagTheme, NavTheme -} from '../theme/theme.type'; +} from '@actiontech/dms-kit'; export interface SharedTheme { uiToken: UITokenTheme; diff --git a/packages/shared/package.json b/packages/shared/package.json index 1990ce031..f78ab4c84 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -10,7 +10,8 @@ "test:ci": "jest --ci --watchAll=false --coverage --color --silent --testLocationInResults" }, "dependencies": { - "@actiontech/icons": "workspace:^" + "@actiontech/icons": "workspace:^", + "@actiontech/dms-kit": "workspace:^" }, "devDependencies": { "tsup": "^8.5.0" diff --git a/packages/shared/package_publish.json b/packages/shared/package_publish.json deleted file mode 100644 index 39b3ee7a9..000000000 --- a/packages/shared/package_publish.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "name": "@actiontech/dms-kit", - "version": "0.0.1-rc.26", - "description": "dms kit", - "main": "./lib/index.js", - "module": "./lib/index.mjs", - "types": "./lib/index.d.ts", - "exports": { - ".": { - "import": { - "types": "./lib/index.d.ts", - "default": "./lib/index.mjs" - }, - "require": { - "types": "./lib/index.d.ts", - "default": "./lib/index.js" - } - } - }, - "files": [ - "lib" - ], - "publishConfig": { - "registry": "http://10.186.18.19:4873/", - "access": "restricted" - }, - "scripts": { - "build": "tsup", - "prepublish": "pnpm build" - }, - "dependencies": { - "@actiontech/shared": "workspace:*" - }, - "devDependencies": { - "tsup": "^8.5.0" - }, - "peerDependencies": { - "@actiontech/icons": "^0.0.1-rc.7", - "@ant-design/cssinjs": "^1.17.0", - "@ant-design/icons": "^4.7.0", - "@emotion/react": "^11.14.0", - "@emotion/styled": "^11.14.0", - "@mui/material": "^5.11.16", - "@mui/styles": "^5.11.16", - "@mui/system": "^5.9.1", - "ahooks": "^3.7.0", - "antd": ">=5.7.3", - "axios": ">=0.27.2", - "classnames": "^2.3.0", - "dayjs": "^1", - "i18next": "^23.0.0", - "rc-input-number": "~8.0.2", - "rc-tree-select": "~5.9.0", - "react": ">=17", - "react-dom": ">=17", - "react-i18next": "^15.0.0", - "typescript": "^5.0.2", - "sql-formatter": "^12.2.4", - "nprogress": "^0.2.0", - "react-router-dom": "^6.10.0" - }, - "license": "MIT" -} diff --git a/packages/shared/publish-shared.mjs b/packages/shared/publish-shared.mjs deleted file mode 100644 index 79244c5d7..000000000 --- a/packages/shared/publish-shared.mjs +++ /dev/null @@ -1,318 +0,0 @@ -#!/usr/bin/env node -import fs from 'node:fs'; -import path from 'node:path'; -import { fileURLToPath } from 'node:url'; -import { spawnSync } from 'node:child_process'; -import readline from 'node:readline'; - -function parseArgs(argv) { - const args = { version: '', skipConfirm: false }; - for (let i = 2; i < argv.length; i += 1) { - const key = argv[i]; - const val = argv[i + 1]; - if (key === '--version' || key === '-v') { - args.version = val || ''; - i += 1; - } else if (key === '--skip-confirm' || key === '-y') { - args.skipConfirm = true; - } - } - return args; -} - -function readJson(filePath) { - const raw = fs.readFileSync(filePath, 'utf8'); - return JSON.parse(raw); -} - -function writeJson(filePath, obj) { - const content = JSON.stringify(obj, null, 2) + '\n'; - fs.writeFileSync(filePath, content, 'utf8'); -} - -function ensureFileExists(filePath, desc) { - if (!fs.existsSync(filePath)) { - throw new Error(`${desc} 不存在: ${filePath}`); - } -} - -function runCmd(cmd, args, cwd) { - const res = spawnSync(cmd, args, { - stdio: 'inherit', - cwd, - env: process.env, - shell: process.platform === 'win32' - }); - if (res.status !== 0) { - throw new Error(`${cmd} ${args.join(' ')} 执行失败,退出码 ${res.status}`); - } -} - -function copyDirSync(src, dest, options = {}) { - const { filter = (p) => true, dereference = false } = options; - - const statFn = dereference ? fs.statSync : fs.lstatSync; - - const copyItem = (from, to) => { - if (!filter(from)) return; - const stat = statFn(from); - if (stat.isDirectory()) { - if (!fs.existsSync(to)) fs.mkdirSync(to, { recursive: true }); - const entries = fs.readdirSync(from); - for (const entry of entries) { - copyItem(path.join(from, entry), path.join(to, entry)); - } - } else if (stat.isSymbolicLink()) { - const real = fs.readlinkSync(from); - fs.symlinkSync(real, to); - } else if (stat.isFile()) { - fs.copyFileSync(from, to); - } - }; - - copyItem(src, dest); -} - -function renameRootPublishEntryToIndex(distRoot) { - const renames = [ - ['publish-entry.js', 'index.js'], - ['publish-entry.mjs', 'index.mjs'], - ['publish-entry.d.ts', 'index.d.ts'], - ['publish-entry.d.mts', 'index.d.mts'] - ]; - for (const [fromName, toName] of renames) { - const from = path.join(distRoot, fromName); - const to = path.join(distRoot, toName); - if (!fs.existsSync(from)) continue; - try { - if (fs.existsSync(to)) fs.rmSync(to, { force: true }); - fs.renameSync(from, to); - console.log(`已重命名: ${fromName} -> ${toName}`); - } catch (e) { - try { - fs.copyFileSync(from, to); - fs.unlinkSync(from); - console.log(`已复制并替换: ${fromName} -> ${toName}`); - } catch {} - } - } -} - -function showPackageStructure(tmpDir) { - console.log('\n📦 发包产物结构预览:'); - console.log('='.repeat(50)); - - function listDir(dir, prefix = '', maxDepth = 3, currentDepth = 0) { - if (currentDepth >= maxDepth) return; - - try { - const entries = fs.readdirSync(dir, { withFileTypes: true }); - const sortedEntries = entries.sort((a, b) => { - // 目录在前,文件在后 - if (a.isDirectory() && !b.isDirectory()) return -1; - if (!a.isDirectory() && b.isDirectory()) return 1; - return a.name.localeCompare(b.name); - }); - - for (const entry of sortedEntries) { - const fullPath = path.join(dir, entry.name); - const relativePath = path.relative(tmpDir, fullPath); - const icon = entry.isDirectory() ? '📁' : '📄'; - console.log(`${prefix}${icon} ${relativePath}`); - - if (entry.isDirectory() && currentDepth < maxDepth - 1) { - listDir(fullPath, prefix + ' ', maxDepth, currentDepth + 1); - } - } - } catch (err) { - console.log(`${prefix}❌ 无法读取目录: ${err.message}`); - } - } - - listDir(tmpDir); - console.log('='.repeat(50)); -} - -async function confirmPublish() { - const rl = readline.createInterface({ - input: process.stdin, - output: process.stdout - }); - - return new Promise((resolve) => { - rl.question('\n❓ 确认要发布这个包吗?(y/N): ', (answer) => { - rl.close(); - const confirmed = - answer.toLowerCase() === 'y' || answer.toLowerCase() === 'yes'; - resolve(confirmed); - }); - }); -} - -function updatePackagePublishVersion(sharedDir, version) { - const pubPkgPath = path.join(sharedDir, 'package_publish.json'); - try { - const pubPkgContent = readJson(pubPkgPath); - pubPkgContent.version = version; - writeJson(pubPkgPath, pubPkgContent); - console.log(`✅ 已更新 package_publish.json 版本号为: ${version}`); - } catch (err) { - console.warn(`⚠️ 更新 package_publish.json 版本号失败: ${err.message}`); - } -} - -async function main() { - const { version, skipConfirm } = parseArgs(process.argv); - if (!version) { - console.error('请通过 --version 或 -v 指定版本号,例如:'); - console.error( - ' node packages/shared/publish-shared.mjs --version 0.0.1-rc.9' - ); - process.exit(1); - } - - const __filename = fileURLToPath(import.meta.url); - const __dirname = path.dirname(__filename); - const sharedDir = __dirname; - - const pubPkg = path.join(sharedDir, 'package_publish.json'); - ensureFileExists(pubPkg, '发布用 package_publish.json'); - - // 保存原始版本号,用于后续还原 - const originalPubPkgContent = readJson(pubPkg); - const originalVersion = originalPubPkgContent.version; - - const tmpBase = path.join(__dirname, '..'); - const tmpDir = fs.mkdtempSync( - path.join(tmpBase, 'actiontech-shared-publish-') - ); - - try { - console.log(`[1/9] 创建临时目录: ${tmpDir}`); - - console.log('[2/9] 复制整个 shared 包到临时目录'); - // 复制整个包目录,但排除一些不需要的文件 - const excludePatterns = [ - 'node_modules', - 'dist', - '.git', - '.github', - 'coverage', - '.nyc_output', - '.DS_Store', - '*.log' - ]; - - const filter = (filePath) => { - const relativePath = path.relative(sharedDir, filePath); - return !excludePatterns.some((pattern) => { - if (pattern.includes('*')) { - const regex = new RegExp(pattern.replace('*', '.*')); - return regex.test(relativePath); - } - return relativePath.includes(pattern); - }); - }; - - copyDirSync(sharedDir, tmpDir, { filter }); - - console.log('[3/9] 调整 package.json 配置'); - // 将 package_publish.json 重命名为 package.json - const tmpPkgJson = path.join(tmpDir, 'package.json'); - const pubPkgContent = readJson(pubPkg); - - // 更新版本号 - pubPkgContent.version = version; - - // 移除 prepublish 脚本,避免在临时目录触发构建 - if (pubPkgContent.scripts) { - delete pubPkgContent.scripts.prepublish; - delete pubPkgContent.scripts.prepare; - } - - writeJson(tmpPkgJson, pubPkgContent); - - console.log('[4/9] 安装依赖: pnpm install'); - runCmd('pnpm', ['install'], tmpDir); - - console.log('[5/9] 执行构建: pnpm build'); - runCmd('pnpm', ['build'], tmpDir); - - // 验证构建产物 - const tmpDistDir = path.join(tmpDir, 'dist'); - const tmpLibDir = path.join(tmpDir, 'lib'); - ensureFileExists(tmpDistDir, '构建产物 dist 目录'); - ensureFileExists(tmpLibDir, '原始资源代码目录'); - console.log('[6-3/9] 根入口对齐:publish-entry.* -> index.*'); - renameRootPublishEntryToIndex(tmpDistDir); - - console.log('[6-1/9] 移除 lib 目录'); - fs.rmSync(tmpLibDir, { recursive: true, force: true }); - console.log('[6-2/9] 重命名 dist 目录为 lib'); - fs.renameSync(tmpDistDir, tmpLibDir); - - // 可选: 附带 README/LICENCE - const maybeFiles = ['README.md', 'LICENSE', 'LICENSE.md']; - for (const f of maybeFiles) { - const src = path.join(sharedDir, f); - if (fs.existsSync(src)) { - fs.copyFileSync(src, path.join(tmpDir, f)); - } - } - - // 显示产物结构预览 - showPackageStructure(tmpDir); - - // 移除 @actiontech/shared 依赖 - if (pubPkgContent.dependencies['@actiontech/shared']) { - delete pubPkgContent.dependencies['@actiontech/shared']; - writeJson(tmpPkgJson, pubPkgContent); - } - - // 用户确认发包 - if (!skipConfirm) { - const confirmed = await confirmPublish(); - if (!confirmed) { - console.log('❌ 用户取消发布'); - console.log('[9/9] 清理临时目录'); - fs.rmSync(tmpDir, { recursive: true, force: true }); - return; - } - } - - console.log('[7/9] 执行发布: npm publish'); - runCmd('npm', ['publish'], tmpDir); - - console.log('[8/9] 更新 package_publish.json 版本号'); - updatePackagePublishVersion(sharedDir, version); - - console.log('[9/9] 清理临时目录'); - fs.rmSync(tmpDir, { recursive: true, force: true }); - - console.log('✅ 发布完成'); - } catch (err) { - console.error('❌ 发布流程发生错误:', err?.message || err); - process.exitCode = 1; - - // 还原原始版本号 - try { - const pubPkgPath = path.join(sharedDir, 'package_publish.json'); - originalPubPkgContent.version = originalVersion; - writeJson(pubPkgPath, originalPubPkgContent); - console.log( - `🔄 已还原 package_publish.json 版本号为: ${originalVersion}` - ); - } catch (restoreErr) { - console.warn(`⚠️ 还原版本号失败: ${restoreErr.message}`); - } - - try { - if (fs.existsSync(tmpDir)) { - console.log('🧹 清理临时目录'); - fs.rmSync(tmpDir, { recursive: true, force: true }); - } - } catch {} - } -} - -main(); diff --git a/packages/shared/tsconfig.build.json b/packages/shared/tsconfig.build.json deleted file mode 100644 index db25feffb..000000000 --- a/packages/shared/tsconfig.build.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "./dist", - "declarationDir": "./dist" - }, - "include": ["lib"], - "exclude": ["node_modules", "dist"] -} diff --git a/packages/shared/tsup.config.js b/packages/shared/tsup.config.js deleted file mode 100644 index 538b26b10..000000000 --- a/packages/shared/tsup.config.js +++ /dev/null @@ -1,108 +0,0 @@ -import { defineConfig } from 'tsup'; -import fs from 'node:fs'; -import path from 'node:path'; - -function generateEntriesFromPublishEntry() { - const projectRoot = process.cwd(); - const publishEntryPath = path.resolve(projectRoot, 'lib', 'publish-entry.ts'); - let content = ''; - try { - content = fs.readFileSync(publishEntryPath, 'utf8'); - } catch { - return ['./lib/publish-entry.ts']; - } - - const exportPathRegex = - /export\s+(?:type\s+)?(?:\*|\{[^}]*\})\s+from\s+['"](.+?)['"];?/g; - const includes = new Set(); - - // 始终保留根入口 - includes.add('./lib/publish-entry.ts'); - - let match = null; - while ((match = exportPathRegex.exec(content)) !== null) { - const rel = match[1]; - if (!rel || !rel.startsWith('./')) continue; - const normalized = rel.replace(/^\.\//, ''); - const [head, second] = normalized.split('/'); - - switch (head) { - case 'components': { - if (second) { - includes.add(`./lib/components/${second}/**`); - } else { - includes.add('./lib/components/**'); - } - break; - } - case 'styleWrapper': - case 'utils': - case 'enum': - case 'data': - case 'providers': - case 'hooks': - case 'features': - case 'locale': - case 'theme': { - includes.add(`./lib/${head}/**`); - break; - } - case 'types': { - includes.add(`./lib/${normalized}.ts`); - break; - } - default: { - const abs = path.resolve(projectRoot, 'lib', normalized); - try { - if (fs.existsSync(abs) && fs.statSync(abs).isDirectory()) { - includes.add(`./lib/${normalized}/**`); - } else { - includes.add(`./lib/${normalized}.ts`); - includes.add(`./lib/${normalized}.tsx`); - } - } catch { - // ignore - } - } - } - } - - const excludes = [ - '!./lib/**/__tests__/**', - '!./lib/**/__mocks__/**', - '!./lib/**/__snapshots__/**', - '!./lib/**/demo/**', - '!./lib/**/demos/**', - '!./lib/**/*.test.ts', - '!./lib/**/*.test.tsx', - '!./lib/**/*.spec.ts', - '!./lib/**/*.spec.tsx', - '!./lib/**/*.stories.ts', - '!./lib/**/*.stories.tsx', - '!./lib/**/*.md', - '!./lib/components/**/*.types.ts', - '!./lib/components/**/*.type.ts', - '!./lib/**/test/**' - ]; - - return [...includes, ...excludes]; -} - -export default defineConfig({ - // 根据 publish-entry.ts 的导出生成多入口,仅构建被导出的模块 - entry: generateEntriesFromPublishEntry(), - tsconfig: 'tsconfig.build.json', - bundle: false, - format: ['cjs', 'esm'], - dts: { - entry: ['./lib/publish-entry.ts'] - }, - clean: true, - sourcemap: false, - minify: false, - treeshake: true, - target: 'es2020', - outDir: 'dist', - splitting: false, - platform: 'browser' -}); diff --git a/packages/sqle/package.json b/packages/sqle/package.json index a1e5bd780..2f04eead4 100644 --- a/packages/sqle/package.json +++ b/packages/sqle/package.json @@ -6,6 +6,7 @@ "dependencies": { "@actiontech/icons": "workspace:^", "@actiontech/shared": "workspace:^1.0.0", + "@actiontech/dms-kit": "workspace:^", "@react-sigma/core": "^5.0.2", "@react-sigma/graph-search": "^5.0.3", "@react-sigma/layout-force": "^5.0.2", diff --git a/packages/sqle/src/components/AuditResultMessage/index.tsx b/packages/sqle/src/components/AuditResultMessage/index.tsx index aac1e0e03..370a05f59 100644 --- a/packages/sqle/src/components/AuditResultMessage/index.tsx +++ b/packages/sqle/src/components/AuditResultMessage/index.tsx @@ -6,7 +6,7 @@ import { AuditResultMessageStyleWrapper, AuditResultMessageWithAnnotationStyleWrapper } from './style'; -import { EmptyBox } from '@actiontech/shared'; +import { EmptyBox } from '@actiontech/dms-kit'; import { useBoolean } from 'ahooks'; import { Tag, Typography } from 'antd'; import { @@ -15,9 +15,7 @@ import { InfoHexagonFilled, CloseCircleFilled } from '@actiontech/icons'; - const passStatusLevelData = ['normal', 'UNKNOWN']; - const AuditResultMessage = ({ auditResult, styleClass, @@ -27,7 +25,6 @@ const AuditResultMessage = ({ }: AuditResultMessageProps) => { const { t } = useTranslation(); const [visible, { set }] = useBoolean(true); - const renderIcon = useMemo(() => { const { level } = auditResult || {}; if (!level || passStatusLevelData.includes(level)) { @@ -43,7 +40,6 @@ const AuditResultMessage = ({ return ; } }, [auditResult]); - const renderMessage = useMemo(() => { const { level, message } = auditResult || {}; if (message) return message; @@ -51,7 +47,6 @@ const AuditResultMessage = ({ return t('components.auditResultMessage.auditPassed'); return ''; }, [auditResult, t]); - if (!auditResult || JSON.stringify(auditResult) === '{}') return ( @@ -63,7 +58,6 @@ const AuditResultMessage = ({ ); - return ( ); }; - export default AuditResultMessage; diff --git a/packages/sqle/src/components/AuditResultMessage/style.ts b/packages/sqle/src/components/AuditResultMessage/style.ts index d8ccf1909..10ceef0ad 100644 --- a/packages/sqle/src/components/AuditResultMessage/style.ts +++ b/packages/sqle/src/components/AuditResultMessage/style.ts @@ -1,12 +1,9 @@ import { styled } from '@mui/material/styles'; - import { AuditResultMessageProps } from './index.type'; -import { BasicTag } from '@actiontech/shared'; - +import { BasicTag } from '@actiontech/dms-kit'; export const ResultIconTagStyleWrapper = styled(BasicTag)` width: fit-content; `; - export const AuditResultMessageStyleWrapper = styled('div')` display: flex; align-items: center; @@ -27,7 +24,6 @@ export const AuditResultMessageStyleWrapper = styled('div')` word-break: break-all; } `; - export const AuditResultMessageWithAnnotationStyleWrapper = styled('div')<{ showAnnotation: AuditResultMessageProps['showAnnotation']; }>` @@ -60,7 +56,6 @@ export const AuditResultMessageWithAnnotationStyleWrapper = styled('div')<{ } } `; - export const AuditExceptionItemStyleWrapper = styled('div')` &.exception-item { .exception-item-rule-desc-wrapper { diff --git a/packages/sqle/src/components/BackendForm/AutoCreatedFormItemByApi.tsx b/packages/sqle/src/components/BackendForm/AutoCreatedFormItemByApi.tsx index 3f41db318..88a5057de 100644 --- a/packages/sqle/src/components/BackendForm/AutoCreatedFormItemByApi.tsx +++ b/packages/sqle/src/components/BackendForm/AutoCreatedFormItemByApi.tsx @@ -1,32 +1,22 @@ import { useMemo } from 'react'; import { useTranslation } from 'react-i18next'; import classNames from 'classnames'; - -import { - CustomLabelContent, - FormItemLabel -} from '@actiontech/shared/lib/components/CustomForm'; - +import { CustomLabelContent, FormItemLabel } from '@actiontech/dms-kit'; import { BackendFormProps } from '.'; -import { formItemLayout } from '@actiontech/shared/lib/components/CustomForm/style'; -import { BasicInput, BasicSelect, BasicSwitch } from '@actiontech/shared'; +import { formItemLayout } from '@actiontech/dms-kit/es/components/CustomForm/style'; +import { BasicInput, BasicSelect, BasicSwitch } from '@actiontech/dms-kit'; import useRuleParams from './useRuleParams'; import FormPasswordWithPlaceholder from './FormPasswordWithPlaceholder'; - const AutoCreatedFormItemByApi = (props: BackendFormProps) => { const { t } = useTranslation(); - const { paramsKey = 'params', isFullLine } = props; - const formItemLayoutVal = useMemo(() => { if (isFullLine) { return formItemLayout.fullLine; } return formItemLayout.spaceBetween; }, [isFullLine]); - const { formItemData } = useRuleParams(props.params); - return ( <> {formItemData.map((item) => { @@ -48,7 +38,6 @@ const AutoCreatedFormItemByApi = (props: BackendFormProps) => {
); } - if (item.type === 'password') { return ( { ); } - if (item.enums_value && item.enums_value.length > 0) { return ( { ); } - if (item.type === 'int') { return ( { ); } - return (