@gingkoo/pandora-metabase 1.0.0-alpha.30 → 1.0.0-alpha.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/hooks/use-provider.tsx","../../src/utils/helper.ts","../../src/store/enum.ts","../../src/utils/cookies.ts","../../src/locale/index.ts","../../src/store/helper.ts","../../src/utils.ts","../../src/hooks/use-state.ts","../../src/locale/en.ts","../../src/locale/zh.ts","../../node_modules/style-inject/dist/style-inject.es.js","../../src/common/Loading/index.tsx","../../src/utils/helper-dom.ts","../../src/components/modules/components/Wrapper.tsx","../../src/components/icons.tsx","../../src/components/modules/components/header.tsx","../../src/components/dialog/select-list/index.tsx","../../src/components/modules/union.tsx","../../src/utils/selection.ts","../../src/components/dialog/custom-column/expressions/tokenizer.ts","../../src/components/dialog/custom-column/expressions/suggest.ts","../../src/components/dialog/custom-column/config.ts","../../src/components/dialog/custom-column/tokenized-expression.tsx","../../src/components/dialog/custom-column/tokenizedI-input.tsx","../../src/utils/event.ts","../../src/common/Portal/index.tsx","../../src/components/popup.tsx","../../src/components/dialog/select-column/index.tsx","../../src/components/dialog/const.ts","../../src/components/dialog/select-join-column/index.tsx","../../src/components/dialog/select-filter/index.tsx","../../src/components/dialog/select-summarize/index.tsx","../../src/components/dialog/select-join/index.tsx","../../src/components/dialog/select-table/index.tsx","../../src/components/dialog/select-permission-table/index.tsx","../../src/components/modules/components/meta-icon.tsx","../../src/components/modules/table-data.tsx","../../src/components/modules/join-data.tsx","../../src/components/dialog/custom-editor/enum.ts","../../src/components/dialog/custom-editor/utils.ts","../../src/components/dialog/custom-editor/arrow.svg","../../src/components/dialog/custom-editor/index.tsx","../../src/components/modules/custom-column.tsx","../../src/store/types.ts","../../src/components/modules/arrow.svg","../../src/components/modules/filter.tsx","../../src/components/modules/summarize/group-by.tsx","../../src/components/modules/summarize/select-index.tsx","../../src/components/modules/summarize/index.tsx","../../src/components/modules/sort.tsx","../../src/components/modules/row-limit.tsx","../../src/components/modules/permission-table.tsx","../../src/components/modules/index.ts","../../src/components/metabase/index.tsx","../../src/index.tsx"],"sourcesContent":["import React, { createContext, useContext } from 'react';\n\n// 定义 Context 类型\ninterface ContextProps {\n store?: any;\n}\n\n// 创建 Context\nconst Context = createContext<ContextProps>({});\n\n// 定义 Provider Props 类型\ninterface ProviderProps {\n value: ContextProps; // 动态传入的 value\n children: React.ReactNode;\n}\n\n// 创建 Provider 组件\nexport const Provider = ({ value, children }: ProviderProps) => {\n return <Context.Provider value={value}>{children}</Context.Provider>;\n};\n\n// 自定义 Hook 来使用 Context\nexport const useStore: any = () => {\n return useContext(Context);\n};\n","// 节流\nexport const throttle = (fn: Function, wait: number = 200): Function => {\n if (typeof fn !== 'function') return () => void 0;\n let start = Date.now();\n let timer: number;\n return function () {\n let diff = wait - (Date.now() - start);\n clearTimeout(timer);\n\n // @ts-ignore\n let _self = this;\n\n if (diff > 0) {\n timer = window.setTimeout(fn.bind(_self), diff);\n } else {\n fn.apply(_self);\n start = Date.now();\n }\n };\n};\n\n// 防抖\nexport const debounce = (fn: Function, wait: number = 200) => {\n if (typeof fn !== 'function') return () => {};\n let timer: number;\n return function () {\n // @ts-ignore\n let _self = this;\n timer !== null && clearTimeout(timer);\n timer = window.setTimeout(fn.bind(_self), wait);\n };\n};\n\n// 获取屏幕信息\nexport type ScreenType = {\n width: number;\n height: number;\n};\nexport const getScreenInfo = (): ScreenType => {\n let winHeight = 0,\n winWidth = 0;\n if (window.innerHeight) {\n winHeight = window.innerHeight;\n winWidth = window.innerWidth;\n } else if (document.documentElement && document.documentElement.clientHeight) {\n winHeight = document.documentElement.clientHeight;\n winWidth = document.documentElement.clientWidth;\n }\n return {\n width: winWidth,\n height: winHeight,\n };\n};\n\nexport const fullScreen = () => {\n var element: any = document.documentElement;\n if (element.requestFullscreen) {\n element.requestFullscreen();\n } else if (element.msRequestFullscreen) {\n element.msRequestFullscreen();\n } else if (element.mozRequestFullScreen) {\n element.mozRequestFullScreen();\n } else if (element.webkitRequestFullscreen) {\n element.webkitRequestFullscreen();\n }\n};\n\n//退出全屏\nexport const exitFullscreen = () => {\n if (document.exitFullscreen) {\n document.exitFullscreen();\n // @ts-ignore\n } else if (document.msExitFullscreen) {\n // @ts-ignore\n document.msExitFullscreen();\n // @ts-ignore\n } else if (document.mozCancelFullScreen) {\n // @ts-ignore\n document.mozCancelFullScreen();\n // @ts-ignore\n } else if (document.webkitExitFullscreen) {\n // @ts-ignore\n document.webkitExitFullscreen();\n }\n};\n\nexport const getUrlParams = () => {\n let params: any = {};\n let url = location.href;\n let index = url.lastIndexOf('?');\n if (~index) {\n url\n .slice(index + 1)\n .split('&')\n .forEach((v) => {\n let item = v.split('=');\n params[item[0]] = item[1];\n });\n }\n return params;\n};\n\nexport const sleep = (wait: number = 0) => {\n return new Promise((resolve, reject) => {\n setTimeout(() => {\n resolve(true);\n }, wait);\n });\n};\n\nexport const flatArray = (arr: any[]): any[] => {\n return [].concat.apply([], arr);\n};\nexport const mobx2Object = (mobxObj: any, defaultType: any = {}) => {\n let data;\n try {\n data = JSON.parse(JSON.stringify(mobxObj));\n } catch (e) {\n data = defaultType;\n console.log(`⭐️ ~ mobx2Object error`, e);\n }\n return data;\n};\n\nexport const replaceTpl = (inputString: string, values: { [key: string]: any }): string => {\n return inputString.replace(/\\$\\{([^}]*)\\}/g, (match, variableName) => {\n return typeof values[variableName] !== 'undefined' ? String(values[variableName]) : match;\n });\n};\n\nconst str = () =>\n ('00000000000000000' + (Math.random() * 0xffffffffffffffff).toString(16)).slice(-16);\n\nexport const uuidv4 = (prefix = '') => {\n const a = str();\n const b = str();\n const uuid = [\n a.slice(0, 8),\n a.slice(8, 12),\n '4' + a.slice(13), // version 4\n 'a' + b.slice(1, 4), // variant\n b.slice(4),\n ].join('-');\n\n return prefix ? `${prefix}_${uuid}` : uuid;\n};\n","export enum SortEnum {\n desc = 'DESC',\n asc = 'ASC',\n}\n\nexport enum TypeEnum {\n data = 'data',\n joinData = 'joinData',\n permissionTable = 'permissionTable', // 权限表\n customColumn = 'customColumn',\n filter = 'filter',\n summarize = 'summarize',\n sort = 'sort',\n rowLimit = 'rowLimit',\n union = 'union', //分组\n}\n\nexport enum JoinEnum {\n left = 'LEFT JOIN',\n right = 'RIGHT JOIN',\n inner = 'INNER JOIN',\n}\n\nexport enum UnionEnum {\n union = 'UNION',\n unionAll = 'UNION ALL',\n}\n\nexport enum ColumnsPopupThemeEnum {\n skyBlue = 'skyBlue',\n greenGrass = 'greenGrass',\n purple = 'purple',\n}\n\nexport enum SpecialType {\n PK = 'pk',\n FK = 'fk',\n}\n\nexport enum SQL_COLUMN_TYPE {\n STRING = 'STRING',\n DATE = 'DATE',\n FLOAT = 'FLOAT',\n LONG = 'LONG',\n CURRENCY = 'CURRENCY',\n}\n\n// 之前的 SQL_COLUMN_TYPE\n// export enum SQL_COLUMN_TYPE {\n// BIGINT = 'BIGINT',\n// SMALLINT = 'SMALLINT',\n// DOUBLE = 'DOUBLE',\n// INTEGER = 'INTEGER',\n// CLOB = 'CLOB',\n// CHAR = 'CHAR',\n// VARCHAR = 'VARCHAR',\n// TIMESTAMP = 'TIMESTAMP',\n// }\n\nexport enum SQL_GROUP_TYPE {\n NUMBER = 'number',\n STRING = 'string',\n DATE = 'date',\n}\n\n// 字段数据类型\nexport enum DataTypeEnum {\n float = 'float', // 小数\n string = 'string', // 字符\n date = 'date', // 日期\n long = 'long', // 整数\n currency = 'currency', // 金额\n}\n\n// 字段控件类型\nexport enum EleComponentEnum {\n text = 'text', // 文本框\n select = 'select', // 下拉框\n}\n","//获取指定名称的cookie值\nexport function getCookie(name: string) {\n // (^| )name=([^;]*)(;|$),match[0]为与整个正则表达式匹配的字符串,match[i]为正则表达式捕获数组相匹配的数组;\n var arr = document.cookie.match(new RegExp('(^| )' + name + '=([^;]*)(;|$)'));\n if (arr != null) {\n console.log(arr);\n return arr[2];\n }\n return null;\n}\n","import { getCookie } from '../utils/cookies';\n\nconst locales: {\n [key: string]: any;\n} = {};\n\nconst activeLocale = getCookie('LOCALE') || 'zh';\n\nexport const isEn = activeLocale === 'en';\n\nexport const register = (name: string, data: any) => {\n if (name in locales) {\n console.warn(`[i18n] ${name} has been registered`);\n } else {\n locales[name] = data;\n }\n};\n\nexport const __ = (name: string) => {\n if (activeLocale in locales) {\n return locales[activeLocale][name] || '';\n } else {\n console.warn(`[i18n] locale not found`);\n return '';\n }\n};\n","import {\n MetaListType,\n TableColumnsMapType,\n initColumnsType,\n MetaData,\n MetaData_TableType,\n MetaJoin,\n MetaPermissionTable,\n MetaCustom,\n MetaData_ColumnsType,\n MetaFilter,\n MetaFilter_Item,\n MetaSummarize,\n MetaSummarize_Group,\n MetaSort,\n MetaSort_Item,\n MetaLimit,\n ParamsType,\n ParamsStruct,\n LooseObject,\n} from './types';\n// import { SummarizeAlias } from './index';\nimport { TypeEnum, SQL_GROUP_TYPE, SQL_COLUMN_TYPE } from './enum';\n\nexport const SummarizeAlias = 'source';\n\nconst NUMBER_GROUP: SQL_COLUMN_TYPE[] = [\n SQL_COLUMN_TYPE.FLOAT,\n SQL_COLUMN_TYPE.LONG,\n SQL_COLUMN_TYPE.CURRENCY,\n];\nconst STRING_GROUP: SQL_COLUMN_TYPE[] = [SQL_COLUMN_TYPE.STRING];\nconst DATE_GROUP: SQL_COLUMN_TYPE[] = [SQL_COLUMN_TYPE.DATE];\n\n// 过滤器对象转sql语句\nexport const filterToSql = (record: MetaFilter_Item): string => {\n let { alias, name, condition, val, groupSql, database_type } = record;\n let [condition_1, condition_2] = val;\n let columnName: string;\n if (alias === SummarizeAlias) {\n columnName = `${alias}.${groupSql?.split(' AS ')?.[1] || ''}`;\n } else {\n columnName = `${alias}.${name}`;\n }\n let sql: string = '';\n\n let group: SQL_GROUP_TYPE = SQL_GROUP_TYPE.STRING;\n if (~NUMBER_GROUP.indexOf(database_type as SQL_COLUMN_TYPE)) {\n group = SQL_GROUP_TYPE.NUMBER;\n }\n if (~DATE_GROUP.indexOf(database_type as SQL_COLUMN_TYPE)) {\n group = SQL_GROUP_TYPE.DATE;\n }\n\n if (group === SQL_GROUP_TYPE.STRING) {\n switch (condition) {\n // string\n case '是':\n sql = `${columnName} = '${condition_1}'`;\n break;\n case '不是':\n sql = `${columnName} <> '${condition_1}'`;\n break;\n case '包含':\n sql = `(${columnName} like '%${condition_1}%')`;\n break;\n case '不包含':\n sql = `(NOT ${columnName} like '%${condition_1}%')`;\n break;\n case '为空':\n sql = `${columnName} IS NULL`;\n break;\n case '不为空':\n sql = `${columnName} IS NOT NULL`;\n break;\n case '以...开始':\n sql = `(${columnName} like '${condition_1}%')`;\n break;\n case '以...结束':\n sql = `(${columnName} like '%${condition_1}')`;\n break;\n }\n }\n if (group === SQL_GROUP_TYPE.NUMBER) {\n switch (condition) {\n // number\n case '等于':\n sql = `${columnName} = ${condition_1}`;\n break;\n case '不等于':\n sql = `${columnName} <> ${condition_1}`;\n break;\n case '大于':\n sql = `${columnName} > ${condition_1}`;\n break;\n case '小于':\n sql = `${columnName} < ${condition_1}`;\n break;\n case '介于之间':\n sql = `${columnName} BETWEEN ${condition_1} AND ${condition_2}`;\n break;\n case '大于或等于':\n sql = `${columnName} >= ${condition_1}`;\n break;\n case '小于或等于':\n sql = `${columnName} <= ${condition_1}`;\n break;\n case '为空':\n sql = `${columnName} IS NULL`;\n break;\n case '不为空':\n sql = `${columnName} IS NOT NULL`;\n break;\n }\n }\n if (group === SQL_GROUP_TYPE.DATE) {\n function transformDate(dataStr: string) {\n return dataStr.replace(/-/g, '').replace(/:/g, '').replace(' ', '') + '00';\n }\n let c_1 = transformDate(condition_1 || '');\n let c_2 = transformDate(condition_2 || '');\n switch (condition) {\n // date\n case '早于':\n sql = `${columnName} < '${c_1}'`;\n break;\n case '晚于':\n sql = `${columnName} >= '${c_1}'`;\n break;\n case '介于之间':\n sql = `(${columnName} >= '${c_1}' AND ${columnName} < '${c_2}')`;\n break;\n case '是空的':\n sql = `${columnName} IS NULL`;\n break;\n case '不是空的':\n sql = `${columnName} IS NOT NULL`;\n break;\n }\n }\n\n return sql;\n};\n\n// 聚合转sql语句\nexport const summarizeToSql = (\n arr: MetaSummarize_Group[],\n record: MetaSummarize_Group,\n): { sql: string; fieldAlias: string } => {\n let { condition, alias, name, realName = '' } = record;\n let index = arr.indexOf(record);\n let prevList = arr.slice(0, index);\n\n let sql: string = '';\n let as = '';\n let field = `${alias}.${realName || name}`;\n switch (condition) {\n case '总行数':\n case '累积行数':\n sql = 'count(*)';\n as = 'count';\n break;\n case '不重复值的总数':\n sql = `count(distinct ${field})`;\n as = 'count';\n break;\n case '累积求和':\n case '总和':\n sql = `sum(${field})`;\n as = 'sum';\n break;\n case '平均值':\n sql = `avg(${field})`;\n as = 'avg';\n break;\n case '标准差':\n sql = `stddev_pop(${field})`;\n as = 'stddev';\n break;\n case '最小值':\n sql = `min(${field})`;\n as = 'min';\n break;\n case '最大值':\n sql = `max(${field})`;\n as = 'max';\n break;\n }\n let count = 0;\n prevList.forEach((v: MetaSummarize_Group) => {\n if (\n ~['总行数', '累积行数', '不重复值的总数'].indexOf(condition) &&\n ~['总行数', '累积行数', '不重复值的总数'].indexOf(v.condition)\n ) {\n count++;\n }\n if (~['累积求和', '总和'].indexOf(condition) && ~['累积求和', '总和'].indexOf(v.condition)) {\n count++;\n }\n if (condition === '平均值' && v.condition === '平均值') {\n count++;\n }\n if (condition === '标准差' && v.condition === '标准差') {\n count++;\n }\n if (condition === '最小值' && v.condition === '最小值') {\n count++;\n }\n if (condition === '最大值' && v.condition === '最大值') {\n count++;\n }\n });\n as = as + (count ? '_' + (count + 1) : '');\n\n return {\n sql: sql,\n // + ' AS ' + as,\n fieldAlias: as,\n };\n};\n\nconst _flatArr = (data: LooseObject, arr: LooseObject[]) => {\n let { children, ...res } = data;\n arr.push(res);\n if (children) {\n _flatArr(children, arr);\n }\n};\nconst _recursionArr = (arr: LooseObject[]): LooseObject => {\n let obj = { ...arr[0] };\n if (arr.length > 1) {\n obj.children = _recursionArr(arr.slice(1));\n }\n return obj;\n};\n\n// 反转顺序 - (将原本嵌套的顺序完全反转 最内层变成最外层)别问为什么 问就是接口需要\nconst reverseData = (data: LooseObject): LooseObject => {\n let arr: LooseObject[] = [];\n _flatArr(data, arr);\n return _recursionArr(arr.reverse());\n};\n\n// 分层 - (将原本平铺的格式转成 嵌套的格式)\nconst layeredData = (list: MetaListType[]): LooseObject => {\n let res: LooseObject = {};\n\n for (var i = 0; i < list.length; i++) {\n let meta = list[i];\n // @ts-ignore\n\n if (meta.type === TypeEnum.joinData) {\n if (res[meta.type]) {\n (res[meta.type] as MetaJoin[]).push(meta);\n } else {\n res[meta.type] = [meta];\n }\n } else {\n // @ts-ignore\n res[meta.type] = meta;\n }\n\n if (meta.type === TypeEnum.summarize) {\n let nextMeta = list[i + 1];\n let nextNextMeta = list[i + 2];\n let nextNextNextMeta = list[i + 3];\n\n // 将sort 和 rowLimit 归到上一层 (虽然他们两在 summarize 后面)\n // 处理完 sort 和 rowLimit 之后 如果数组后面还有元素则进入下一层循环\n if (nextMeta) {\n if (nextMeta.type === TypeEnum.rowLimit) {\n res[nextMeta.type] = nextMeta;\n if (nextNextMeta) {\n res.children = layeredData(list.slice(i + 2));\n }\n } else if (nextMeta.type === TypeEnum.sort) {\n res[nextMeta.type] = nextMeta;\n if (nextNextMeta) {\n if (nextNextMeta.type === TypeEnum.rowLimit) {\n res[nextNextMeta.type] = nextNextMeta;\n if (nextNextNextMeta) {\n res.children = layeredData(list.slice(i + 3));\n }\n } else {\n res.children = layeredData(list.slice(i + 2));\n }\n }\n } else {\n res.children = layeredData(list.slice(i + 1));\n }\n }\n break;\n }\n }\n return res;\n};\n\n// 处理数据格式 - (这里才是真正处理成后端需要的格式 前面两步都是准备工作)\nconst handleNesting = (data: LooseObject): ParamsStruct => {\n let hasInnerSql = Boolean(data.children);\n let obj: ParamsStruct = {\n hasInnerSql,\n innerSqlStruct: hasInnerSql ? handleNesting(data.children as LooseObject) : null,\n };\n\n let tableData: MetaData | undefined = data[TypeEnum.data];\n let joinData: MetaJoin[] = data[TypeEnum.joinData] || [];\n let permissionTable: MetaPermissionTable | undefined = data[TypeEnum.permissionTable];\n let customColumn: MetaCustom | undefined = data[TypeEnum.customColumn];\n let filterData: MetaFilter | undefined = data[TypeEnum.filter];\n let summarize: MetaSummarize | undefined = data[TypeEnum.summarize];\n let sortData: MetaSort | undefined = data[TypeEnum.sort];\n let rowLimit: MetaLimit | undefined = data[TypeEnum.rowLimit];\n if (tableData) {\n obj.alias = tableData.table.alias;\n obj.tableName = tableData.table.name;\n obj.datasourceId = tableData.table.datasourceId;\n\n if (!summarize || (!summarize.group.length && !summarize.by.length)) {\n obj.queryColumns = tableData.columns\n .filter((v) => v.select)\n .map((v) => `${tableData?.table?.alias}.${v.name}`);\n }\n } else {\n if (!summarize || (!summarize.group.length && !summarize.by.length)) {\n obj.alias = SummarizeAlias;\n }\n }\n if (joinData.length) {\n obj.joinTables = joinData\n .filter((v) => v.table2.name)\n .map((v) => {\n let joinCondition: string;\n if (v.table1.alias === SummarizeAlias) {\n joinCondition = `ON ${SummarizeAlias}.${v.table1.groupSql} = ${v.table2.alias}.${v.table2.column}`;\n } else {\n joinCondition = `ON ${v.table1.alias}.${v.table1.column} = ${v.table2.alias}.${v.table2.column}`;\n }\n return {\n alias: v.table2.alias,\n tableName: v.table2.name,\n datasourceId: v.table2.datasourceId || '',\n joinCondition,\n joinType: v.joinType,\n queryColumns: v.columns.filter((o) => o.select).map((o) => `${v.table2.alias}.${o.name}`),\n };\n });\n }\n if (customColumn && customColumn.customColumn.length) {\n obj.customColumns = customColumn.customColumn.map((v) => {\n return {\n alias: v.name,\n // formula: v.formula.replace(/\\[.*?\\]/g, (column: string): string => {\n // let str = column.substr(1, column.length - 2);\n // if (~str.indexOf('->')) {\n // let _str = str.replace(/ /g, '').split('->');\n // return `${_str[0]}.${_str[1]}`;\n // }\n // return str;\n // }),\n };\n });\n }\n if (filterData && filterData.filter.length) {\n obj.filters = 'WHERE ' + filterData.filter.map((v) => filterToSql(v)).join(' AND ');\n if (permissionTable) {\n obj.filters += ` @{_DATA_I_PRIV_COND:${permissionTable.table.alias}}`;\n }\n }\n\n if (summarize && (summarize.group.length || summarize.by.length)) {\n obj.groupBy = {\n calcColumns: [],\n groupColumns: [],\n };\n let queryColumns: string[] = [];\n if (summarize.group.length) {\n obj.groupBy.calcColumns = summarize.group.map((v) => {\n return v.sql;\n });\n queryColumns = [...obj.groupBy.calcColumns];\n }\n if (summarize.by.length) {\n obj.groupBy.groupColumns = summarize.by.map((v) => {\n queryColumns.push(`${v.sql}`);\n return `${v.alias}.${v.realName || v.name}`;\n });\n }\n\n obj.queryColumns = queryColumns;\n\n if (!tableData) {\n obj.alias = summarize.alias;\n }\n }\n if (sortData && sortData.sort.length) {\n obj.orderInfos = `ORDER BY ${sortData.sort\n .map((v: MetaSort_Item) => `${v.sql} ${v.sort}`)\n .join(', ')}`;\n }\n if (rowLimit) {\n obj.limit = Number(rowLimit.limit);\n }\n if (permissionTable) {\n obj.privilegeTable = `@{_DATA_I_PRIV_COND:${permissionTable.table.alias}}`;\n }\n return obj;\n};\n\nexport const handleSqlStruct = (list: MetaListType[]) =>\n handleNesting(reverseData(layeredData(list)));\n\n// 压缩结构\nexport const compressionStructure = (data: MetaListType[]): string => {\n let _data = JSON.parse(JSON.stringify(data)).map((v: MetaListType) => {\n let { metaKey, ...record } = v;\n if (record.type === TypeEnum.data || record.type === TypeEnum.joinData) {\n return {\n ...record,\n columns: record.columns.map((o) => {\n return {\n d: o.database_type,\n n: o.name,\n s: o.select,\n c: o.name_zh,\n };\n }),\n };\n } else {\n return record;\n }\n });\n return JSON.stringify(_data);\n};\n\nexport const restoreStructure = (data: string): MetaListType[] => {\n try {\n let _data = JSON.parse(data) as any[];\n let list = _data.map((v, i: number) => {\n let metaKey = i + 1;\n if (v.type === TypeEnum.data || v.type === TypeEnum.joinData) {\n return {\n metaKey,\n ...v,\n columns: v.columns.map((o: any) => {\n return {\n database_type: o.d,\n name: o.n,\n select: o.s,\n special_type: '',\n name_zh: o.c,\n };\n }),\n };\n } else {\n return {\n metaKey,\n ...v,\n };\n }\n });\n return list as MetaListType[];\n } catch (e) {\n return [];\n }\n};\n","import { __ } from './locale';\nimport { TypeEnum, SQL_COLUMN_TYPE } from './store/enum';\nimport {\n MetaListType,\n MetaSummarize,\n MetaJoin,\n MetaData,\n MetaFilter,\n MetaCustom,\n MetaSummarize_Group,\n MetaSummarize_By,\n MetaData_TableType,\n MetaData_ColumnsType,\n MetaSummarize_Enum,\n} from './store/types';\nimport { SummarizeAlias, summarizeToSql } from './store/helper';\n\nimport { uuidv4 } from './utils/helper';\nimport { DataType, ColumnType } from './components/dialog/select-join-column';\nimport cloneDeep from 'lodash/cloneDeep';\n\nexport const findIndex = <T>(arr: T[], item: T): number => {\n return arr.indexOf(item);\n};\n\ninterface HelperResultType {\n ExistAboveGroupBy: boolean; // 当前元素上面是否存在 聚合\n ExistBelowGroupBy: boolean; // 当前元素下面是否存在 聚合\n prevTypes: TypeEnum[]; // 当前元素和上面最近的聚合 中间的types列表\n nextTypes: TypeEnum[]; // 当前元素和下面最近的聚合 中间的types列表\n prevList: MetaListType[]; // 同 prevTypes 但是放的是 meta[]\n nextList: MetaListType[]; // 同 nextTypes 但是放的是 meta[]\n prevGroupBy: MetaSummarize | undefined; // 上一个最近 聚合数据\n nextGroupBy: MetaSummarize | undefined; // 下一个最近 聚合数据\n}\n\nexport const getHelper = (list: MetaListType[], item: MetaListType): HelperResultType => {\n let types: TypeEnum[] = list.map((v) => v.type);\n let curIndex = list.indexOf(item);\n let leftTypes = types.slice(0, curIndex); // 当前元素上面的所有元素 (不包含自己)\n let rightTypes = types.slice(curIndex + 1); // 当前元素下面的所有元素 (不包含自己)\n let leftList = list.slice(0, curIndex);\n let rightList = list.slice(curIndex + 1);\n\n let ExistAboveGroupBy: boolean = false;\n let ExistBelowGroupBy: boolean = false;\n let prevTypes: TypeEnum[] = [];\n let nextTypes: TypeEnum[] = [];\n let prevList: MetaListType[] = [];\n let nextList: MetaListType[] = [];\n let prevGroupBy: MetaSummarize | undefined;\n let nextGroupBy: MetaSummarize | undefined;\n\n if (~leftTypes.indexOf(TypeEnum.summarize)) {\n ExistAboveGroupBy = true;\n let i = leftTypes.lastIndexOf(TypeEnum.summarize);\n prevTypes = leftTypes.slice(i + 1);\n prevList = leftList.slice(i + 1);\n prevGroupBy = list[i] as MetaSummarize;\n }\n\n if (~rightTypes.indexOf(TypeEnum.summarize)) {\n ExistBelowGroupBy = true;\n let i = rightTypes.indexOf(TypeEnum.summarize);\n nextTypes = rightTypes.slice(0, i);\n nextList = rightList.slice(0, i);\n nextGroupBy = list[curIndex + i + 1] as MetaSummarize;\n }\n return {\n ExistAboveGroupBy,\n ExistBelowGroupBy,\n prevTypes,\n nextTypes,\n prevList,\n nextList,\n prevGroupBy,\n nextGroupBy,\n };\n};\n\n// 获取子查询的字段\nexport const getSubColumns = (metaList: any): DataType[] => {\n let obj: MetaCustom = {\n metaKey: -1,\n type: TypeEnum.customColumn,\n customColumn: [\n {\n name: '', // 用户起的别名\n // formula: '', // 公式}];\n },\n ],\n };\n let { ExistAboveGroupBy, prevList, prevGroupBy } = getHelper([...metaList, obj], obj);\n\n let data: DataType[];\n if (ExistAboveGroupBy) {\n let _data: DataType = {\n table: (prevGroupBy as MetaSummarize).alias,\n tableId: (prevGroupBy as MetaSummarize).alias,\n tableUuid: uuidv4('table'),\n alias: (prevGroupBy as MetaSummarize).alias,\n columns: [],\n };\n if (prevGroupBy?.group?.length) {\n _data.columns = _data.columns.concat(\n prevGroupBy.group.map((v: MetaSummarize_Group) => {\n return {\n name_zh: v.quotes,\n ...v,\n name: v.fieldAlias || v.name,\n fieldAlias: '',\n // fieldUuid: uuidv4('field'),\n realName: v.sql?.split(' AS ')?.[1] || '',\n // name_zh: '',\n database_type: v?.database_type || SQL_COLUMN_TYPE.FLOAT,\n special_type: '',\n select: true,\n };\n }),\n );\n }\n if (prevGroupBy?.by?.length) {\n _data.columns = _data.columns.concat(\n prevGroupBy.by.map((v: MetaSummarize_By) => {\n return {\n name_zh: v.quotes,\n ...v,\n name: v.fieldAlias || v.name,\n fieldAlias: '',\n // fieldUuid: uuidv4('field'),\n realName: v.sql?.split(' AS ')?.[1] || '',\n // name_zh: '',\n database_type: v?.database_type || SQL_COLUMN_TYPE.FLOAT,\n special_type: '',\n select: true,\n };\n }),\n );\n }\n data = [_data];\n\n let joinData = prevList\n .filter((v: MetaListType) => v.type === TypeEnum.joinData)\n // @ts-ignore\n .filter((v: MetaJoin) => v && v.table2.name);\n if (joinData.length) {\n data = data.concat(\n // @ts-ignore\n joinData.map((v: MetaJoin) => {\n const columns = v.columns.map((column) => {\n return {\n ...column,\n name: column.fieldAlias || column.name,\n fieldAlias: '',\n // fieldUuid: uuidv4('field'),\n };\n });\n return { alias: v.table2.alias, table: v.table2.name, columns: columns };\n }),\n );\n }\n } else {\n // @ts-ignore\n data = metaList\n .slice()\n .map((v: MetaListType) => {\n if (v.type === TypeEnum.data) {\n const columns = v.columns\n .map((column) => {\n return {\n ...column,\n name: column.fieldAlias || column.name,\n fieldAlias: '',\n // fieldUuid: uuidv4('field'),\n };\n })\n .filter((item) => item.select);\n return { alias: v.table.alias, table: v.table.name, columns: columns };\n } else if (v.type === TypeEnum.joinData) {\n const columns = v.columns\n .map((column) => {\n return {\n ...column,\n name: column.fieldAlias || column.name,\n fieldAlias: '',\n // fieldUuid: uuidv4('field'),\n };\n })\n .filter((item) => item.select);\n return {\n alias: (v as MetaJoin).table2.alias,\n table: (v as MetaJoin).table2.name,\n columns: columns,\n };\n } else if (v.type === TypeEnum.customColumn) {\n const { customColumn } = v;\n const columns = customColumn.map((v) => {\n return {\n database_type: SQL_COLUMN_TYPE.STRING,\n name_zh: v.name,\n name: v.name,\n select: true,\n fieldAlias: '',\n // fieldUuid: uuidv4('field'),\n };\n });\n return {\n columns: columns,\n alias: '',\n table: __('SqlQueryBuilder.customColumn'),\n };\n } else {\n return { table: null };\n }\n })\n .filter((v: any) => v.table);\n }\n return data;\n};\n\n// data = 'data',\n// joinData = 'joinData',\n// permissionTable = 'permissionTable', // 权限表\n// customColumn = 'customColumn',\n// filter = 'filter',\n// summarize = 'summarize',\n// sort = 'sort',\n// rowLimit = 'rowLimit',\nexport const changeTableAlias = (list: MetaListType[] | [], curObj: MetaData_TableType) => {\n const { tableUuid, alias } = cloneDeep(curObj);\n\n const newList = cloneDeep(list);\n return (\n newList?.map((v: MetaListType) => {\n if (v.type === TypeEnum.data) {\n if (v.table.tableUuid === tableUuid) {\n v.table.alias = alias;\n }\n }\n if (v.type === TypeEnum.joinData) {\n if (v.table1.tableUuid === tableUuid) {\n v.table1.alias = alias;\n }\n if (v.table2.tableUuid === tableUuid) {\n v.table2.alias = alias;\n }\n }\n if (v.type === TypeEnum.customColumn) {\n v.customColumn.map((item) => {\n item.formulaList?.map((formula) => {\n if (formula.expression && formula.expression.tableUuid === tableUuid) {\n formula.expression.alias = alias;\n }\n });\n });\n }\n if (v.type === TypeEnum.permissionTable) {\n if (v.table.tableUuid === tableUuid) {\n v.table.alias = alias;\n }\n }\n if (v.type === TypeEnum.rowLimit) {\n }\n if (v.type === TypeEnum.sort) {\n v.sort.map((sort) => {\n if (sort.alias === SummarizeAlias) {\n } else {\n if (sort.tableUuid === tableUuid) {\n sort.alias = alias;\n sort.sql = `${alias}.${sort.name}`;\n }\n }\n });\n }\n if (v.type === TypeEnum.summarize) {\n v.group.map((group) => {\n if (group.tableUuid === tableUuid) {\n group.alias = alias;\n group.sql = summarizeToSql(v.group, group).sql;\n }\n });\n v.by.map((by) => {\n if (by.tableUuid === tableUuid) {\n by.alias = alias;\n by.sql = `${by.alias}.${by.realName || by.name}`;\n }\n });\n }\n\n if (v.type === TypeEnum.filter) {\n v.filter.map((item) => {\n if (item.tableUuid === tableUuid) {\n // if (item.alias === SummarizeAlias) {\n // //有groupBy 特殊处理\n // const { prevGroupBy } = getHelper(list, v);\n\n // let groupBy: any =\n // prevGroupBy?.by.filter((v) => v.fieldUuid === item.fieldUuid)[0] ||\n // prevGroupBy?.group.filter((v) => v.fieldUuid === item.fieldUuid)[0] ||\n // null;\n // groupBy.alias = alias;\n\n // const sql = groupBy.sql;\n\n // if (groupBy) {\n // item.sql = sql;\n // item.groupSql = sql;\n // }\n // }\n\n item.alias = alias;\n item.sql = '';\n }\n if (item.table2 && item.table2.tableUuid === tableUuid) {\n // if (item.table2.alias === SummarizeAlias) {\n // //有groupBy 特殊处理\n // const { prevGroupBy } = getHelper(list, v);\n\n // let groupBy: any =\n // prevGroupBy?.by.filter((v) => v.fieldUuid === item.table2?.fieldUuid)[0] ||\n // prevGroupBy?.group.filter((v) => v.fieldUuid === item.table2?.fieldUuid)[0] ||\n // null;\n // groupBy.alias = alias;\n\n // const sql = groupBy.sql;\n\n // if (groupBy) {\n // item.table2.sql = sql;\n // item.table2.groupSql = sql;\n // }\n // }\n\n item.table2.alias = alias;\n // item.table2.sql = '';\n }\n // if (item.subquery) {\n // item.subquery = changeTableAlias(item.subquery || [], curObj);\n // }\n });\n }\n // if ((v as MetaData | MetaJoin).subquery) {\n // (v as MetaData | MetaJoin).subquery = changeTableAlias(\n // (v as MetaData | MetaJoin).subquery || [],\n // curObj,\n // );\n // }\n return v;\n }) || []\n );\n};\nexport const changeFieldAlias = (list: MetaListType[], curObj: MetaData_ColumnsType) => {\n const { fieldUuid, fieldAlias } = cloneDeep(curObj);\n\n const newList = cloneDeep(list);\n return (\n newList?.map((v: MetaListType) => {\n if (v.type === TypeEnum.data) {\n }\n if (v.type === TypeEnum.joinData) {\n if (v.table1.fieldUuid === fieldUuid) {\n v.table1.fieldAlias = fieldAlias;\n }\n if (v.table2.fieldUuid === fieldUuid) {\n v.table2.fieldAlias = fieldAlias;\n }\n v.expressions.map((column) => {\n if (column.left_fieldUuid === fieldUuid) {\n column.left_fieldAlias = fieldAlias;\n }\n if (column.right_fieldUuid === fieldUuid) {\n column.right_fieldAlias = fieldAlias;\n }\n });\n // if (v.table1.tableUuid === tableUuid) {\n // v.table1.alias = alias;\n // }\n }\n if (v.type === TypeEnum.customColumn) {\n v.customColumn.map((item) => {\n item.formulaList?.map((formula) => {\n if (formula.expression && formula.expression.fieldUuid === fieldUuid) {\n formula.expression.fieldAlias = fieldAlias;\n }\n });\n });\n }\n // if (v.type === TypeEnum.permissionTable) {\n // if (v.table.tableUuid === tableUuid) {\n // v.table.alias = alias;\n // }\n // }\n if (v.type === TypeEnum.rowLimit) {\n }\n // if (v.type === TypeEnum.sort) {\n // v.sort.map((sort) => {\n // if (sort.alias === SummarizeAlias) {\n // } else {\n // if (sort.tableUuid === tableUuid) {\n // sort.alias = alias;\n // sort.sql = `${alias}.${sort.name}`;\n // }\n // }\n // });\n // }\n if (v.type === TypeEnum.summarize) {\n v.group.map((group) => {\n if (group.fieldUuid === fieldUuid) {\n group.fieldAlias = fieldAlias;\n group.sql = summarizeToSql(v.group, group).sql;\n }\n });\n v.by.map((by) => {\n if (by.fieldUuid === fieldUuid) {\n by.fieldAlias = fieldAlias;\n by.sql = `${by.alias}.${by.realName || by.name}`;\n }\n });\n }\n\n if (v.type === TypeEnum.filter) {\n v.filter.map((item) => {\n if (item.fieldUuid === fieldUuid) {\n item.fieldAlias = fieldAlias;\n\n if (item.alias === SummarizeAlias) {\n //有groupBy 特殊处理\n const { prevGroupBy } = getHelper(list, v);\n\n let groupBy: any =\n prevGroupBy?.by.filter((v) => v.fieldUuid === item.fieldUuid)[0] ||\n prevGroupBy?.group.filter((v) => v.fieldUuid === item.fieldUuid)[0] ||\n null;\n\n if (groupBy) {\n groupBy.fieldAlias = fieldAlias;\n const sql = groupBy.sql;\n item.sql = sql;\n item.groupSql = sql;\n }\n }\n }\n if (item.table2 && item.table2.fieldUuid === fieldUuid) {\n item.table2.fieldAlias = fieldAlias;\n\n // if (item.table2.alias === SummarizeAlias) {\n // //有groupBy 特殊处理\n // const { prevGroupBy } = getHelper(list, v);\n\n // let groupBy: any =\n // prevGroupBy?.by.filter((v) => v.fieldUuid === item.table2?.fieldUuid)[0] ||\n // prevGroupBy?.group.filter((v) => v.fieldUuid === item.table2?.fieldUuid)[0] ||\n // null;\n // groupBy.fieldAlias = fieldAlias;\n\n // const sql = groupBy.sql;\n\n // if (groupBy) {\n // item.table2.sql = sql;\n // item.table2.groupSql = sql;\n // }\n // }\n }\n if (item.notExists) {\n item.notExists = changeFieldAlias(item.notExists || [], curObj);\n }\n });\n }\n return { ...v };\n }) || []\n );\n};\n\nexport function splitByUnion(data: any) {\n if (!data) return [];\n const original = cloneDeep(data);\n\n const result = [];\n let i = 0;\n\n while (i < original.length) {\n const item = original[i];\n\n if (item.type === 'group') {\n // group.list 中每一项原样推入结果\n for (const subItem of item.list) {\n result.push(subItem);\n }\n i++;\n } else if (item.type === 'union') {\n const { list, ...otehr } = item;\n // 查找下一个 group,并将其 list 转成 subquery\n const nextItem = original[i + 1];\n if (nextItem && nextItem.type === 'group') {\n result.push({\n ...otehr,\n subquery: nextItem.list.map((subItem: MetaListType) => subItem),\n });\n i += 2;\n } else {\n result.push({\n ...otehr,\n subquery: [],\n });\n i++;\n }\n }\n }\n\n return result;\n}\n\nexport function reassembleByUnion(target: any[] = []): any[] {\n if (!target) return [];\n const result = [];\n let i = 0;\n const len = target.length;\n\n // 如果没有任何 union,直接放入一个 group.list\n const hasUnion = target.some((item) => item.type === 'union');\n if (!hasUnion) {\n return [\n {\n type: 'group',\n name: 'default',\n list: [...target],\n },\n ];\n }\n\n // 否则正常处理\n while (i < len) {\n const item = target[i];\n\n if (item.type !== 'union') {\n // 收集连续非 union 的 item,统一放入一个 group.list\n const groupList = [];\n\n while (i < len && target[i].type !== 'union') {\n groupList.push(target[i]);\n i++;\n }\n\n result.push({\n type: 'group',\n name: 'default',\n list: groupList,\n });\n } else {\n // 处理 union\n result.push({\n type: 'union',\n name: 'union',\n union: item.union ?? 'UNION',\n list: [],\n });\n\n const subquery = item.subquery || [];\n const convertedSubquery = reassembleByUnion(subquery);\n result.push(...convertedSubquery);\n\n i++; // 跳过当前 union\n }\n }\n\n return result;\n}\n// export const buildSqlQuery = (data?: MetaListType[]): string => {\n// if (!data || data.length === 0) return '';\n\n// let sqlClauses: string[] = ['not exitis ( '];\n\n// data.forEach((item) => {\n// if (item.type === TypeEnum.data) {\n// const meta = item as MetaData;\n// const tableName = meta.table.name;\n// const alias = meta.table.alias ? `AS ${meta.table.alias}` : '';\n// const dataSource = meta.table.datasourceName;\n\n// sqlClauses.push(`SELECT 1 FROM ${dataSource}.${tableName} ${alias}`);\n// }\n\n// if (item.type === TypeEnum.joinData) {\n// const meta = item as MetaJoin;\n// const table1 = meta.table1.alias ? meta.table1.alias : meta.table1.name;\n// const table2 = `${meta.table2.datasourceName}.${meta.table2.name}`;\n// const alias2 = meta.table2.alias ? meta.table2.alias : '';\n// joins.push(`LEFT JOIN ${table2} ${alias2} ON ${table1}.${meta.columns[0]?.name} = ${alias2}.${meta.columns[0]?.name}`);\n// }\n\n// if (item.type === TypeEnum.filter) {\n// const filterStrings = (item as MetaFilter).filter.map((f) => f.quotes).filter(Boolean); // 排除空条件\n\n// if (filterStrings.length > 0) {\n// sqlClauses.push(`WHERE ${filterStrings.join(' AND ')}`);\n// }\n// }\n// });\n\n// // 简单拼接 SQL 片段\n// return sqlClauses.join(' ') + ' )' + ';';\n// };\nexport const buildSqlQuery = (data?: MetaListType[]): string => {\n if (!data || data.length === 0) return '';\n\n let sqlClauses: string[] = ['NOT EXISTS ('];\n let tables: string[] = [];\n let joins: string[] = [];\n let wheres: string[] = [];\n\n data.forEach((item) => {\n if (item.type === TypeEnum.data) {\n const meta = item as MetaData;\n const tableName = `${meta.table.name}`;\n const alias = meta.table.alias ? ` AS ${meta.table.alias}` : '';\n tables.push(`${tableName}${alias}`);\n }\n\n if (item.type === TypeEnum.joinData) {\n const meta = item as MetaJoin;\n const table2Name = `${meta.table2.name}`;\n const alias2 = meta.table2.alias ? ` AS ${meta.table2.alias}` : '';\n\n const table2 = `${meta.table2.alias || meta.table2.name}`;\n const table1 = `${meta.table1.alias || meta.table1.name}`;\n joins.push(\n `LEFT JOIN ${table2Name}${alias2} ON ${table1}.${meta.table1.fieldAlias} = ${table2}.${meta.table2.fieldAlias}`,\n );\n if (Array.isArray(item.expressions) && item.expressions.length > 0) {\n item.expressions.forEach((expression) => {\n let left = '',\n right = '';\n if (expression.left_type === 'field') {\n left = `${table1}.${expression.left_fieldAlias}`;\n } else {\n left = expression.left_string;\n }\n if (expression.right_type === 'field') {\n right = `${table2}.${expression.right_fieldAlias}`;\n } else {\n right = expression.right_string;\n }\n joins.push(`AND ${left} = ${right}`);\n });\n }\n }\n\n if (item.type === TypeEnum.filter) {\n const filterStrings = (item as MetaFilter).filter.map((f) => f.quotes).filter(Boolean);\n if (filterStrings.length > 0) {\n wheres.push(...filterStrings);\n }\n }\n });\n\n // 构建子查询\n if (tables.length > 0) {\n sqlClauses.push(`SELECT 1 FROM ${tables[0]}`);\n if (joins.length > 0) {\n sqlClauses.push(joins.join(' '));\n }\n if (wheres.length > 0) {\n sqlClauses.push(`WHERE ${wheres.join(' AND ')}`);\n }\n }\n\n sqlClauses.push(')');\n\n return sqlClauses.join(' ') + ';';\n};\n","import { useEffect, useState, useRef, useMemo, useCallback } from 'react';\nimport { uuidv4 } from '../utils/helper';\nimport { TypeEnum, JoinEnum, UnionEnum } from '../store/enum';\nimport { ToolbarType, MetaJoin_TalbeType } from '../store/types';\nimport type {\n MetaListType,\n TableColumnsMapType,\n initColumnsType,\n MetaData,\n TableType,\n MetaData_TableType,\n MetaJoin,\n MetaData_ColumnsType,\n MetaSummarize,\n PopupData,\n} from '../store/types';\nimport type { DatasourceType, MetaListProps, OptionItem } from '../types';\nimport { getSubColumns, getHelper } from '../utils';\nimport cloneDeep from 'lodash/cloneDeep';\n\nlet metaKey: number = 1;\n\nexport interface TableFieldsType {\n dataId: string; // id\n [name: string]: any;\n}\nexport const SummarizeAlias = 'source';\n\nconst useStore = (): any => {\n const defaultToolbar: ToolbarType[] = [\n 'filter',\n 'summarize',\n 'joinData',\n 'customColumn',\n 'sort',\n 'rowLimit',\n ];\n const defaultMetaList: MetaListType[] = [\n {\n metaKey,\n type: TypeEnum.data,\n table: {\n name: '',\n id: '',\n alias: '',\n datasourceId: '',\n datasourceName: '',\n tableUuid: uuidv4('table'),\n },\n columns: [],\n },\n ];\n const defaultMeta: MetaListProps[] = [\n {\n type: 'group',\n name: 'default',\n list: defaultMetaList,\n },\n ];\n const defaultOperator: MetaListProps = {\n type: 'union',\n name: 'union',\n union: UnionEnum.union,\n list: [],\n };\n const [showFields, setShowFields] = useState<boolean>(true); //显示字段\n const [showSubquery, setShowSubquery] = useState<boolean>(false); //子查询\n const [_showSubquery, _setShowSubquery] = useState<boolean>(false); //子查询(内部)\n const [toolbar, setToolbar] = useState<ToolbarType[]>(defaultToolbar); //工具列表\n const [fieldNameTpl, setFieldNameTpl] = useState<string>('${name}'); //显示字段\n const [tableNameTpl, setTableNameTpl] = useState<string>('${name}'); //显示字段\n const [sourceList, setSourceList] = useState<DatasourceType[]>([]); //数据源列表\n const [constantList, setConstantList] = useState<OptionItem[]>([]); //常量列表\n const [_cacheSource2TableMap, set_cacheSource2TableMap] = useState<{\n [datasourceId: string]: TableType[];\n }>({}); //数据源id 对应数据集列表\n const [_cacheColumnsMap, set_cacheColumnsMap] = useState<TableColumnsMapType>({}); //数据源id 对应数据集列表\n const [metaList, _setMeta] = useState<MetaListProps[]>(defaultMeta); //数据源id 对应数据集列表\n const [popupData, setPopup] = useState<PopupData>({\n visible: false,\n node: null,\n content: null,\n }); //弹窗\n const [popupData2, setPopup2] = useState<PopupData>({\n visible: false,\n node: null,\n content: null,\n }); //弹窗\n const [popupClosable, setClosable] = useState<boolean>(true); //是否可关闭 如果弹框里面再弹框 则不可关闭\n const [popupClosable2, setClosable2] = useState<boolean>(true); //是否可关闭 如果弹框里面再弹框 则不可关闭\n\n // 外层ref\n const popupContainer: any = useRef();\n // const [fetchDatasetFn, setFetchDatasetFn] = useState<(id: string) => Promise<any>>(\n // async () => {},\n // ); //fn\n const fetchDatasetFn: any = useRef();\n\n const setFetchDatasetFn = (fn: (id: string) => Promise<any>) => {\n fetchDatasetFn.current = fn;\n };\n const fetchColumnsFn: any = useRef();\n const setFetchColumnsFn = (\n fn: (table: { name: string; [key: string]: any }, id: string) => Promise<any>,\n ) => {\n fetchColumnsFn.current = fn;\n };\n const preProps: any = useRef();\n const setProps = (val: any) => {\n preProps.current = val;\n };\n\n // 是否显示主表后面的字段按钮 (如果下面 没有聚合,或者选了聚合但是聚合里面没有选值的时候显示 主表字段按钮)\n const showMainColumn = useMemo(() => {\n return metaList?.map((item, groupIndex) => {\n // 过滤出所有汇总类型的项\n const summarizeItems = item.list.filter(\n (v) => v.type === TypeEnum.summarize,\n ) as MetaSummarize[];\n\n // 如果没有汇总项,默认显示主列\n if (summarizeItems.length === 0) {\n return true;\n }\n\n // 如果只有一个汇总项,并且 group 和 by 都为空,则也显示主列\n const onlyItem = summarizeItems[0];\n const hasGroupOrBy =\n (Array.isArray(onlyItem.group) && onlyItem.group.length > 0) ||\n (Array.isArray(onlyItem.by) && onlyItem.by.length > 0);\n\n return !hasGroupOrBy;\n });\n }, [metaList]);\n // const showMainColumn = useMemo(() => {\n // let summarizeList = metaList.filter((v) => v.type === TypeEnum.summarize);\n // if (\n // !summarizeList.length ||\n // (summarizeList.length === 1 &&\n // !(summarizeList[0] as MetaSummarize).group.length &&\n // !(summarizeList[0] as MetaSummarize).by.length)\n // ) {\n // return true;\n // }\n // return false;\n // }, [metaList]);\n\n const showToolbar = (name: ToolbarType) => {\n return !!~toolbar.indexOf(name);\n };\n\n const fetchDataset = async (datasourceId: string): Promise<any> => {\n let tables = getDataset(datasourceId);\n if (tables.length) return tables;\n\n let _tables = await fetchDatasetFn.current(datasourceId);\n setDataset(datasourceId, _tables);\n return _tables;\n };\n // 根据数据源id查询集合列表\n // fetchDataset():\n // 查询表字段\n const fetchColumns = async (\n table: MetaJoin_TalbeType | MetaData_TableType,\n datasourceId: string,\n callback: (record: MetaData_ColumnsType[]) => void,\n ): Promise<any> => {\n let {\n alias = '',\n datasourceName,\n datasourceId: did,\n // @ts-ignore\n column,\n // @ts-ignore\n groupSql,\n ...extra\n } = table;\n\n let tableName = table.name;\n\n let columns: initColumnsType[] = getColumns(tableName);\n if (!columns.length) {\n columns = await fetchColumnsFn.current(extra, datasourceId);\n setColumns(tableName, columns);\n }\n const _columns = columns?.map((v) => {\n return { ...v, fieldUuid: v.fieldAlias || uuidv4('field') };\n });\n typeof callback === 'function' && callback(_columns);\n };\n\n const setMeta = (curData: MetaListType[], groupInd: number) => {\n let newMeta: MetaListProps[] = metaList.slice();\n newMeta[groupInd].list = curData;\n _setMeta(newMeta);\n };\n // 回显\n\n // 设置column\n const setQuotes = (newMeta: any) => {\n newMeta.table1 = {\n ...newMeta.table1,\n fieldAlias: newMeta.table1.fieldAlias || newMeta.table1.column,\n fieldUuid: newMeta.table1.fieldUuid || uuidv4('field'),\n quotes: newMeta.table1.quotes || newMeta.table1.column,\n tableUuid: newMeta.table1.tableUuid || uuidv4('table'),\n };\n newMeta.table2 = {\n ...newMeta.table2,\n fieldAlias: newMeta.table2.fieldAlias || newMeta.table2.column,\n fieldUuid: newMeta.table2.fieldUuid || uuidv4('field'),\n quotes: newMeta.table2.quotes || newMeta.table2.column,\n tableUuid: newMeta.table2.tableUuid || uuidv4('table'),\n };\n newMeta.expressions = newMeta.expressions?.map((v: any) => {\n return {\n ...v,\n left_fieldAlias: v.left_fieldAlias || v.left_column,\n left_fieldUuid: v.left_fieldUuid || uuidv4('field'),\n left_quotes: v.left_quotes || v.left_column,\n right_fieldAlias: v.right_fieldAlias || v.right_column,\n right_fieldUuid: v.right_fieldUuid || uuidv4('field'),\n right_quotes: v.right_quotes || v.right_column,\n };\n });\n return newMeta;\n };\n const setPreData = (data: MetaListProps[]) => {\n if (data.length) {\n let _metaList = data?.map((item, groupIndex) => {\n let newList = item.list?.map((v: any, i) => {\n let newMeta: MetaListType[] = item.list;\n if (v.table) {\n v.table.tableUuid = v.table.tableUuid || uuidv4('table');\n }\n if (v.type === TypeEnum.joinData) {\n newMeta[i] = setQuotes(newMeta[i]);\n }\n // 设置右侧column\n if (v.table2?.datasourceId && v.columns.length < 1) {\n fetchColumns(\n (newMeta[i] as MetaJoin).table2,\n (newMeta[i] as MetaJoin).table2.datasourceId,\n (columns: MetaData_ColumnsType[] = []) => {\n if (v.isSubquery) {\n let newColumns: any = [];\n const items = getSubColumns(v.subquery);\n newColumns = items?.flatMap((item) => item.columns);\n (newMeta[i] as MetaJoin).columns = newColumns || [];\n } else {\n (newMeta[i] as MetaJoin).columns = columns || [];\n }\n\n setMeta(newMeta, groupIndex);\n },\n );\n return { ...v };\n }\n // 设置column\n if (v.table?.datasourceId && v.columns.length < 1) {\n fetchColumns(\n (newMeta[i] as MetaData).table,\n (newMeta[i] as MetaData).table.datasourceId,\n (columns: MetaData_ColumnsType[] = []) => {\n if (v.isSubquery) {\n let newColumns: any = [];\n const items = getSubColumns(v.subquery);\n newColumns = items.flatMap((item) => item.columns);\n (newMeta[i] as MetaJoin).columns = newColumns || [];\n } else {\n (newMeta[i] as MetaData).columns = columns || [];\n }\n // if (v.type === TypeEnum.joinData) {\n // newMeta[i] = setQuotes(newMeta[i]);\n // }\n\n setMeta(newMeta, groupIndex);\n },\n );\n return { ...v };\n }\n return { ...v };\n });\n return {\n name: item.name || 'default',\n list: newList.length < 1 ? defaultMetaList : newList,\n type: item.type || 'group',\n union: item.union,\n };\n });\n\n const validMetaKeys = _metaList\n .flatMap((group) => group.list)\n .map((v) => Number(v.metaKey))\n .filter((num) => !isNaN(num));\n\n metaKey = validMetaKeys.length > 0 ? Math.max(...validMetaKeys) : 0;\n _setMeta(_metaList);\n } else {\n _setMeta(defaultMeta);\n }\n };\n\n const addMeta = (type: string, index: number, groupIndex: number) => {\n let newMeta: MetaListType[] = metaList[groupIndex].list.slice();\n let item: MetaListType;\n let mainTable: MetaData = newMeta[0] as MetaData;\n metaKey += 1;\n\n if (type === TypeEnum.joinData) {\n let table1 = {\n id: '',\n name: '',\n alias: '',\n tableUuid: '',\n datasourceId: '',\n datasourceName: '',\n fieldAlias: '',\n fieldUuid: '',\n };\n if (index === 1) {\n table1 = {\n ...mainTable.table,\n name: mainTable.table.name,\n alias: mainTable.table.alias,\n datasourceId: mainTable.table.datasourceId,\n datasourceName: mainTable.table.datasourceName,\n fieldAlias: '',\n fieldUuid: '',\n };\n }\n item = {\n metaKey,\n type: TypeEnum.joinData,\n joinType: JoinEnum.left,\n table1,\n table2: {\n name: '',\n id: '',\n alias: '',\n tableUuid: '',\n datasourceId: '',\n datasourceName: '',\n fieldAlias: '',\n fieldUuid: '',\n },\n columns: [],\n expressions: [],\n };\n }\n\n if (type === TypeEnum.customColumn) {\n item = { metaKey, type: TypeEnum.customColumn, customColumn: [] };\n }\n\n if (type === TypeEnum.filter) {\n item = { metaKey, type: TypeEnum.filter, filter: [] };\n }\n\n if (type === TypeEnum.summarize) {\n item = {\n metaKey,\n type: TypeEnum.summarize,\n alias: SummarizeAlias,\n group: [],\n by: [],\n tableUuid: '',\n };\n }\n\n if (type === TypeEnum.sort) {\n item = { metaKey, type: TypeEnum.sort, sort: [] };\n }\n\n if (type === TypeEnum.rowLimit) {\n item = { metaKey, type: TypeEnum.rowLimit, limit: '' };\n }\n\n if (type === TypeEnum.permissionTable) {\n item = {\n metaKey,\n type: TypeEnum.permissionTable,\n table: {\n name: '',\n id: '',\n alias: '',\n tableUuid: '',\n datasourceId: '',\n datasourceName: '',\n },\n };\n }\n if (type === TypeEnum.union) {\n // 添加分组\n let newMetaList: MetaListProps[] = metaList.slice();\n newMetaList.splice(groupIndex + 1, 0, defaultOperator, ...defaultMeta);\n _setMeta(newMetaList);\n return;\n }\n\n // @ts-ignore\n newMeta.splice(index, 0, item);\n setMeta(newMeta, groupIndex);\n };\n\n const delMeta = (meta: any, groupIndex: number): void => {\n if (meta.type === 'group') {\n let newMeta = metaList.slice();\n // 删除分组\n newMeta.splice(groupIndex, 1);\n // 删除分组后面一个组\n if (newMeta[groupIndex]) {\n newMeta.splice(groupIndex, 1);\n }\n _setMeta(newMeta);\n return;\n }\n // TIPS 自定义列删除了后面都得删除 暂时不删除 因为过滤器和组合包括自定义列都没用到自定义列\n let index = metaList[groupIndex].list.indexOf(meta);\n let newMeta = metaList[groupIndex].list.slice();\n\n if (meta.type === TypeEnum.joinData) {\n if ((meta as MetaJoin).table2.name) {\n let _metaList = newMeta.filter((v: MetaListType, i: number) => i < index);\n setMeta(_metaList, groupIndex);\n\n return void 0;\n }\n }\n if (meta.type === TypeEnum.summarize) {\n if ((meta as MetaSummarize).by.length || (meta as MetaSummarize).group.length) {\n let _metaList = newMeta.filter((v: MetaListType, i: number) => i < index);\n setMeta(_metaList, groupIndex);\n return void 0;\n }\n }\n if (meta.type === 'union') {\n // 删除分组,连带后面一个组也要删除\n let newMeta: MetaListProps[] = metaList.slice();\n newMeta.splice(groupIndex, 2);\n _setMeta(newMeta);\n return;\n }\n\n let _metaList = newMeta.filter((v) => v !== meta);\n setMeta(_metaList, groupIndex);\n };\n\n const setColumns = (tableId: string, columns: initColumnsType[]) => {\n const _columns = columns?.map((v) => {\n return {\n ...v,\n fieldUuid: v.fieldUuid || uuidv4('field'),\n };\n });\n const map = { ..._cacheColumnsMap };\n map[tableId] = _columns;\n\n set_cacheColumnsMap(map);\n };\n\n const getColumns = (tableId: string) => {\n return _cacheColumnsMap[tableId] || [];\n };\n\n const setDataset = (datasourceId: string, tables: TableType[]) => {\n const map = { ..._cacheSource2TableMap };\n map[datasourceId] = tables;\n set_cacheSource2TableMap(map);\n };\n\n const getDataset = (datasourceId: string) => {\n return _cacheSource2TableMap[datasourceId] || [];\n };\n\n const reset = () => {\n // setSourceList([]);\n _setMeta(defaultMeta);\n // setToolbar(defaultToolbar);\n set_cacheSource2TableMap({});\n set_cacheColumnsMap({});\n };\n return {\n showFields,\n setShowFields,\n toolbar,\n setToolbar,\n fieldNameTpl,\n setFieldNameTpl,\n tableNameTpl,\n setTableNameTpl,\n sourceList,\n setSourceList,\n _cacheSource2TableMap,\n set_cacheSource2TableMap,\n _cacheColumnsMap,\n set_cacheColumnsMap,\n metaList,\n setMeta,\n _setMeta,\n popupData,\n setPopup,\n popupData2,\n setPopup2,\n popupClosable,\n setClosable,\n popupClosable2,\n setClosable2,\n fetchDatasetFn: fetchDatasetFn.current,\n setFetchDatasetFn,\n fetchColumnsFn: fetchColumnsFn.current,\n setFetchColumnsFn,\n showMainColumn,\n showToolbar,\n fetchDataset,\n fetchColumns,\n setPreData,\n addMeta,\n delMeta,\n setColumns,\n getColumns,\n setDataset,\n getDataset,\n reset,\n setProps,\n preProps: preProps.current,\n showSubquery,\n setShowSubquery,\n _showSubquery,\n _setShowSubquery,\n constantList,\n setConstantList,\n popupContainer,\n };\n};\nexport default useStore;\n","import { register } from './index';\n\nexport default register('en', {\n 'data.pleaseSelectDataTable': 'please select data table',\n 'data.calculatingNow': 'calculating now...',\n loading: 'loading',\n 'data.search': 'search...',\n 'data.del': 'delete',\n 'data.saveFailed': 'save failed',\n 'data.savedSuccessfully': 'saved successfully',\n 'data.deletedSuccessfully': 'deleted successfully',\n 'SqlQueryBuilder.data': 'Data',\n 'SqlQueryBuilder.union': 'Merge Result Set',\n 'SqlQueryBuilder.joinData': 'Join Data',\n 'SqlQueryBuilder.permissionTable': 'Permission Table',\n 'SqlQueryBuilder.filter': 'Filter',\n 'SqlQueryBuilder.summarize': 'Summarize',\n 'SqlQueryBuilder.sort': 'Sort',\n 'SqlQueryBuilder.rowLimit': 'Row Limit',\n 'SqlQueryBuilder.columns': 'columns',\n 'SqlQueryBuilder.tipsLimit': 'Tips Limit',\n 'SqlQueryBuilder.customColumn': 'Custom Column',\n 'SqlQueryBuilder.by': 'by',\n 'SqlQueryBuilder.basicMetrics': 'basicMetrics',\n 'SqlQueryBuilder.countOfRows': 'countOfRows',\n 'SqlQueryBuilder.sumOf': 'sumOf',\n 'SqlQueryBuilder.averageOf': 'averageOf',\n 'SqlQueryBuilder.numberOfDistinctValuesOf': 'numberOfDistinctValuesOf',\n 'SqlQueryBuilder.cumulativeSumOf': 'cumulativeSumOf',\n 'SqlQueryBuilder.cumulativeCountOfRows': 'cumulativeCountOfRows',\n 'SqlQueryBuilder.standardDeviationOf': 'standardDeviationOf',\n 'SqlQueryBuilder.minimumOf': 'minimumOf',\n 'SqlQueryBuilder.maximumOf': 'maximumOf',\n 'SqlQueryBuilder.customExpression': 'customExpression',\n 'SqlQueryBuilder.pickTable': 'Select data table...',\n 'SqlQueryBuilder.pickConstant': 'Select constant...',\n 'SqlQueryBuilder.input': 'Input',\n 'SqlQueryBuilder.switchSubQuery': 'Open subquery',\n 'SqlQueryBuilder.setSubQuery': 'Set Subquery...',\n 'SqlQueryBuilder.subquery': 'Subquery',\n 'SqlQueryBuilder.confirm': 'Confirm',\n 'SqlQueryBuilder.add': 'Add',\n 'SqlQueryBuilder.del': 'Delete',\n 'SqlQueryBuilder.switch': 'Switch input type',\n 'SqlQueryBuilder.pleaseEnter': 'please enter',\n 'SqlQueryBuilder.pickPermissionTable': 'Select permission table...',\n 'SqlQueryBuilder.visualize': 'visualize',\n 'SqlQueryBuilder.selectColumnAll': 'select all',\n 'SqlQueryBuilder.alias': 'alias',\n 'customColumn.operator': 'operator',\n 'customColumn.field': 'field',\n 'customColumn.constant': 'constant',\n 'customColumn.str': 'string',\n 'customColumn.other': 'other',\n 'customColumn.update': 'update',\n 'customColumn.complete': 'complete',\n 'customColumn.fieldFormula': 'field formula',\n 'customColumn.giveItAName': 'give it a name',\n 'customColumn.cancel': 'cancel',\n 'customColumn.somethingAwesomeToDocument': 'something awesome to document',\n 'customColumn.expression': 'expression',\n 'customColumn.selectField': 'select columns',\n 'customColumn.selectOperator': 'select operator',\n 'customColumn.selectExpression': 'select expression',\n 'customColumn.selectOtherSyntax': 'select other syntax',\n 'customColumn.selectCustomInput': 'select custom input',\n 'filter.addFilter': 'add filter',\n 'filter.confirm': 'Confirm',\n 'filter.pleaseEnter': 'please enter',\n 'filter.enterANumber': 'enter a number',\n 'filter.minute': 'minute',\n 'filter.hour': 'hour',\n 'filter.day': 'day',\n 'filter.week': 'week',\n 'filter.month': 'month',\n 'filter.year': 'year',\n 'filter.equal': 'equal',\n 'filter.notEqual': 'not equal',\n 'filter.greaterThan': 'greater than',\n 'filter.lessThan': 'less than',\n 'filter.inBetween': 'in between',\n 'filter.greaterThanOrEqualTo': 'greater than or equal to',\n 'filter.lessThanOrEqualTo': 'less than or equal to',\n 'filter.empty': 'empty',\n 'filter.notEmpty': 'not empty',\n 'filter.is': 'is',\n 'filter.isNo': 'is no',\n 'filter.contain': 'contain',\n 'filter.notInclude': 'not include',\n 'filter.startWith': 'start with',\n 'filter.within': 'IN',\n 'filter.withnotin': 'NOT IN',\n 'filter.notresults': 'not results',\n 'filter.endWith': 'end with',\n 'filter.earlierThan': 'earlier than',\n 'filter.laterThan': 'later than',\n 'filter.isEmpty': 'is empty',\n 'filter.addFiltersToNarrowDownYourAnswers': 'add filters to narrow down your answers',\n 'joinData.automaticGrouping': 'automatic grouping',\n 'joinData.byTheHour': '[[timestamp]]by the hour',\n 'joinData.search': 'search...',\n 'summarize.basicIndicators': 'basic indicators',\n 'summarize.selectTheColumnsForGrouping': 'select columns for grouping',\n 'summarize.selectTheMetricsYouWantToView': 'select the metrics you want to view',\n 'summarize.totalNumberOfRows': 'total number of rows',\n 'summarize.count': 'count',\n 'summarize.sum': 'sum',\n 'summarize.sumOf': 'sum, of',\n 'summarize.average': 'average',\n 'summarize.onAverageOf': 'on average, of',\n 'summarize.totalNumberOfUniqueValues': 'total number of unique values',\n 'summarize.non-repeatingValueOf': 'non-repeating value, of',\n 'summarize.cumulativeSummation': 'cumulative summation',\n 'summarize.cumulativeSumOf': 'cumulative sum, of',\n 'summarize.cumulativeNumberOfRows': 'cumulative number of rows',\n 'summarize.cumulativeCount': 'cumulative count',\n 'summarize.standardDeviation': 'standard deviation',\n 'summarize.standardDeviationOf': 'standard deviation, of',\n 'summarize.minimumCalue': 'minimum value',\n 'summarize.theSmallestYes': 'the smallest, yes',\n 'summarize.maximumCalue': 'maximum value',\n 'summarize.biggestYes': 'biggest, yes',\n 'summarize.totalNumberOfRowsOfData': 'total number of rows of data',\n 'summarize.theSumOfAllValuesInAField': 'the sum of all values in a field',\n 'summarize.theAverageOfAllValuesInAfield': 'the average of all values in a field',\n 'summarize.theTotalNumberOfUniqueValuesInAfield': 'the total number of unique values in a field',\n 'summarize.theSumOfAllTheValuesInAcolumnForExample':\n 'the sum of all the values in a column. For example, the total income of x over a period of time',\n 'summarize.additiveStatisticsOfTheNumberOfRows':\n 'additive statistics of the number of rows. For example; total sales over a period of x',\n 'summarize.theStandardDeviationOfAllValuesInAfield':\n 'the standard deviation of all values in a field',\n 'summarize.theMinimumValueOfAfield': 'the minimum value of a field',\n 'summarize.TheMaximumValueOfAfield': 'the maximum value of a field',\n\n 'rowLimit.pleaseEnter': 'please enter',\n 'result.TheSQLStatementForThisQuery': 'The SQL statement for this query',\n 'result.closePanel': 'close panel',\n 'result.maximizePanelSize': 'maximize panel size',\n 'result.restorePanelSize': 'restore panel size',\n 'result.showSql': 'show sql',\n 'result.save': 'save',\n 'result.executeSql': 'execute sql',\n 'result.reExecute': 're-execute',\n 'result.inProgress': 'in progress',\n 'result.yourResultsWillAppearHere': 'your results will appear here',\n 'result.queryResult': 'query result',\n 'result.fieldOperations': 'field operations',\n});\n","import { register } from './index';\n\nexport default register('zh', {\n 'data.pleaseSelectDataTable': '请选择数据表',\n 'data.calculatingNow': '正在计算...',\n loading: '加载中',\n 'data.search': '查找...',\n 'data.del': '删除',\n 'data.saveFailed': '保存失败',\n 'data.savedSuccessfully': '保存成功',\n 'data.deletedSuccessfully': '删除成功',\n 'SqlQueryBuilder.data': '数据',\n 'SqlQueryBuilder.union': '合并结果集',\n 'SqlQueryBuilder.joinData': '关联',\n 'SqlQueryBuilder.permissionTable': '权限表',\n 'SqlQueryBuilder.filter': '过滤器',\n 'SqlQueryBuilder.summarize': '聚合',\n 'SqlQueryBuilder.sort': '排序',\n 'SqlQueryBuilder.rowLimit': '行限制',\n 'SqlQueryBuilder.columns': '字段',\n 'SqlQueryBuilder.tipsLimit': '输入限制条件',\n 'SqlQueryBuilder.customColumn': '自定义列',\n 'SqlQueryBuilder.by': '通过',\n 'SqlQueryBuilder.basicMetrics': '基础指标',\n 'SqlQueryBuilder.countOfRows': '总行数',\n 'SqlQueryBuilder.sumOf': '总和',\n 'SqlQueryBuilder.averageOf': '平均值',\n 'SqlQueryBuilder.numberOfDistinctValuesOf': '不重复值的总数',\n 'SqlQueryBuilder.cumulativeSumOf': '累计求和',\n 'SqlQueryBuilder.cumulativeCountOfRows': '累计行数',\n 'SqlQueryBuilder.standardDeviationOf': '标准差',\n 'SqlQueryBuilder.minimumOf': '最小值',\n 'SqlQueryBuilder.maximumOf': '最大值',\n 'SqlQueryBuilder.customExpression': '自定义表达方式',\n 'SqlQueryBuilder.pickTable': '选择数据表...',\n 'SqlQueryBuilder.pickConstant': '选择常量...',\n 'SqlQueryBuilder.input': '输入框',\n 'SqlQueryBuilder.switchSubQuery': '切换子查询',\n 'SqlQueryBuilder.setSubQuery': '设置子查询...',\n 'SqlQueryBuilder.subquery': '子查询',\n 'SqlQueryBuilder.confirm': '确认',\n 'SqlQueryBuilder.add': '添加',\n 'SqlQueryBuilder.del': '删除',\n 'SqlQueryBuilder.switch': '切换输入类型',\n 'SqlQueryBuilder.pleaseEnter': '请输入',\n 'SqlQueryBuilder.pickPermissionTable': '选择权限数据表...',\n 'SqlQueryBuilder.visualize': '可视化',\n 'SqlQueryBuilder.selectColumnAll': '全选',\n 'SqlQueryBuilder.alias': '别名',\n 'customColumn.operator': '运算符',\n 'customColumn.field': '字段',\n 'customColumn.constant': '常量',\n 'customColumn.str': '字符串',\n 'customColumn.other': '其他',\n 'customColumn.update': '更新',\n 'customColumn.complete': '完成',\n 'customColumn.fieldFormula': '字段公式',\n 'customColumn.giveItAName': '给它一个名字吧',\n 'customColumn.cancel': '取消',\n 'customColumn.somethingAwesomeToDocument': '一些超棒的、值得记录的东西',\n 'customColumn.expression': '表达式',\n 'customColumn.selectField': '选择列',\n 'customColumn.selectOperator': '选择运算符',\n 'customColumn.selectExpression': '选择表达式',\n 'customColumn.selectOtherSyntax': '选择其他语法',\n 'customColumn.selectCustomInput': '选择自定义输入框',\n 'filter.addFilter': '添加过滤器',\n 'filter.confirm': '确认',\n 'filter.pleaseEnter': '请输入',\n 'filter.enterANumber': '输入一个数字',\n 'filter.minute': '分',\n 'filter.hour': '时',\n 'filter.day': '天',\n 'filter.week': '周',\n 'filter.month': '月',\n 'filter.year': '年',\n 'filter.equal': '等于',\n 'filter.notEqual': '不等于',\n 'filter.greaterThan': '大于',\n 'filter.lessThan': '小于',\n 'filter.inBetween': '介于之间',\n 'filter.greaterThanOrEqualTo': '大于或等于',\n 'filter.lessThanOrEqualTo': '小于或等于',\n 'filter.empty': '为空',\n 'filter.notEmpty': '不为空',\n 'filter.is': '是',\n 'filter.isNo': '不是',\n 'filter.contain': '包含',\n 'filter.notInclude': '不包含',\n 'filter.startWith': '以...开始',\n 'filter.within': 'IN',\n 'filter.withnotin': 'NOT IN',\n 'filter.notresults': '无需结果',\n\n 'filter.endWith': '以...结束',\n 'filter.earlierThan': '早于',\n 'filter.laterThan': '晚于',\n 'filter.isEmpty': '是空的',\n 'filter.addFiltersToNarrowDownYourAnswers': '添加筛选条件来缩小你的答案范围',\n 'joinData.automaticGrouping': '自动分组',\n 'joinData.byTheHour': '[[时间戳]]按小时计数',\n 'joinData.search': '查找...',\n 'summarize.basicIndicators': '基础指标',\n 'summarize.selectTheColumnsForGrouping': '选择分组的列',\n 'summarize.selectTheMetricsYouWantToView': '选择你要查看的指标',\n 'summarize.totalNumberOfRows': '总行数',\n 'summarize.count': '计数',\n 'summarize.sum': '总和',\n 'summarize.sumOf': '求和 的',\n 'summarize.average': '平均值',\n 'summarize.onAverageOf': '平均 的',\n 'summarize.totalNumberOfUniqueValues': '不重复值的总数',\n 'summarize.non-repeatingValueOf': '不重复的值 的',\n 'summarize.cumulativeSummation': '累积求和',\n 'summarize.cumulativeSumOf': '累积和 的',\n 'summarize.cumulativeNumberOfRows': '累积行数',\n 'summarize.cumulativeCount': '累积计数',\n 'summarize.standardDeviation': '标准差',\n 'summarize.standardDeviationOf': '标准偏差 的',\n 'summarize.minimumCalue': '最小值',\n 'summarize.theSmallestYes': '最小 的',\n 'summarize.maximumCalue': '最大值',\n 'summarize.biggestYes': '最大 的',\n 'summarize.totalNumberOfRowsOfData': '总的数据行数',\n 'summarize.theSumOfAllValuesInAField': '一个字段所有数值的总和',\n 'summarize.theAverageOfAllValuesInAfield': '一个字段所有数值的平均值',\n 'summarize.theTotalNumberOfUniqueValuesInAfield': '一个字段所有互不重复的值的总数',\n 'summarize.theSumOfAllTheValuesInAcolumnForExample':\n '一个列的所有值的加和。如:x一段时间内的总收入',\n 'summarize.additiveStatisticsOfTheNumberOfRows': '行数的加法统计。如;x段时间内的销售总额',\n 'summarize.theStandardDeviationOfAllValuesInAfield': '一个字段所有数值的标准差',\n 'summarize.theMinimumValueOfAfield': '一个字段的最小值',\n 'summarize.TheMaximumValueOfAfield': '一个字段的最大值',\n 'rowLimit.pleaseEnter': '请输入',\n 'result.TheSQLStatementForThisQuery': '这个查询的SQL语句',\n 'result.closePanel': '关闭面板',\n 'result.maximizePanelSize': '最大化面板大小',\n 'result.restorePanelSize': '恢复面板大小',\n 'result.showSql': '显示sql',\n 'result.save': '保存',\n 'result.executeSql': '执行sql',\n 'result.reExecute': '重新执行',\n 'result.inProgress': '执行中',\n 'result.yourResultsWillAppearHere': '您的结果将会在这出现',\n 'result.queryResult': '查询结果',\n 'result.fieldOperations': '字段操作',\n});\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import './index.less';\nimport React from 'react';\n\nconst Loading = ({ show, msg = '正在计算...' }: { show: boolean; msg?: string }) => {\n if (!show) return null;\n return (\n <div className='loading-container'>\n <div>\n <div className='LoadingSpinner'></div>\n </div>\n <h2 className='loading-message'>{msg}</h2>\n </div>\n );\n};\n\nexport default Loading;\n","// 获取元素translate x y值\nexport const getComputedTranslate = (obj: any): { x: number; y: number } => {\n if (!window.getComputedStyle) return { x: 0, y: 0 };\n var style: any = getComputedStyle(obj),\n transform = style.transform || style.webkitTransform || style.mozTransform;\n var mat = transform.match(/^matrix3d\\((.+)\\)$/);\n if (mat) {\n return {\n x: parseFloat(mat[1].split(', ')[12]),\n y: parseFloat(mat[1].split(', ')[13]),\n };\n }\n mat = transform.match(/^matrix\\((.+)\\)$/);\n if (mat) {\n return {\n x: parseFloat(mat[1].split(', ')[4]),\n y: parseFloat(mat[1].split(', ')[5]),\n };\n }\n return { x: 0, y: 0 };\n};\n\n// 获取元素距离浏览器顶部的距离\nexport const getElementTop = (elem?: HTMLElement): number => {\n if (!elem) return 0;\n let elemTop: number = elem.offsetTop;\n let pElem: any = elem.offsetParent;\n while (pElem != null) {\n elemTop += pElem.offsetTop;\n if (pElem.style.transform) {\n elemTop += getComputedTranslate(pElem).y;\n }\n pElem = pElem.offsetParent;\n }\n return elemTop;\n};\n\n// 获取元素距离浏览器顶部的距离\nexport const getElementLeft = (elem?: HTMLElement): number => {\n if (!elem) return 0;\n let elemLeft = elem.offsetLeft;\n let pElem: any = elem.offsetParent;\n while (pElem != null) {\n elemLeft += pElem.offsetLeft;\n if (pElem.style.transform) {\n elemLeft += getComputedTranslate(pElem).x;\n }\n pElem = pElem.offsetParent;\n }\n return elemLeft;\n};\n\n// 获取元素可见范围内高度\nexport const getContainerVisibleHeight = (container?: HTMLElement): number => {\n if (!container) return 0;\n const rect = container.getBoundingClientRect();\n const windowHeight = window.innerHeight || document.documentElement.clientHeight;\n\n // 元素顶部在视口上方 -> 不可见\n if (rect.bottom < 0) return 0;\n\n // 元素底部在视口下方 -> 不可见\n if (rect.top > windowHeight) return 0;\n\n // 可见区域的 top 和 bottom\n const visibleTop = Math.max(rect.top, 0);\n const visibleBottom = Math.min(rect.bottom, windowHeight);\n\n // 可见高度\n return visibleBottom - visibleTop;\n};\n\nexport const getScrollTop = (elem?: HTMLElement) => {\n return elem?.scrollTop || document.documentElement.scrollTop;\n};\n\n// 浏览器可视宽高\nexport const getWindowSize = () => {\n return {\n width: document.body.clientWidth,\n height: document.body.clientHeight,\n };\n};\n\n// 获取元素父级最大的 z-index\nexport const getMaxZIndexInParents = (element: any) => {\n let currentElement = element;\n let maxZIndex = -Infinity;\n\n // 遍历当前元素及其所有父级元素\n while (currentElement && currentElement !== document.body) {\n // 获取当前元素的 z-index\n const zIndex = window.getComputedStyle(currentElement).zIndex;\n\n // 如果 z-index 是数字且比当前最大值大,则更新\n if (zIndex !== 'auto') {\n const zIndexNum = parseInt(zIndex, 10);\n if (!isNaN(zIndexNum) && zIndexNum > maxZIndex) {\n maxZIndex = zIndexNum;\n }\n }\n\n // 移动到父级元素\n currentElement = currentElement.parentElement;\n }\n\n // 如果没有显式设置的 z-index,返回 'auto' 或默认值\n return maxZIndex !== -Infinity ? maxZIndex : 'auto';\n};\n","import React, { useState, useRef, useEffect } from 'react';\nimport { sleep } from '../../../utils/helper';\n\ninterface WrapperType {\n children: React.ReactElement;\n className: string;\n}\n\nconst Wrapper = ({ children, className }: WrapperType) => {\n const [opacity, setOpacity] = useState(0);\n const [maxHeight, setMaxHeight] = useState<number | string>(0);\n const couterRef: any = useRef();\n useEffect(() => {\n animation();\n }, []);\n\n async function animation() {\n await sleep(10);\n setOpacity(1);\n couterRef.current?.childNodes?.length &&\n setMaxHeight(couterRef.current.childNodes[0].clientHeight + 16);\n await sleep(500);\n setMaxHeight('auto');\n }\n\n return (\n <div\n className={className}\n ref={couterRef}\n style={{ transition: 'all .3s ease 0s', opacity, height: maxHeight, overflow: 'hidden' }}\n >\n {children}\n </div>\n );\n};\n\nexport default Wrapper;\n","import React from 'react';\n\ntype IconProps = {\n width?: number;\n height?: number;\n style?: object;\n};\n\nexport const CloseIcon2 = (reset: any) => (\n <svg viewBox='0 0 32 32' {...reset} fill='currentcolor' role='img' aria-label='close icon'>\n <path d='M4 8 L8 4 L16 12 L24 4 L28 8 L20 16 L28 24 L24 28 L16 20 L8 28 L4 24 L12 16 z '></path>\n </svg>\n);\n\nexport const FilterIcon = ({ width = 18, height = 18 }: IconProps) => (\n <svg\n viewBox='0 0 32 32'\n width={width}\n height={height}\n fill='currentcolor'\n role='img'\n aria-label='filter icon'\n >\n <path d='M3.556 4h24.888a3.556 3.556 0 1 1 0 7.111H3.556a3.556 3.556 0 1 1 0-7.111zm4 11.556h16.888a2.222 2.222 0 1 1 0 4.444H7.556a2.222 2.222 0 0 1 0-4.444zM12 24.444h8a2.222 2.222 0 0 1 0 4.445h-8a2.222 2.222 0 0 1 0-4.445z'></path>\n </svg>\n);\n\nexport const SummarizeIcon = ({ width = 18, height = 18 }: IconProps) => (\n <svg\n viewBox='0 0 32 32'\n width={width}\n height={height}\n fill='currentcolor'\n role='img'\n aria-label='sum icon'\n >\n <path d='M3 27.41l1.984 4.422L27.895 32l.04-5.33-17.086-.125 8.296-9.457-.08-3.602L11.25 5.33H27.43V0H5.003L3.08 4.51l10.448 10.9z'></path>\n </svg>\n);\n\nexport const JoinDataIcon = ({ width = 18, height = 18 }: IconProps) => (\n <svg\n viewBox='0 0 32 32'\n width={width}\n height={height}\n fill='currentcolor'\n role='img'\n aria-label='join_left_outer icon'\n >\n <path d='M17.077 7.148A10.285 10.285 0 0 1 21.818 6C27.441 6 32 10.477 32 16s-4.559 10-10.182 10c-2.038 0-3.936-.588-5.528-1.6l.454-.31c.283-.194.555-.4.816-.617a8.842 8.842 0 0 0 4.258 1.083c4.832 0 8.738-3.836 8.738-8.556 0-4.72-3.906-8.556-8.738-8.556a8.865 8.865 0 0 0-3.546.733 10.65 10.65 0 0 0-1.195-1.03zM15.71 24.399A10.268 10.268 0 0 1 10.182 26C4.559 26 0 21.523 0 16S4.559 6 10.182 6c1.712 0 3.325.415 4.74 1.148-2.643 1.957-4.241 5.022-4.241 8.352 0 3.468 1.733 6.649 4.575 8.59l.454.31zM16 8c2.418 1.651 4 4.395 4 7.5 0 3.105-1.582 5.849-4 7.5-2.418-1.651-4-4.395-4-7.5 0-3.105 1.582-5.849 4-7.5z'></path>\n </svg>\n);\nexport const GroupIcon = ({ width = 18, height = 18 }: IconProps) => (\n <svg\n viewBox='0 0 1024 1024'\n width={width}\n height={height}\n fill='currentcolor'\n role='img'\n aria-label='add_group icon'\n >\n <path d='M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z'></path>\n <path d='M192 474h672q8 0 8 8v60q0 8-8 8H160q-8 0-8-8v-60q0-8 8-8z'></path>\n </svg>\n);\n\nexport const PermissionTableIcon = ({ width = 18, height = 18 }: IconProps) => (\n <svg\n viewBox='0 0 1024 1024'\n width={width}\n height={height}\n fill='currentcolor'\n role='img'\n aria-label='permission_table icon'\n >\n <path d='M768 416.914c43.886-43.885 43.886-109.714 0-153.6C724.114 219.43 650.971 219.43 607.086 256s-43.886 109.714 0 153.6S724.114 460.8 768 416.914z m-109.714-51.2c-14.629-14.628-14.629-36.571 0-51.2 14.628-14.628 36.571-14.628 51.2 0 14.628 14.629 14.628 36.572 0 51.2s-36.572 14.629-51.2 0z m-512 563.2c-14.629 14.629-36.572 14.629-51.2 0s-14.629-36.571 0-51.2l387.657-387.657-14.629-21.943C409.6 365.714 424.23 241.371 504.686 153.6c102.4-102.4 263.314-102.4 358.4 0s102.4 263.314 0 358.4c-80.457 87.771-204.8 102.4-307.2 43.886l-21.943-14.629-160.914 160.914 80.457 80.458c14.628 14.628 36.571 14.628 51.2 0 14.628-14.629 14.628-36.572 0-51.2l-21.943-29.258 65.828-65.828c124.343 58.514 277.943 36.571 373.029-65.829 131.657-131.657 131.657-336.457 0-468.114s-336.457-124.343-468.114 0C358.4 204.8 329.143 351.086 387.657 475.429L36.571 826.514c-43.885 43.886-43.885 109.715 0 153.6 43.886 43.886 109.715 43.886 153.6 0l80.458-80.457-51.2-43.886-73.143 73.143z m307.2-51.2L321.829 746.057l-51.2 58.514L402.286 936.23c14.628 14.628 36.571 14.628 51.2 0 14.628-21.943 14.628-43.886 0-58.515z'></path>\n </svg>\n);\n\nexport const CustomColumnIcon = ({ width = 18, height = 18 }: IconProps) => (\n <svg\n viewBox='0 0 32 32'\n width={width}\n height={height}\n fill='currentcolor'\n role='img'\n aria-label='add_data icon'\n >\n <path d='M0 8h5.926v6.208H0V8zm7.704 0h5.926v6.208H7.704V8zM0 16.07h5.926v6.209H0V16.07zm7.704 0h5.926v6.209H7.704V16.07zm7.703 0h5.926v6.209h-5.926V16.07zM0 24.142h5.926v6.208H0v-6.208zm7.704 0h5.926v6.208H7.704v-6.208zm7.703 0h5.926v6.208h-5.926v-6.208zM23.08 8.08V3h4.064v5.08h5.08v4.063h-5.08v5.08h-4.064v-5.08H18V8.079h5.08z'></path>\n </svg>\n);\n\nexport const SortIcon = ({ width = 18, height = 18 }: IconProps) => (\n <svg\n viewBox='0 0 32 32'\n width={width}\n height={height}\n fill='currentcolor'\n role='img'\n aria-label='smartscalar icon'\n >\n <path d='M9.806 9.347v13.016h-2.79V9.593L3.502 14.12a1.405 1.405 0 0 1-1.957.254 1.372 1.372 0 0 1-.256-1.937L7.418 4.54a1.404 1.404 0 0 1 2.219.008l6.08 7.953a1.372 1.372 0 0 1-.27 1.935c-.615.46-1.49.34-1.955-.268l-3.686-4.82zM24.806 23.016V13h-2.79v9.77l-3.514-4.527a1.405 1.405 0 0 0-1.957-.254 1.372 1.372 0 0 0-.256 1.937l6.129 7.897c.56.723 1.663.72 2.219-.008l6.08-7.953a1.372 1.372 0 0 0-.27-1.935 1.405 1.405 0 0 0-1.955.268l-3.686 4.82z'></path>\n </svg>\n);\n\nexport const RowLimitIcon = ({ width = 18, height = 18 }: IconProps) => (\n <svg\n viewBox='0 0 32 32'\n width={width}\n height={height}\n fill='currentcolor'\n role='img'\n aria-label='list icon'\n >\n <path d='M3 8 A3 3 0 0 0 9 8 A3 3 0 0 0 3 8 M12 6 L28 6 L28 10 L12 10z M3 16 A3 3 0 0 0 9 16 A3 3 0 0 0 3 16 M12 14 L28 14 L28 18 L12 18z M3 24 A3 3 0 0 0 9 24 A3 3 0 0 0 3 24 M12 22 L28 22 L28 26 L12 26z'></path>\n </svg>\n);\n\nexport const LeftJoinIcon = ({ width = 32, height = 32, style }: IconProps) => (\n <svg\n viewBox='0 0 32 32'\n width={width}\n height={height}\n fill='currentcolor'\n role='img'\n aria-label='join_right_outer icon'\n style={style}\n >\n <path d='M17.077 7.148A10.285 10.285 0 0 1 21.818 6C27.441 6 32 10.477 32 16s-4.559 10-10.182 10c-2.038 0-3.936-.588-5.528-1.6l.454-.31c.283-.194.555-.4.816-.617a8.842 8.842 0 0 0 4.258 1.083c4.832 0 8.738-3.836 8.738-8.556 0-4.72-3.906-8.556-8.738-8.556a8.865 8.865 0 0 0-3.546.733 10.65 10.65 0 0 0-1.195-1.03zM15.71 24.399A10.268 10.268 0 0 1 10.182 26C4.559 26 0 21.523 0 16S4.559 6 10.182 6c1.712 0 3.325.415 4.74 1.148-2.643 1.957-4.241 5.022-4.241 8.352 0 3.468 1.733 6.649 4.575 8.59l.454.31zM16 8c2.418 1.651 4 4.395 4 7.5 0 3.105-1.582 5.849-4 7.5-2.418-1.651-4-4.395-4-7.5 0-3.105 1.582-5.849 4-7.5z'></path>\n </svg>\n);\n\nexport const InnerJoinIcon = ({ width = 32, height = 32, style }: IconProps) => (\n <svg\n viewBox='0 0 32 32'\n width={width}\n height={height}\n fill='currentcolor'\n role='img'\n aria-label='join_inner icon'\n style={style}\n >\n <path d='M14.923 7.148c-.427.315-.826.66-1.195 1.03a8.865 8.865 0 0 0-3.546-.734C5.35 7.444 1.444 11.28 1.444 16c0 4.72 3.906 8.556 8.738 8.556 1.547 0 2.999-.393 4.258-1.083.26.217.533.423.816.616l.454.31A10.268 10.268 0 0 1 10.182 26C4.559 26 0 21.523 0 16S4.559 6 10.182 6c1.712 0 3.325.415 4.74 1.148zm1.879 0c.434.315.84.66 1.217 1.03a9.172 9.172 0 0 1 3.611-.734c4.921 0 8.9 3.836 8.9 8.556 0 4.72-3.979 8.556-8.9 8.556a9.137 9.137 0 0 1-4.337-1.083c-.265.217-.543.423-.83.616L16 24.4A10.6 10.6 0 0 0 21.63 26C27.357 26 32 21.523 32 16S27.357 6 21.63 6c-1.743 0-3.386.415-4.828 1.148zM16 8c2.418 1.651 4 4.395 4 7.5 0 3.105-1.582 5.849-4 7.5-2.418-1.651-4-4.395-4-7.5 0-3.105 1.582-5.849 4-7.5z'></path>\n </svg>\n);\n\nexport const UpArrowIcon = ({ width = 16, height = 17 }: IconProps) => (\n <svg\n className='sort-arrow'\n viewBox='0 0 32 34'\n width={width}\n height={height}\n fill='currentcolor'\n role='img'\n aria-label='arrow_up icon'\n >\n <path d='M16 34.23a2.5 2.5 0 002.5-2.5V9.036l8.732 8.732a2.5 2.5 0 003.405.122l.13-.122a2.5 2.5 0 000-3.536l-13-13a2.5 2.5 0 00-3.535 0l-13 13a2.5 2.5 0 103.536 3.536L13.5 9.036V31.73a2.5 2.5 0 002.336 2.495z'></path>\n </svg>\n);\n\nexport const DownArrowIcon = ({ width = 16, height = 17 }: IconProps) => (\n <svg\n className='sort-arrow'\n viewBox='0 0 32 34'\n width={width}\n height={height}\n fill='currentcolor'\n role='img'\n aria-label='arrow_down icon'\n >\n <path d='M16 .5A2.5 2.5 0 0118.5 3v22.694l8.732-8.732a2.5 2.5 0 013.405-.122l.13.122a2.5 2.5 0 010 3.536l-13 13a2.5 2.5 0 01-3.535 0l-13-13a2.5 2.5 0 113.536-3.536l8.732 8.732V3A2.5 2.5 0 0115.836.505z'></path>\n </svg>\n);\n\nexport const CloseIcon = ({ width = 16, height = 16 }: IconProps) => (\n <svg\n className='closeIcon'\n viewBox='0 0 32 32'\n width={width}\n height={height}\n fill='currentcolor'\n role='img'\n aria-label='close icon'\n >\n <path d='M4 8 L8 4 L16 12 L24 4 L28 8 L20 16 L28 24 L24 28 L16 20 L8 28 L4 24 L12 16 z '></path>\n </svg>\n);\n\nexport const AddIcon = ({ width = 16, height = 16 }: IconProps) => (\n <svg\n viewBox='0 0 32 32'\n width={width}\n height={height}\n fill='currentcolor'\n role='img'\n aria-label='add icon'\n >\n <path d='M12.4285714,12.4285714 L12.4285714,0 L19.5714286,0 L19.5714286,12.4285714 L32,12.4285714 L32,19.5714286 L19.5714286,19.5714286 L19.5714286,32 L12.4285714,32 L12.4285714,19.5714286 L0,19.5714286 L0,12.4285714 L12.4285714,12.4285714 Z'></path>\n </svg>\n);\n\nexport const TableIcon = ({ width = 18, height = 18 }: IconProps) => (\n <svg\n viewBox='0 0 32 32'\n width={width}\n height={height}\n fill='currentcolor'\n role='img'\n aria-label='table2 icon'\n >\n <path d='M1.6 0h28.8A1.6 1.6 0 0 1 32 1.6v28.8a1.6 1.6 0 0 1-1.6 1.6H1.6A1.6 1.6 0 0 1 0 30.4V1.6A1.6 1.6 0 0 1 1.6 0zm1.6 3.2v6.4h6.4V3.2H3.2zm9.6 0v6.4h16V3.2h-16zm-9.6 9.6v6.4h6.4v-6.4H3.2zm9.6 0v6.4h16v-6.4h-16zm-9.6 9.6v6.4h6.4v-6.4H3.2zm9.6 0v6.4h16v-6.4h-16z'></path>\n </svg>\n);\n\nexport const SearchIcon = ({ width = 16, height = 16 }: IconProps) => (\n <svg\n viewBox='0 0 32 32'\n width={width}\n height={height}\n fill='currentcolor'\n role='img'\n aria-label='search icon'\n >\n <path d='M22.805 25.734c-5.582 4.178-13.543 3.718-18.632-1.37-5.58-5.581-5.595-14.615-.031-20.179 5.563-5.563 14.597-5.55 20.178.031 5.068 5.068 5.545 12.985 1.422 18.563l5.661 5.661a2.08 2.08 0 0 1 .003 2.949 2.085 2.085 0 0 1-2.95-.003l-5.651-5.652zm-1.486-4.371c3.895-3.895 3.885-10.218-.021-14.125-3.906-3.906-10.23-3.916-14.125-.021-3.894 3.894-3.885 10.218.022 14.124 3.906 3.907 10.23 3.916 14.124.022z'></path>\n </svg>\n);\n\nexport const NotSelectIcon = () => (\n <svg\n viewBox='0 0 32 32'\n width='12'\n height='12'\n fill='currentcolor'\n role='img'\n aria-label='dash icon'\n >\n <path d='M0 13h32v6.61H0z'></path>\n </svg>\n);\n\nexport const SelectIcon = () => (\n <svg\n viewBox='0 0 32 32'\n width='12'\n height='12'\n fill='currentcolor'\n role='img'\n aria-label='check icon'\n >\n <path d='M1 14 L5 10 L13 18 L27 4 L31 8 L13 26 z '></path>\n </svg>\n);\n\nexport const CircleIcon = () => (\n <svg\n viewBox='0 0 32 32'\n width='18'\n height='18'\n fill='currentcolor'\n role='img'\n aria-label='unknown icon'\n >\n <path d='M16.5,26.5 C22.0228475,26.5 26.5,22.0228475 26.5,16.5 C26.5,10.9771525 22.0228475,6.5 16.5,6.5 C10.9771525,6.5 6.5,10.9771525 6.5,16.5 C6.5,22.0228475 10.9771525,26.5 16.5,26.5 L16.5,26.5 Z M16.5,23.5 C12.6340068,23.5 9.5,20.3659932 9.5,16.5 C9.5,12.6340068 12.6340068,9.5 16.5,9.5 C20.3659932,9.5 23.5,12.6340068 23.5,16.5 C23.5,20.3659932 20.3659932,23.5 16.5,23.5 L16.5,23.5 Z'></path>\n </svg>\n);\nexport const LetterAaIcon = () => (\n <svg\n viewBox='0 0 24 24'\n width='18'\n height='18'\n fill='currentcolor'\n role='img'\n aria-label='string icon'\n >\n <path d='M14.022,18 L11.533,18 C11.2543319,18 11.0247509,17.935084 10.84425,17.80525 C10.6637491,17.675416 10.538667,17.5091677 10.469,17.3065 L9.652,14.8935 L4.389,14.8935 L3.572,17.3065 C3.50866635,17.4838342 3.38516758,17.6437493 3.2015,17.78625 C3.01783241,17.9287507 2.79300133,18 2.527,18 L0.019,18 L5.377,4.1585 L8.664,4.1585 L14.022,18 Z M5.13,12.7085 L8.911,12.7085 L7.638,8.918 C7.55566626,8.67733213 7.45908389,8.3939183 7.34825,8.06775 C7.23741611,7.7415817 7.12816721,7.3885019 7.0205,7.0085 C6.91916616,7.39483527 6.8146672,7.75266502 6.707,8.082 C6.5993328,8.41133498 6.49800047,8.69633213 6.403,8.937 L5.13,12.7085 Z M21.945,18 C21.6663319,18 21.4557507,17.9620004 21.31325,17.886 C21.1707493,17.8099996 21.0520005,17.6516679 20.957,17.411 L20.748,16.8695 C20.5009988,17.078501 20.2635011,17.2621659 20.0355,17.4205 C19.8074989,17.5788341 19.5715846,17.7134161 19.32775,17.82425 C19.0839154,17.9350839 18.8242514,18.0174164 18.54875,18.07125 C18.2732486,18.1250836 17.9676683,18.152 17.632,18.152 C17.1823311,18.152 16.7738352,18.0934173 16.4065,17.97625 C16.0391648,17.8590827 15.7272513,17.6865011 15.47075,17.4585 C15.2142487,17.2304989 15.016334,16.947085 14.877,16.60825 C14.737666,16.269415 14.668,15.8783355 14.668,15.435 C14.668,15.0866649 14.7566658,14.7288352 14.934,14.3615 C15.1113342,13.9941648 15.4184978,13.6600848 15.8555,13.35925 C16.2925022,13.0584152 16.8814963,12.8066677 17.6225,12.604 C18.3635037,12.4013323 19.297661,12.2873335 20.425,12.262 L20.425,11.844 C20.425,11.2676638 20.3062512,10.8512513 20.06875,10.59475 C19.8312488,10.3382487 19.4940022,10.21 19.057,10.21 C18.7086649,10.21 18.4236678,10.2479996 18.202,10.324 C17.9803322,10.4000004 17.7824175,10.4854995 17.60825,10.5805 C17.4340825,10.6755005 17.2646675,10.7609996 17.1,10.837 C16.9353325,10.9130004 16.7390011,10.951 16.511,10.951 C16.3083323,10.951 16.1357507,10.9019172 15.99325,10.80375 C15.8507493,10.7055828 15.7383337,10.5836674 15.656,10.438 L15.124,9.5165 C15.7193363,8.99083071 16.3795797,8.59975128 17.10475,8.34325 C17.8299203,8.08674872 18.6073292,7.9585 19.437,7.9585 C20.0323363,7.9585 20.5690809,8.05508237 21.04725,8.24825 C21.5254191,8.44141763 21.9307483,8.71058161 22.26325,9.05575 C22.5957517,9.40091839 22.8506658,9.81099763 23.028,10.286 C23.2053342,10.7610024 23.294,11.2803305 23.294,11.844 L23.294,18 L21.945,18 Z M18.563,16.2045 C18.9430019,16.2045 19.2754986,16.1380007 19.5605,16.005 C19.8455014,15.8719993 20.1336652,15.6566682 20.425,15.359 L20.425,13.991 C19.8359971,14.0163335 19.3515019,14.0669996 18.9715,14.143 C18.5914981,14.2190004 18.2906678,14.3139994 18.069,14.428 C17.8473322,14.5420006 17.6937504,14.6718326 17.60825,14.8175 C17.5227496,14.9631674 17.48,15.1214991 17.48,15.2925 C17.48,15.6281683 17.5718324,15.8640827 17.7555,16.00025 C17.9391676,16.1364173 18.2083316,16.2045 18.563,16.2045 L18.563,16.2045 Z'></path>\n </svg>\n);\nexport const CalendarIcon = () => (\n <svg\n viewBox='0 0 24 24'\n width='18'\n height='18'\n fill='currentcolor'\n role='img'\n aria-label='calendar icon'\n >\n <path d='M21,2 L21,0 L18,0 L18,2 L6,2 L6,0 L3,0 L3,2 L2.99109042,2 C1.34177063,2 0,3.34314575 0,5 L0,6.99502651 L0,20.009947 C0,22.2157067 1.78640758,24 3.99005301,24 L20.009947,24 C22.2157067,24 24,22.2135924 24,20.009947 L24,6.99502651 L24,5 C24,3.34651712 22.6608432,2 21.0089096,2 L21,2 L21,2 Z M22,8 L22,20.009947 C22,21.1099173 21.1102431,22 20.009947,22 L3.99005301,22 C2.89008272,22 2,21.1102431 2,20.009947 L2,8 L22,8 L22,8 Z M6,12 L10,12 L10,16 L6,16 L6,12 Z'></path>\n </svg>\n);\nexport const WellIcon = () => (\n <svg\n viewBox='0 0 24 24'\n width='18'\n height='18'\n fill='currentcolor'\n role='img'\n aria-label='int icon'\n >\n <path d='M15.141,15.512 L14.294,20 L13.051,20 C12.8309989,20 12.6403341,19.9120009 12.479,19.736 C12.3176659,19.5599991 12.237,19.343668 12.237,19.087 C12.237,19.0503332 12.2388333,19.0155002 12.2425,18.9825 C12.2461667,18.9494998 12.2516666,18.9146668 12.259,18.878 L12.908,15.512 L10.653,15.512 L10.015,19.01 C9.94899967,19.3620018 9.79866784,19.6149992 9.564,19.769 C9.32933216,19.9230008 9.06900143,20 8.783,20 L7.584,20 L8.42,15.512 L7.155,15.512 C6.92033216,15.512 6.74066729,15.4551672 6.616,15.3415 C6.49133271,15.2278328 6.429,15.0390013 6.429,14.775 C6.429,14.6723328 6.43999989,14.5550007 6.462,14.423 L6.605,13.554 L8.695,13.554 L9.267,10.518 L6.913,10.518 L7.122,9.385 C7.17333359,9.10633194 7.28699912,8.89916734 7.463,8.7635 C7.63900088,8.62783266 7.92499802,8.56 8.321,8.56 L9.542,8.56 L10.224,5.018 C10.282667,4.7246652 10.4183323,4.49733414 10.631,4.336 C10.8436677,4.17466586 11.0929986,4.094 11.379,4.094 L12.611,4.094 L11.775,8.56 L14.019,8.56 L14.866,4.094 L16.076,4.094 C16.3326679,4.094 16.5416659,4.1673326 16.703,4.314 C16.8643341,4.4606674 16.945,4.64766553 16.945,4.875 C16.945,4.9483337 16.9413334,5.00333315 16.934,5.04 L16.252,8.56 L18.485,8.56 L18.276,9.693 C18.2246664,9.97166806 18.1091676,10.1788327 17.9295,10.3145 C17.7498324,10.4501673 17.4656686,10.518 17.077,10.518 L15.977,10.518 L15.416,13.554 L16.978,13.554 C17.2126678,13.554 17.3904994,13.6108328 17.5115,13.7245 C17.6325006,13.8381672 17.693,14.0306653 17.693,14.302 C17.693,14.4046672 17.6820001,14.5219993 17.66,14.654 L17.528,15.512 L15.141,15.512 Z M10.928,13.554 L13.183,13.554 L13.744,10.518 L11.5,10.518 L10.928,13.554 Z'></path>\n </svg>\n);\nexport const ForeignKeyIcon = () => (\n <svg\n viewBox='0 0 16 19.7647'\n width='18'\n height='18'\n fill='currentcolor'\n role='img'\n aria-label='connections icon'\n >\n <path d='M5.37815706,11.5570815 C5.55061975,11.1918363 5.64705882,10.783651 5.64705882,10.3529412 C5.64705882,9.93118218 5.55458641,9.53102128 5.38881053,9.1716274 L11.1846365,4.82475792 C11.6952189,5.33295842 12.3991637,5.64705882 13.1764706,5.64705882 C14.7358628,5.64705882 16,4.38292165 16,2.82352941 C16,1.26413718 14.7358628,0 13.1764706,0 C11.6170784,0 10.3529412,1.26413718 10.3529412,2.82352941 C10.3529412,3.2452884 10.4454136,3.64544931 10.6111895,4.00484319 L10.6111895,4.00484319 L4.81536351,8.35171266 C4.3047811,7.84351217 3.60083629,7.52941176 2.82352941,7.52941176 C1.26413718,7.52941176 0,8.79354894 0,10.3529412 C0,11.9123334 1.26413718,13.1764706 2.82352941,13.1764706 C3.59147157,13.1764706 4.28780867,12.8698929 4.79682555,12.3724528 L10.510616,16.0085013 C10.408473,16.3004758 10.3529412,16.6143411 10.3529412,16.9411765 C10.3529412,18.5005687 11.6170784,19.7647059 13.1764706,19.7647059 C14.7358628,19.7647059 16,18.5005687 16,16.9411765 C16,15.3817842 14.7358628,14.1176471 13.1764706,14.1176471 C12.3029783,14.1176471 11.5221273,14.5142917 11.0042049,15.1372938 L5.37815706,11.5570815 Z'></path>\n </svg>\n);\nexport const UpArrowIcon2 = () => (\n <svg\n viewBox='0 0 32 32'\n width='12'\n height='12'\n fill='currentcolor'\n role='img'\n aria-label='chevronup icon'\n >\n <path d='M1 20 L16 6 L31 20 L27 24 L16 14 L5 24 z'></path>\n </svg>\n);\nexport const DownArrowIcon2 = () => (\n <svg\n viewBox='0 0 32 32'\n width='12'\n height='12'\n fill='currentcolor'\n role='img'\n aria-label='chevrondown icon'\n >\n <path d='M1 12 L16 26 L31 12 L27 8 L16 18 L5 8 z '></path>\n </svg>\n);\nexport const LeftArrowIcon = () => (\n <svg\n viewBox='0 0 32 32'\n width='16'\n height='16'\n fill='currentcolor'\n role='img'\n aria-label='chevronleft icon'\n >\n <path d='M20 1 L24 5 L14 16 L24 27 L20 31 L6 16 z'></path>\n </svg>\n);\nexport const RightArrowIcon = () => (\n <svg\n viewBox='0 0 32 32'\n width='16'\n height='16'\n fill='currentcolor'\n role='img'\n aria-label='chevronright icon'\n >\n <path d='M12 1 L26 16 L12 31 L8 27 L18 16 L8 5 z '></path>\n </svg>\n);\n\nexport const DataSourceIcon = () => (\n <svg\n viewBox='0 0 32 32'\n width='18'\n height='18'\n fill='currentcolor'\n role='img'\n aria-label='database icon'\n >\n <path d='M0 9.32V4.054S1.584 0 15.657 0C29.731 0 31.89 3.669 31.89 4.054v5.24s-1.445 4.125-15.424 4.125S0 10.138 0 9.32zm.305 12.93s2.044 3.692 15.727 3.692 15.63-3.72 15.63-3.72.338.099.338.632v5S30.463 32 15.964 32C1.465 32 .041 27.817.041 27.817V22.9c0-.582.264-.65.264-.65zm0-9.368s2.044 3.692 15.727 3.692 15.63-3.72 15.63-3.72.338.099.338.632v5.001s-1.537 4.145-16.036 4.145C1.465 22.632.041 18.45.041 18.45v-4.918c0-.583.264-.65.264-.65z'></path>\n </svg>\n);\n","import React from 'react';\nimport { Tooltip } from '@gingkoo/pandora';\nimport { CloseIcon2 } from '../../icons';\nimport { __ } from '../../../locale';\n\ninterface HeaderProps {\n title: string;\n className?: string;\n onClose?: Function;\n}\n\nconst Header = (props: HeaderProps) => {\n return (\n <div className={`Sqb-item--text ${props.className || ''}`}>\n {props.title}\n {props.onClose && (\n <Tooltip placement='top' title={__('data.del')}>\n <CloseIcon2 className={`Sqb-item-close`} onClick={props.onClose} />\n </Tooltip>\n )}\n </div>\n );\n};\n\nexport default Header;\n","/**\n * 弹窗选择列表组件\n * @description 用于在弹窗中选择列表项,支持自定义图标和\n */\nimport React from 'react';\nimport './index.less';\nimport cx from 'classnames';\nimport { OptionItem } from '../../../types';\ninterface PropsType {\n className?: string;\n value?: any;\n list: OptionItem[];\n onChange: (type: any) => void;\n}\nconst SelectList = ({ value = '', onChange = () => {}, list = [], className = '' }: PropsType) => {\n return (\n <div className={cx(`Sqb-SelectColumns--box `, className)}>\n <div className={'p-2'}>\n {list.map((v, i) => {\n return (\n <div\n key={v.value}\n className={cx(`Sqb-List-item p-2`, {\n active: value === v.value,\n 'mb-2': i !== list.length - 1,\n })}\n onClick={() => {\n onChange(v.value);\n }}\n >\n {v.icon}\n {v.label}\n </div>\n );\n })}\n </div>\n </div>\n );\n};\n\nexport default SelectList;\n","import React from 'react';\nimport cx from 'classnames';\n\nimport { __ } from '../../locale';\nimport { findIndex } from '../../utils';\n\nimport Wrapper from './components/Wrapper';\nimport NextDom from './components/meta-icon';\nimport Header from './components/header';\nimport SelectList from '../dialog/select-list';\nimport { UnionEnum } from '../../store/enum';\n\nimport { useStore } from '../../hooks/use-provider';\n\ninterface PropsType {\n store?: any;\n meta: any;\n union: UnionEnum;\n groupIndex: number;\n}\n\nconst List = [\n {\n value: UnionEnum.union,\n label: 'UNION',\n },\n {\n value: UnionEnum.unionAll,\n label: 'UNION ALL',\n },\n];\n\nconst RowLimit = (props: PropsType) => {\n const { meta, union, groupIndex } = props;\n const store = useStore();\n\n function selectOperator(e: any) {\n !meta.readonly &&\n store.setPopup({\n visible: true,\n node: e.currentTarget,\n content: (\n <SelectList\n list={List}\n value={union}\n onChange={(type: UnionEnum) => {\n let newMeta = store.metaList.slice();\n newMeta[groupIndex].union = type;\n store._setMeta(newMeta);\n store.setPopup({ visible: false });\n }}\n />\n ),\n });\n }\n return (\n <Wrapper className={cx(`Sqb-item`)}>\n <div className={cx(`Sqb-hover-parent`)}>\n <Header\n title={__('SqlQueryBuilder.union')}\n onClose={() => store.delMeta(meta, groupIndex)}\n />\n <div className={cx(`Sqb-item--content`)}>\n <div className={cx(`Sqb-NotebookCell`)}>\n <div className={`Sqb-TableName`} onClick={(e) => selectOperator(e)}>\n {union}\n </div>\n </div>\n </div>\n </div>\n </Wrapper>\n );\n};\n\nexport default RowLimit;\n","function getTextNodeAtPosition(root: any, index: number) {\n try {\n const treeWalker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, (elem) => {\n if (index > (elem as any).textContent.length) {\n index -= (elem as any).textContent.length;\n return NodeFilter.FILTER_REJECT;\n }\n return NodeFilter.FILTER_ACCEPT;\n });\n const c = treeWalker.nextNode();\n return {\n node: c ? c : root,\n position: c ? index : 0,\n };\n } catch (e) {\n return {\n node: root,\n position: 0,\n };\n }\n}\n\nexport function getSelectionPosition(element: any): RangeType {\n // input, textarea, IE\n if (element.setSelectionRange || element.createTextRange) {\n return [element.selectionStart, element.selectionEnd];\n } else {\n // contenteditable\n try {\n const selection: Selection | null = window.getSelection();\n // Clone the Range otherwise setStart/setEnd will mutate the actual selection in Chrome 58+ and Firefox!\n const range = (selection as Selection).getRangeAt(0).cloneRange();\n const { startContainer, startOffset } = range;\n range.setStart(element, 0);\n const end = range.toString().length;\n range.setEnd(startContainer, startOffset);\n const start = range.toString().length;\n\n return [start, end];\n } catch (e) {\n return [0, 0];\n }\n }\n}\n\nexport function setSelectionPosition(element: any, [start, end]: RangeType) {\n // input, textarea\n if (element.setSelectionRange) {\n element.focus();\n element.setSelectionRange(start, end);\n } else if (element.createTextRange) {\n // IE\n const range = element.createTextRange();\n range.collapse(true);\n range.moveEnd('character', end);\n range.moveStart('character', start);\n range.select();\n } else {\n // contenteditable\n try {\n const selection = window.getSelection();\n const startPos = getTextNodeAtPosition(element, start);\n const endPos = getTextNodeAtPosition(element, end);\n (selection as Selection).removeAllRanges();\n const range = new Range();\n range.setStart(startPos.node, startPos.position);\n range.setEnd(endPos.node, endPos.position);\n (selection as Selection).addRange(range);\n } catch (e) {\n element && element.focus();\n }\n }\n}\n\nexport function getCaretPosition(element: any) {\n return getSelectionPosition(element)[1];\n}\n\nexport function saveSelection(element: any) {\n const range = getSelectionPosition(element);\n return () => setSelectionPosition(element, range);\n}\n\nexport function setCaretPosition(element: any, position: number) {\n setSelectionPosition(element, [position, position]);\n}\n\ntype RangeType = [number, number];\n","// @ts-nocheck\n\nconst t = (msg) => msg;\n\nexport const TOKEN = {\n Operator: 1,\n Number: 2,\n String: 3,\n Identifier: 4,\n};\n\nexport const OPERATOR = {\n Comma: ',',\n OpenParenthesis: '(',\n CloseParenthesis: ')',\n Plus: '+',\n Minus: '-',\n Star: '*',\n Slash: '/',\n Equal: '=',\n NotEqual: '!=',\n LessThan: '<',\n GreaterThan: '>',\n LessThanEqual: '<=',\n GreaterThanEqual: '>=',\n Not: 'not',\n And: 'and',\n Or: 'or',\n};\n\nexport function tokenize(expression) {\n const source = expression;\n const length = expression.length;\n let index = 0;\n\n const isWhiteSpace = (cp) =>\n cp === 0x0009 || // tab\n cp === 0x000a || // line feed\n cp === 0x000b || // vertical tab\n cp === 0x000c || // form feed\n cp === 0x000d || // carriage return\n cp === 0x0020 || // space\n cp === 0x0085 || // next line\n cp === 0x00a0 || // non-breking space\n cp === 0x1680 || // ogham space\n cp === 0x2000 || // en quad\n cp === 0x2001 || // em quad\n cp === 0x2002 || // en space\n cp === 0x2003 || // em space\n cp === 0x2004 || // third em space\n cp === 0x2005 || // fourth em space\n cp === 0x2006 || // sixth em space\n cp === 0x2007 || // figure space\n cp === 0x2008 || // punctuation space\n cp === 0x2009 || // thin space\n cp === 0x200a || // hair space\n cp === 0x2028 || // line separator\n cp === 0x2029 || // paragraph separator\n cp === 0x202f || // no break narrow space\n cp === 0x205f || // four-eighteenths em space\n cp === 0x3000; // cjk language space\n\n const isDigit = (cp) => cp >= 0x30 && cp <= 0x39; // 0..9\n\n const isAlpha = (cp) =>\n (cp >= 0x41 && cp <= 0x5a) || // A..Z\n (cp >= 0x61 && cp <= 0x7a); // a..z\n\n const skipWhitespaces = () => {\n while (index < length) {\n const cp = source.charCodeAt(index);\n if (!isWhiteSpace(cp)) {\n break;\n }\n ++index;\n }\n };\n\n const scanOperator = () => {\n const start = index;\n const ch = source[start];\n\n switch (ch) {\n case OPERATOR.OpenParenthesis:\n case OPERATOR.CloseParenthesis:\n case OPERATOR.Comma:\n case OPERATOR.Plus:\n case OPERATOR.Minus:\n case OPERATOR.Star:\n case OPERATOR.Slash:\n case OPERATOR.Equal:\n ++index;\n break;\n\n case OPERATOR.LessThan:\n case OPERATOR.GreaterThan:\n ++index;\n if (source[index] === OPERATOR.Equal) {\n // OPERATOR.LessThanEqual (<=) or\n // OPERATOR.GreaterThanEqual (>=)\n ++index;\n }\n break;\n\n case '!':\n if (source[start + 1] === OPERATOR.Equal) {\n // OPERATOR.NotEqual (!=)\n index += 2;\n }\n break;\n\n default:\n break;\n }\n if (index === start) {\n return null;\n }\n const type = TOKEN.Operator;\n const end = index;\n const op = source.slice(start, end);\n const error = null;\n return { type, op, start, end, error };\n };\n\n const scanNumericLiteral = () => {\n const start = index;\n while (index < length) {\n const cp = source.charCodeAt(index);\n if (!isDigit(cp)) {\n break;\n }\n ++index;\n }\n if (index <= start) {\n return null;\n }\n const dot = source[index];\n if (dot === '.') {\n ++index;\n while (index < length) {\n const cp = source.charCodeAt(index);\n if (!isDigit(cp)) {\n break;\n }\n ++index;\n }\n }\n const exp = source[index];\n if (exp === 'e' || exp === 'E') {\n ++index;\n const sign = source[index];\n if (sign === '+' || sign === '-') {\n ++index;\n }\n const marker = index;\n while (index < length) {\n const cp = source.charCodeAt(index);\n if (!isDigit(cp)) {\n break;\n }\n ++index;\n }\n if (index <= marker) {\n const type = TOKEN.Number;\n const end = index;\n const error = t`Missing exponent`;\n return { type, start, end, error };\n }\n }\n const type = TOKEN.Number;\n const end = index;\n const error = null;\n return { type, start, end, error };\n };\n\n const scanStringLiteral = () => {\n const start = index;\n const quote = source[start];\n if (quote !== \"'\" && quote !== '\"') {\n return null;\n }\n ++index;\n let value = '';\n while (index < length) {\n const ch = source[index++];\n if (ch === quote) {\n break;\n } else if (ch === '\\\\') {\n const seq = source[index++];\n if (seq) {\n switch (seq) {\n case 'b':\n value += '\\b';\n break;\n case 'f':\n value += '\\f';\n break;\n case 'n':\n value += '\\n';\n break;\n case 'r':\n value += '\\r';\n break;\n case 't':\n value += '\\t';\n break;\n case 'v':\n value += '\\x0b';\n break;\n default:\n value += seq;\n break;\n }\n }\n } else {\n value += ch;\n }\n }\n const type = TOKEN.String;\n const end = index;\n const terminated = quote === source[end - 1];\n const error = terminated ? null : t`Missing closing quotes`;\n return { type, value, start, end, error };\n };\n\n const scanBracketIdentifier = () => {\n const start = index;\n const bracket = source[start];\n if (bracket !== '[') {\n return null;\n }\n ++index;\n while (index < length) {\n const ch = source[index++];\n if (ch === ']') {\n break;\n } else if (ch === '[') {\n const type = TOKEN.Identifier;\n const end = index;\n const error = t`Bracket identifier in another bracket identifier`;\n return { type, start, end, error };\n } else if (ch === '\\\\') {\n // ignore the next char, even if it's [ or ]\n index++;\n }\n }\n const type = TOKEN.Identifier;\n const end = index;\n const terminated = source[end - 1] === ']';\n const error = terminated ? null : t`Missing a closing bracket`;\n return { type, start, end, error };\n };\n\n const isIdentifierStart = (cp) => isAlpha(cp) || cp === 0x5f; // underscore;\n\n const isIdentifierChar = (cp) =>\n isAlpha(cp) ||\n isDigit(cp) ||\n cp === 0x2e || // dot\n cp === 0x5f; // underscore\n\n const scanIdentifier = () => {\n const start = index;\n const initial = source.charCodeAt(start);\n if (!isIdentifierStart(initial)) {\n return null;\n }\n\n while (index < length) {\n const cp = source.charCodeAt(index);\n if (!isIdentifierChar(cp)) {\n break;\n }\n ++index;\n }\n const end = index;\n if (index === start) {\n return null;\n }\n const id = source.slice(start, end).toLowerCase();\n if (id === OPERATOR.Not || id === OPERATOR.And || id === OPERATOR.Or) {\n const type = TOKEN.Operator;\n const op = id;\n const error = null;\n return { type, op, start, end, error };\n }\n const type = TOKEN.Identifier;\n const error = null;\n return { type, start, end, error };\n };\n\n const main = () => {\n const tokens = [],\n errors = [];\n while (index < length) {\n skipWhitespaces();\n let token = scanOperator();\n if (!token) {\n token = scanNumericLiteral();\n }\n if (!token) {\n token = scanStringLiteral();\n }\n if (!token) {\n token = scanIdentifier();\n }\n if (!token) {\n token = scanBracketIdentifier();\n }\n if (token) {\n const { error, ...t } = token;\n tokens.push(t);\n if (error) {\n const message = error;\n const pos = t.start;\n errors.push({ message, pos });\n }\n } else {\n const char = source[index];\n if (!char) {\n break;\n }\n const pos = index;\n if (char === ']') {\n const prev = tokens[tokens.length - 1];\n const ref =\n prev && prev.type === TOKEN.Identifier ? source.slice(prev.start, prev.end) : null;\n const message = ref\n ? t`Missing an opening bracket for ${ref}`\n : t`Missing an opening bracket`;\n errors.push({ message, pos });\n } else {\n const message = t`Invalid character: ${char}`;\n errors.push({ message, pos });\n }\n ++index;\n }\n }\n return { tokens, errors };\n };\n\n return main();\n}\n","import _ from 'underscore';\n\nimport { tokenize, TOKEN, OPERATOR as OP } from './tokenizer';\nimport { functions } from '../../../../sql-formula';\nimport { MetaData_ColumnsType } from '../../../../store/types';\nimport { __ } from '../../../../locale';\nimport { ListProps } from '../dialog/select-list';\n\nexport enum OptionsTypeEnum {\n FUNCTION = 'function',\n FIELD = 'field',\n OPERATOR = 'operator',\n OTHER = 'other',\n}\n\nexport enum SelectPopupTypeEnum {\n FUNCTION_DESC = 'function_desc', // 弹函数描述提示框\n SELECT_LIST = 'select_list', // 弹select下拉框\n EMPTY = 'empty', // 不弹框\n}\n\ntype SelectPopup = {\n type: SelectPopupTypeEnum.SELECT_LIST;\n data: ListProps[];\n};\n\ntype FunctionPopup = {\n type: SelectPopupTypeEnum.FUNCTION_DESC;\n functionName: string;\n};\n\ntype VoidPopup = {\n type: SelectPopupTypeEnum.EMPTY;\n};\n\nexport type ChoosePopupResultType = SelectPopup | FunctionPopup | VoidPopup;\n\ninterface ChoosePopupType {\n source: string;\n targetOffset: number;\n fields: MetaData_ColumnsType[];\n}\n\nconst Operator = ['*', '+', '-', '/'];\n\nclass Suggest {\n /**\n * 主要是看光标前面是什么\n * 1、主动识别的有\n * 1)字段\n * ① 光标在[]中间 筛选只能在表字段列表筛选 如果没有匹配 则不显示弹框\n * ② 光标在]后面 显示运算符\n * ③ 光标在[前面 不用理\n * 2)字符串\n * ① 光标在字符串中间 筛选 函数、表字段\n * ② 光标在字符串后面 如果有匹配同上面① 如果没匹配 则不显示弹框\n * ③ 光标在字符串前面 不用理\n * 3)函数\n * ① 点函数名 筛选 函数、表字段\n * ② 函数括号里面 如果光标前面是(,或者后面是)提示函数详情\n * ③ 在)后面,显示运算符\n * ④ 在函数名前面 不用理会\n * 4)括号\n * ① 光标在(后面 显示所有函数、表字段\n * ① 光标在)后面 显示运算符弹框\n * ② 光标在(前面 或者在)前面 都不用理会\n * 5)运算符\n * ① 光标在前面显示运算符弹框\n * ② 光标在后面显示所有函数、表字段\n * 6)起点\n * ① 显示所有函数、表字段\n *\n * 2、不识别的有\n * 1)\"aaa\" 双引号字符串里面的 都不提示\n * 2)1234 数字里面\n * 3)前面包含特殊符号 ! @ ...\n *\n */\n // [ID] + power([ID], 2) * ([ID] - [ID]) + 123 + aaa\n choosePopup({ source, targetOffset, fields }: ChoosePopupType): ChoosePopupResultType {\n const partialSource = source.slice(0, targetOffset);\n // matchPrefix 只匹配 字符串 如:字段[id]、函数abs、字符串 aaa 其他都返回null,如果字符串外面“有双引号” 也是null\n const matchPrefix = partialMatch(partialSource);\n const _fields = fields.map((v) => v.name);\n\n // ① 没有匹配到 或者匹配到字段的\n if (!matchPrefix || _.last(matchPrefix) === ']') {\n const functionDisplayName = enclosingFunction(partialSource);\n // 匹配到在函数里面\n if (functionDisplayName) {\n return {\n type: SelectPopupTypeEnum.FUNCTION_DESC,\n functionName: functionDisplayName,\n };\n }\n\n // 匹配到是字段后面\n if (matchPrefix && _.last(matchPrefix) === ']') {\n return {\n type: SelectPopupTypeEnum.SELECT_LIST,\n data: [\n { name: __('customColumn.operator'), type: OptionsTypeEnum.OPERATOR, list: Operator },\n ],\n };\n }\n // 没有匹配到\n if (!matchPrefix) {\n let _partialSource = partialSource.replace(/\\s/g, '');\n let prevStr = _partialSource.substr(-1);\n if (_partialSource.length && !~Operator.indexOf(prevStr)) {\n return {\n type: SelectPopupTypeEnum.SELECT_LIST,\n data: [\n { name: __('customColumn.operator'), type: OptionsTypeEnum.OPERATOR, list: Operator },\n ],\n };\n } else {\n return {\n type: SelectPopupTypeEnum.SELECT_LIST,\n data: [\n { name: __('customColumn.field'), type: OptionsTypeEnum.FIELD, list: _fields },\n { name: 'FUNCTIONS', type: OptionsTypeEnum.FUNCTION, list: Object.keys(functions) },\n { name: __('customColumn.other'), type: OptionsTypeEnum.OTHER, list: ['('] },\n ],\n };\n }\n }\n }\n\n let fieldList = _fields.filter((v) => v.includes(matchPrefix));\n let funcList = Object.keys(functions).filter((v) => v.includes(matchPrefix));\n\n // ② 匹配到前面是字符串\n if (_.first(matchPrefix) !== '[') {\n let data = [];\n fieldList.length &&\n data.push({ name: __('customColumn.field'), type: OptionsTypeEnum.FIELD, list: fieldList });\n funcList.length &&\n data.push({ name: 'FUNCTIONS', type: OptionsTypeEnum.FUNCTION, list: funcList });\n if (data.length) {\n return {\n type: SelectPopupTypeEnum.SELECT_LIST,\n data,\n };\n }\n }\n\n fieldList = _fields.filter((v) => v.includes(matchPrefix.substr(1)));\n // ③ 匹配到前面是字段\n if (_.first(matchPrefix) === '[') {\n if (fieldList.length) {\n return {\n type: SelectPopupTypeEnum.SELECT_LIST,\n data: [{ name: __('customColumn.field'), type: OptionsTypeEnum.FIELD, list: fieldList }],\n };\n }\n }\n\n return { type: SelectPopupTypeEnum.EMPTY };\n }\n}\n\nexport default new Suggest();\n\nexport function partialMatch(expression: string) {\n const { tokens } = tokenize(expression);\n const lastToken = _.last(tokens);\n if (lastToken && lastToken.type === TOKEN.Identifier) {\n if (lastToken.end === expression.length) {\n return expression.slice(lastToken.start, lastToken.end);\n }\n }\n\n return null;\n}\n\nexport function enclosingFunction(expression: string) {\n const { tokens } = tokenize(expression);\n\n const isOpen = (t: any) => t.op === OP.OpenParenthesis;\n const isClose = (t: any) => t.op === OP.CloseParenthesis;\n\n let parenCount = 0;\n for (let i = tokens.length - 1; i > 0; --i) {\n const token = tokens[i];\n if (isClose(token)) {\n --parenCount;\n } else if (isOpen(token)) {\n ++parenCount;\n if (parenCount === 1) {\n const prev = tokens[i - 1];\n if (prev.type === TOKEN.Identifier) {\n return expression.slice(prev.start, prev.end);\n }\n }\n }\n }\n\n return null;\n}\n","// @ts-nocheck\nexport const DISPLAY_QUOTES = {\n identifierQuoteDefault: '',\n literalQuoteDefault: '',\n};\n\nexport const EDITOR_QUOTES = {\n // specifies where different quoting is used:\n characters: {\n '[': 'identifier',\n \"'\": 'literal',\n '\"': 'literal',\n },\n // specifies the default quoting style:\n literalQuoteDefault: '\"',\n identifierQuoteDefault: '[',\n // always quote identifiers even if they have non-word characters or conflict with reserved words\n identifierAlwaysQuoted: true,\n};\n\n// export const EDITOR_QUOTES = {\n// characters: {\n// \"'\": \"literal\",\n// '\"': \"identifier\",\n// },\n// literalQuoteDefault: \"'\",\n// identifierQuoteDefault: '\"',\n// identifierAlwaysQuoted: false,\n// };\n\nexport const EDITOR_FK_SYMBOLS = {\n // specifies which symbols can be used to delimit foreign/joined fields\n symbols: ['.', ' → '],\n // specifies the default/canonical symbol\n default: ' → ',\n};\n\n// copied relevant parts from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence\nexport const OPERATOR_PRECEDENCE = {\n not: 17,\n '*': 15,\n '/': 15,\n '+': 14,\n '-': 14,\n and: 6,\n or: 5,\n};\n\nexport const EXPRESSION_TYPES = ['expression', 'aggregation', 'boolean', 'string', 'number'];\n\nexport const EXPRESSION_SUBTYPES = {\n // can't currently add \"boolean\" as a subtype of expression due to conflict between segments and fields\n expression: new Set(['string', 'number']),\n};\n\nexport const isExpressionType = (typeA, typeB) =>\n typeA === typeB || (EXPRESSION_SUBTYPES[typeB] && EXPRESSION_SUBTYPES[typeB].has(typeA)) || false;\n\nexport function getFunctionArgType(clause, index) {\n return clause.multiple ? clause.args[0] : clause.args[index];\n}\n\nexport const MBQL_CLAUSES = {\n // aggregation functions\n count: { displayName: `Count`, type: 'aggregation', args: [] },\n 'cum-count': {\n displayName: `CumulativeCount`,\n type: 'aggregation',\n args: [],\n },\n sum: { displayName: `Sum`, type: 'aggregation', args: ['number'] },\n 'cum-sum': {\n displayName: `CumulativeSum`,\n type: 'aggregation',\n args: ['number'],\n },\n distinct: { displayName: `Distinct`, type: 'aggregation', args: ['number'] },\n stddev: {\n displayName: `StandardDeviation`,\n type: 'aggregation',\n args: ['number'],\n requiresFeature: 'standard-deviation-aggregations',\n },\n avg: { displayName: `Average`, type: 'aggregation', args: ['number'] },\n min: { displayName: `Min`, type: 'aggregation', args: ['number'] },\n max: { displayName: `Max`, type: 'aggregation', args: ['number'] },\n share: { displayName: `Share`, type: 'aggregation', args: ['boolean'] },\n 'count-where': {\n displayName: `CountIf`,\n type: 'aggregation',\n args: ['boolean'],\n },\n 'sum-where': {\n displayName: `SumIf`,\n type: 'aggregation',\n args: ['number', 'boolean'],\n },\n var: {\n displayName: `Variance`,\n type: 'aggregation',\n args: ['number'],\n requiresFeature: 'standard-deviation-aggregations',\n },\n median: {\n displayName: `Median`,\n type: 'aggregation',\n args: ['number'],\n requiresFeature: 'percentile-aggregations',\n },\n percentile: {\n displayName: `Percentile`,\n type: 'aggregation',\n args: ['number', 'number'],\n requiresFeature: 'percentile-aggregations',\n },\n // string functions\n lower: { displayName: `lower`, type: 'string', args: ['string'] },\n upper: { displayName: `upper`, type: 'string', args: ['string'] },\n substring: {\n displayName: `substring`,\n type: 'string',\n args: ['string', 'number', 'number'],\n },\n 'regex-match-first': {\n displayName: `regexextract`,\n type: 'string',\n args: ['string', 'string'],\n requiresFeature: 'regex',\n },\n concat: {\n displayName: `concat`,\n type: 'string',\n args: ['expression'],\n multiple: true,\n },\n replace: {\n displayName: `replace`,\n type: 'string',\n args: ['string', 'string', 'string'],\n },\n length: { displayName: `length`, type: 'number', args: ['string'] },\n trim: { displayName: `trim`, type: 'string', args: ['string'] },\n rtrim: { displayName: `rtrim`, type: 'string', args: ['string'] },\n ltrim: { displayName: `ltrim`, type: 'string', args: ['string'] },\n // numeric functions\n abs: {\n displayName: `abs`,\n type: 'number',\n args: ['number'],\n requiresFeature: 'expressions',\n },\n floor: {\n displayName: `floor`,\n type: 'number',\n args: ['number'],\n requiresFeature: 'expressions',\n },\n ceil: {\n displayName: `ceil`,\n type: 'number',\n args: ['number'],\n requiresFeature: 'expressions',\n },\n round: {\n displayName: `round`,\n type: 'number',\n args: ['number'],\n requiresFeature: 'expressions',\n },\n sqrt: {\n displayName: `sqrt`,\n type: 'number',\n args: ['number'],\n requiresFeature: 'advanced-math-expressions',\n },\n power: {\n displayName: `power`,\n type: 'number',\n args: ['number', 'number'],\n requiresFeature: 'advanced-math-expressions',\n },\n log: {\n displayName: `log`,\n type: 'number',\n args: ['number'],\n requiresFeature: 'advanced-math-expressions',\n },\n exp: {\n displayName: `exp`,\n type: 'number',\n args: ['number'],\n requiresFeature: 'advanced-math-expressions',\n },\n // boolean functions\n contains: {\n displayName: `contains`,\n type: 'boolean',\n args: ['string', 'string'],\n hasOptions: true,\n },\n 'starts-with': {\n displayName: `startsWith`,\n type: 'boolean',\n args: ['string', 'string'],\n hasOptions: true,\n },\n 'ends-with': {\n displayName: `endsWith`,\n type: 'boolean',\n args: ['string', 'string'],\n hasOptions: true,\n },\n between: {\n displayName: `between`,\n type: 'boolean',\n args: ['expression', 'expression', 'expression'],\n },\n 'time-interval': {\n displayName: `interval`,\n type: 'boolean',\n args: ['expression', 'number', 'string'],\n },\n 'is-null': {\n displayName: `isnull`,\n type: 'boolean',\n args: ['expression'],\n },\n 'is-empty': {\n displayName: `isempty`,\n type: 'boolean',\n args: ['expression'],\n },\n // other expression functions\n coalesce: {\n displayName: `coalesce`,\n type: 'expression',\n args: ['expression', 'expression'],\n multiple: true,\n },\n case: {\n displayName: `case`,\n type: 'expression',\n args: ['expression', 'expression'], // ideally we'd alternate boolean/expression\n multiple: true,\n },\n // boolean operators\n and: { displayName: `AND`, type: 'boolean', args: ['boolean', 'boolean'] },\n or: { displayName: `OR`, type: 'boolean', args: ['boolean', 'boolean'] },\n not: { displayName: `NOT`, type: 'boolean', args: ['boolean'] },\n // numeric operators\n '*': {\n displayName: '*',\n tokenName: 'Multi',\n type: 'number',\n args: ['number', 'number'],\n },\n '/': {\n displayName: '/',\n tokenName: 'Div',\n type: 'number',\n args: ['number', 'number'],\n },\n '-': {\n displayName: '-',\n tokenName: 'Minus',\n type: 'number',\n args: ['number', 'number'],\n },\n '+': {\n displayName: '+',\n tokenName: 'Plus',\n type: 'number',\n args: ['number', 'number'],\n },\n // comparison operators\n '!=': {\n displayName: '!=',\n tokenName: 'NotEqual',\n type: 'boolean',\n args: ['expression', 'expression'],\n },\n '<=': {\n displayName: '<=',\n tokenName: 'LessThanEqual',\n type: 'boolean',\n args: ['expression', 'expression'],\n },\n '>=': {\n displayName: '>=',\n tokenName: 'GreaterThanEqual',\n type: 'boolean',\n args: ['expression', 'expression'],\n },\n '<': {\n displayName: '<',\n tokenName: 'LessThan',\n type: 'boolean',\n args: ['expression', 'expression'],\n },\n '>': {\n displayName: '>',\n tokenName: 'GreaterThan',\n type: 'boolean',\n args: ['expression', 'expression'],\n },\n '=': {\n displayName: '=',\n tokenName: 'Equal',\n type: 'boolean',\n args: ['expression', 'expression'],\n },\n};\n\nfor (const [name, clause] of Object.entries(MBQL_CLAUSES)) {\n if (clause.name !== undefined && clause.name !== name) {\n console.warn('Mismatched name for MBQL_CLAUSES ' + name);\n }\n clause.name = name;\n}\n\n// Reserved token names\nconst MBQL_TO_EXPRESSION_NAME = new Map(\n Object.entries(MBQL_CLAUSES).map(([mbql, { displayName }]) => [mbql, displayName]),\n);\nconst EXPRESSION_TO_MBQL_NAME = new Map(\n Object.entries(MBQL_CLAUSES).map(([mbql, { displayName }]) => [\n // case-insensitive\n displayName.toLowerCase(),\n mbql,\n ]),\n);\nexport function getExpressionName(mbqlName) {\n return MBQL_TO_EXPRESSION_NAME.get(mbqlName);\n}\nexport function getMBQLName(expressionName) {\n // case-insensitive\n return EXPRESSION_TO_MBQL_NAME.get(expressionName.toLowerCase());\n}\n\nexport const AGGREGATION_FUNCTIONS = new Set([\n // count-where/sum-where must come before count/sum\n 'count-where',\n 'sum-where',\n 'count',\n 'cum-count',\n 'sum',\n 'cum-sum',\n 'distinct',\n 'stddev',\n 'avg',\n 'min',\n 'max',\n 'share',\n 'var',\n 'median',\n 'percentile',\n]);\n\nexport const EXPRESSION_FUNCTIONS = new Set([\n // string\n 'lower',\n 'upper',\n 'substring',\n 'regex-match-first',\n 'concat',\n 'replace',\n 'trim',\n 'rtrim',\n 'ltrim',\n 'length',\n // number\n 'abs',\n 'floor',\n 'ceil',\n 'round',\n 'sqrt',\n 'power',\n 'log',\n 'exp',\n // boolean\n 'contains',\n 'ends-with',\n 'starts-with',\n 'between',\n 'time-interval',\n 'is-null',\n 'is-empty',\n // other\n 'coalesce',\n]);\n\nexport const EXPRESSION_OPERATORS = new Set(['+', '-', '*', '/']);\nexport const FILTER_OPERATORS = new Set(['!=', '<=', '>=', '<', '>', '=']);\n\nexport const BOOLEAN_UNARY_OPERATORS = new Set(['not']);\nexport const LOGICAL_AND_OPERATOR = new Set(['and']);\nexport const LOGICAL_OR_OPERATOR = new Set(['or']);\n\nexport const FUNCTIONS = new Set([...EXPRESSION_FUNCTIONS, ...AGGREGATION_FUNCTIONS]);\n\nexport const OPERATORS = new Set([\n ...EXPRESSION_OPERATORS,\n ...FILTER_OPERATORS,\n ...BOOLEAN_UNARY_OPERATORS,\n ...LOGICAL_AND_OPERATOR,\n ...LOGICAL_OR_OPERATOR,\n]);\n\n// \"standard\" filters, can be edited using UI\nexport const STANDARD_FILTERS = new Set([\n '!=',\n '<=',\n '>=',\n '<',\n '>',\n '=',\n 'contains',\n 'does-not-contain',\n 'ends-with',\n 'starts-with',\n 'between',\n 'time-interval',\n 'is-null',\n 'not-null',\n 'is-empty',\n 'not-empty',\n 'inside',\n]);\n\n// \"standard\" aggregations, can be edited using UI\nexport const STANDARD_AGGREGATIONS = new Set([\n 'count',\n 'cum-count',\n 'sum',\n 'cum-sum',\n 'distinct',\n 'stddev',\n 'avg',\n 'min',\n 'max',\n]);\n","/* eslint-disable react/prop-types */\nimport React from 'react';\n\nimport './tokenized-expression.less';\n\nimport cx from 'classnames';\n\nimport { tokenize, TOKEN, OPERATOR } from './expressions/tokenizer';\nimport { getMBQLName, FUNCTIONS } from './config';\n\ninterface TokenType {\n type: number;\n op: string;\n}\n\nfunction mapTokenType(token: TokenType) {\n const { type, op } = token;\n switch (type) {\n case TOKEN.Operator:\n return op === OPERATOR.OpenParenthesis\n ? 'open-paren'\n : op === OPERATOR.CloseParenthesis\n ? 'close-paren'\n : 'operator';\n case TOKEN.Number:\n return 'number-literal';\n case TOKEN.String:\n return 'string-literal';\n case TOKEN.Identifier:\n // FIXME metric vs dimension vs segment\n return 'dimension';\n default:\n return 'token';\n }\n}\n\nfunction createSpans(source: string) {\n const isFunction = (name: string) =>\n name.toLowerCase() === 'case' || FUNCTIONS.has(getMBQLName(name) as string);\n const { tokens } = tokenize(source);\n let lastPos = 0;\n const spans = [];\n tokens.forEach((token) => {\n const str = source.substring(lastPos, token.start);\n if (str.length > 0) {\n spans.push({\n kind: 'whitespace',\n text: str,\n });\n }\n const text = source.substring(token.start, token.end);\n const kind = isFunction(text) ? 'function-name' : mapTokenType(token);\n spans.push({ kind, text });\n lastPos = token.end;\n });\n const tail = source.substring(lastPos);\n if (tail.length > 0) {\n spans.push({\n kind: 'whitespace',\n text: tail,\n });\n }\n return spans;\n}\n\ninterface PropsType {\n startRule: string;\n source: string;\n}\nexport default class TokenizedExpression extends React.Component<PropsType> {\n render() {\n const { source, startRule } = this.props;\n const spans = createSpans(source);\n return (\n <span className={cx(`Expression-node`, `Expression-${startRule}`)}>\n {spans.map(({ kind, text }, index) => (\n <span key={index} className={cx(`Expression-node`, `Expression-${kind}`)}>\n {text}\n </span>\n ))}\n </span>\n );\n }\n}\n","import React, { forwardRef } from 'react';\nimport ReactDOM from 'react-dom';\nimport ReactDOMServer from 'react-dom/server';\n\nimport { getCaretPosition, saveSelection, setCaretPosition } from '../../../utils/selection';\n\nimport TokenizedExpression from './tokenized-expression';\n\ninterface PropsType {\n forwardedRef?: any;\n style: object;\n className: string;\n value: string;\n onFocus: (e?: any) => any;\n onBlur: (e?: any) => any;\n onChange: (e?: any) => any;\n onKeyDown: (e?: any) => any;\n onClick: (e?: any) => any;\n}\n\nclass TokenizedInput extends React.Component<PropsType> {\n static defaultProps = {\n style: {},\n };\n\n componentDidMount() {\n (ReactDOM.findDOMNode(this) as HTMLDivElement).focus();\n this.componentDidUpdate();\n document.addEventListener('selectionchange', this.onSelectionChange, false);\n }\n\n componentDidUpdate() {\n const inputNode = ReactDOM.findDOMNode(this);\n const restore = saveSelection(inputNode);\n\n (inputNode as HTMLDivElement).innerHTML = ReactDOMServer.renderToStaticMarkup(\n <TokenizedExpression source={this.props.value || ''} startRule={'expression'} />,\n );\n if (document.activeElement === inputNode) {\n restore();\n }\n }\n\n componentWillUnmount() {\n document.removeEventListener('selectionchange', this.onSelectionChange, false);\n }\n\n onSelectionChange = (e: any) => {\n (ReactDOM.findDOMNode(this) as HTMLInputElement).selectionStart = getCaretPosition(\n ReactDOM.findDOMNode(this),\n );\n };\n\n setValue(value: string) {\n (ReactDOM.findDOMNode(this) as HTMLInputElement).value = value;\n this.props.onChange({ target: { value } });\n }\n\n onInput = (e: any) => {\n this.setValue(e.target.textContent);\n };\n\n render() {\n const { className, onFocus, onBlur, onKeyDown, onClick, style, forwardedRef } = this.props;\n return (\n <div\n ref={forwardedRef}\n className={className}\n style={{ ...style }}\n contentEditable\n spellCheck={false}\n onInput={this.onInput}\n onFocus={onFocus}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n onClick={onClick}\n />\n );\n }\n}\n\nexport default forwardRef(function TokenizedInputWithForwardedRef(\n props: Omit<PropsType, 'forwardedRef'> & { ref?: any },\n ref,\n) {\n return <TokenizedInput forwardedRef={ref} {...props} />;\n});\n","import { throttle, debounce } from './helper';\n\ntype EventStackType = {\n [propName: number]: Function;\n};\n\ninterface ResetEvent {\n eventStack: EventStackType;\n funcId: number;\n\n addEvent(a: Function, c: any): number;\n removeEvent(a: number): void;\n reset(): void;\n}\n\nclass WinResetEvent implements ResetEvent {\n eventStack: EventStackType = {};\n funcId: number = 0;\n\n constructor() {\n this.reset();\n }\n\n addEvent(fn: Function, context: any = null, delay: number = 200): number {\n this.funcId++;\n this.eventStack[this.funcId] = throttle(fn.bind(context), delay);\n return this.funcId;\n }\n\n removeEvent(funcId: number) {\n delete this.eventStack[funcId];\n }\n\n reset() {\n window.addEventListener('resize', () => {\n Object.values(this.eventStack).forEach((cb) => {\n typeof cb === 'function' && cb();\n });\n });\n }\n}\n\nexport const winResetEvent = new WinResetEvent();\n","import * as React from 'react';\nimport { useRef, useEffect, forwardRef, useImperativeHandle } from 'react';\nimport ReactDOM from 'react-dom';\n\ninterface PropsType {\n didUpdate?: Function;\n getContainer: Function;\n children?: React.ReactNode;\n}\n\nconst Portal = forwardRef((props: PropsType, ref) => {\n const { didUpdate, getContainer, children = null } = props;\n\n const containerRef: any = useRef();\n\n // Ref return nothing, only for wrapper check exist\n useImperativeHandle(ref, () => ({}));\n\n // Create container in client side with sync to avoid useEffect not get ref\n const initRef = useRef(false);\n if (!initRef.current) {\n containerRef.current = getContainer();\n initRef.current = true;\n }\n\n useEffect(() => {\n setTimeout(() => {\n didUpdate?.(props, containerRef.current);\n }, 0);\n });\n\n useEffect(() => {\n return () => {\n containerRef.current?.parentNode?.removeChild(containerRef.current);\n };\n }, []);\n\n return containerRef.current ? ReactDOM.createPortal(children, containerRef.current) : null;\n});\n\nexport default Portal;\n","import * as React from 'react';\n\nimport {\n getWindowSize,\n getScrollTop,\n getElementLeft,\n getElementTop,\n getContainerVisibleHeight,\n} from '../utils/helper-dom';\nimport { winResetEvent } from '../utils/event';\nimport Portal from '../common/Portal';\n\nfunction returnDocument(element?: any): Document {\n if (element) {\n return element.ownerDocument;\n }\n return window.document;\n}\n\nconst outSpacing = 10;\n\nexport function generateTrigger(PortalComponent: any) {\n class Trigger extends React.Component<PropsType> {\n resizeObserver: ResizeObserver | null = null; // 显式声明 resizeObserver 属性\n resetId: number = -1; // 监听窗口改变事件id 用于组件销毁的时候清除事件\n\n static defaultProps = {\n visible: false, // 是否显示\n children: null,\n };\n\n ref: any = React.createRef();\n\n constructor(props: PropsType) {\n super(props);\n }\n\n componentDidMount() {\n this.resetId = winResetEvent.addEvent(this.didUpdate, this, 300);\n this.props.container && this.props.container.addEventListener('scroll', this.didUpdate);\n this.bindEvent();\n // 延迟绑定 ResizeObserver 到 ensure the element is ready\n this.initResizeObserver();\n }\n componentDidUpdate(prevProps: PropsType) {\n // 如果 children 发生变化,重新初始化观察器\n if (prevProps.children !== this.props.children) {\n this.initResizeObserver();\n }\n }\n\n componentWillUnmount() {\n winResetEvent.removeEvent(this.resetId);\n this.props.container && this.props.container.removeEventListener('scroll', this.didUpdate);\n\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n this.resizeObserver = null;\n }\n }\n\n // children高度变化后,从新计算高度\n initResizeObserver = () => {\n const targetNode = this.ref.current;\n\n if (!targetNode) return;\n\n // 如果已经存在 ResizeObserver,先断开连接\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n\n // 初始化 ResizeObserver 并开始观察目标节点\n this.resizeObserver = new ResizeObserver((entries) => {\n entries.forEach((entry) => {\n this.didUpdate();\n });\n });\n\n this.resizeObserver.observe(targetNode);\n };\n bindEvent = () => {\n let that = this;\n returnDocument().body.addEventListener(\n 'click',\n function (e): void | false {\n let ele: any = e.target;\n\n while (ele != null) {\n if (ele === that.props.node) {\n return false;\n }\n ele = ele.parentNode;\n }\n that.closePopup();\n },\n false,\n );\n };\n\n closePopup = () => {\n this.props.visible && this.props.closable && this.props.hideVisible();\n };\n\n attachParent = (popupContainer: HTMLSpanElement) => {\n let mountNode = this.props.container || returnDocument().body;\n mountNode.appendChild(popupContainer);\n };\n\n getCurrentNodePos = () => {\n const { node, container } = this.props;\n return {\n x: getElementLeft(node) - getElementLeft(container),\n y: getElementTop(node) - getElementTop(container),\n t: getElementTop(container),\n h: node.offsetHeight,\n };\n };\n\n getContainer = () => {\n let pos = this.getCurrentNodePos();\n let { innerSpacing = 10, zIndex } = this.props;\n\n const popupContainer: HTMLSpanElement = returnDocument().createElement('span');\n popupContainer.style.position = 'absolute';\n popupContainer.style.top = '0px';\n popupContainer.style.left = '0px';\n popupContainer.style.transform = `translateX(${pos.x}px) translateY(${\n pos.y + pos.h + innerSpacing\n }px) translateZ(0px)`;\n popupContainer.style.pointerEvents = 'none';\n popupContainer.style.zIndex = zIndex || '999';\n this.attachParent(popupContainer);\n return popupContainer;\n };\n\n getComponent = () => {\n const posKey = JSON.stringify(this.getCurrentNodePos());\n return (\n <div\n ref={this.ref}\n style={{\n overflowX: 'hidden',\n overflowY: 'auto',\n backgroundColor: '#fff',\n pointerEvents: 'auto',\n transition: 'all 0.3s',\n boxShadow: '0 4px 10px rgba(0,0,0,0.13)',\n borderRadius: 6,\n }}\n onClick={(e) => this.props.closable && e.stopPropagation()}\n onMouseDown={(e) => e.stopPropagation()}\n >\n {React.cloneElement(this.props.children, {\n key: posKey,\n didUpdate: this.didUpdate,\n })}\n </div>\n );\n };\n\n didUpdate = (): void | false => {\n if (!this.props.node) return false;\n\n let { innerSpacing = 10, container } = this.props;\n let pos = this.getCurrentNodePos();\n let posY = pos.y - getScrollTop(container);\n\n if (!this.ref) return false;\n let realHeight = this.ref?.current?.childNodes?.[0]?.offsetHeight || 0;\n if (!realHeight) return false;\n let { height: winH } = getWindowSize();\n let containerH = getContainerVisibleHeight(container);\n let downH = (containerH || winH) - posY - pos.h; // 元素下面可用高度\n\n let maxHeight = 0;\n let topHeight = getScrollTop(container);\n if (downH >= posY || realHeight <= downH - innerSpacing - outSpacing) {\n // 下面比上面宽敞 或 下面足够放下所有 放下面\n maxHeight = Math.min(realHeight, downH - innerSpacing - outSpacing);\n topHeight += posY + pos.h + innerSpacing;\n } else {\n // 放上面\n maxHeight = Math.min(realHeight, posY - innerSpacing - outSpacing);\n topHeight += posY - innerSpacing - maxHeight;\n }\n this.ref.current.offsetParent.style.transform = `translateX(${pos.x}px) translateY(${topHeight}px) translateZ(0px)`;\n this.ref.current.offsetParent.style.transition = 'all 0.3s';\n this.ref.current.style.cssText += `max-height: ${maxHeight}px`;\n };\n\n render() {\n let portal = null;\n if (this.props.visible) {\n portal = (\n <PortalComponent getContainer={this.getContainer} didUpdate={this.didUpdate}>\n {this.getComponent()}\n </PortalComponent>\n );\n }\n return portal;\n }\n }\n\n return Trigger;\n}\n\nexport default generateTrigger(Portal);\n\ninterface PropsType {\n visible: boolean;\n children: any;\n hideVisible: Function;\n node: any;\n innerSpacing?: number;\n container?: HTMLDivElement;\n zIndex?: string | null;\n closable?: boolean;\n}\n","/**\n * 选择保留哪些表字段\n * 谁在用?\n * 1、数据模块\n * 2、关联模块\n */\nimport './index.less';\nimport React, { useEffect, useMemo, useState } from 'react';\nimport cloneDeep from 'lodash/cloneDeep';\nimport cx from 'classnames';\nimport { Button, Modal, Input, Tooltip } from '@gingkoo/pandora';\n\nimport { MetaData_ColumnsType } from '../../../store/types';\nimport { __ } from '../../../locale';\nimport { NotSelectIcon, SelectIcon } from '../../icons';\nimport { useStore } from '../../../hooks/use-provider';\nimport { uuidv4 } from '../../../utils/helper';\nimport { changeFieldAlias } from '../../../utils';\nimport { SearchIcon } from '../../icons';\n\ninterface PropsType {\n data: MetaData_ColumnsType[]; // 列表数据\n groupIndex: number;\n onChange: (record: MetaData_ColumnsType[]) => void; // 选中回调事件\n}\n\n// 选择表中参数\nconst SelectColumn = ({ data = [], groupIndex, onChange }: PropsType) => {\n const [columns, setColumns] = useState<MetaData_ColumnsType[]>([]);\n const [originList, setOriginList] = useState<MetaData_ColumnsType[]>(data.slice());\n const store = useStore();\n const [filterVal, setFilterVal] = useState('');\n\n useEffect(() => {\n let newList = cloneDeep(originList.slice());\n setColumns(\n newList.filter(\n (v: any) =>\n ~(v.name + (v.name_zh || '')).toLocaleLowerCase().indexOf(filterVal.toLocaleLowerCase()),\n ),\n );\n }, [filterVal, originList]);\n\n function onInput(e: any) {\n let val = e.target.value;\n setFilterVal(val);\n }\n\n const isAllSelect = useMemo(() => {\n return originList.filter((v: any) => v.select).length === originList.length;\n }, [originList]);\n\n const AllSelectElement = useMemo(() => {\n if (isAllSelect) {\n return (\n <>\n <div className='selected mr-2 flex iteams-center justify-center'>\n <SelectIcon />\n </div>\n {__('SqlQueryBuilder.selectColumnAll')}\n </>\n );\n } else {\n return (\n <>\n <div className='no-select mr-2 flex iteams-center justify-center'>\n <NotSelectIcon />\n </div>\n {__('SqlQueryBuilder.selectColumnAll')}\n </>\n );\n }\n }, [isAllSelect]);\n\n function onSelect(columns: MetaData_ColumnsType[]) {\n const originalData = cloneDeep(originList); // 原始数据\n const mergedColumns = originalData.map((item) => {\n const match = columns.find((col) => col.fieldUuid === item.fieldUuid);\n return match ? cloneDeep(match) : item; // 可选:是否需要深拷贝 match\n });\n\n setColumns(columns);\n setOriginList(mergedColumns);\n typeof onChange === 'function' && onChange(mergedColumns);\n }\n\n const onChangeFieldAlias = (val: string, i: number) => {\n let fieldAlias = val || '';\n\n Modal.confirm({\n title: __('SqlQueryBuilder.alias'), // 设置别名\n content: (\n <Input\n defaultValue={fieldAlias}\n onChange={(val) => {\n fieldAlias = val;\n }}\n ></Input>\n ),\n onOk: () => {\n let newColumns = cloneDeep(columns);\n let newMetaList = store.metaList[groupIndex].list.slice();\n\n newColumns[i].fieldAlias = fieldAlias;\n newColumns[i].fieldUuid = newColumns[i].fieldUuid || uuidv4('field');\n\n newMetaList = changeFieldAlias(newMetaList, newColumns[i]);\n store.setMeta(newMetaList, groupIndex);\n onSelect(newColumns);\n setTimeout(() => {\n store.setClosable(true);\n }, 0);\n },\n onCancel: () => {\n setTimeout(() => {\n store.setClosable(true);\n }, 0);\n },\n });\n };\n\n return (\n <div className={`Sqb-SelectColumn--box`}>\n <div className='pt-2'>\n <div\n className={cx(`SelectColumn-border mb-2 pb-2 px-2 flex items-center`, {\n // 'events-none': isAllSelect\n })}\n onClick={() => {\n let newColumns = columns.map((v: any) => ({ ...v, select: !isAllSelect }));\n onSelect(newColumns);\n }}\n >\n {AllSelectElement}\n </div>\n <div className={cx(`Sqb-SelectColumn-search m-2 rounded-lg`)}>\n <span className={'px-2'}>\n <SearchIcon />\n </span>\n <input\n type='text'\n autoFocus\n className={'p-1'}\n placeholder={__('data.search')}\n onInput={onInput}\n />\n </div>\n {Array.isArray(columns) &&\n columns.map((v, i) => {\n return (\n <div\n key={v.name}\n className='pb-2 px-2 flex items-center'\n onClick={() => {\n let newColumns = cloneDeep(columns);\n newColumns[i].select = !v.select;\n onSelect(newColumns);\n }}\n >\n {v.select ? (\n <div className='selected mr-2 flex iteams-center justify-center'>\n <SelectIcon />\n </div>\n ) : (\n <div className='no-select mr-2'></div>\n )}\n {v.name}\n {v.name_zh ? ` (${v.name_zh})` : ''}\n {v.fieldAlias ? ` as ${v.fieldAlias}` : ''}\n\n <Tooltip title={__('SqlQueryBuilder.alias')}>\n <Button\n className={':Sqb-TableName-as'}\n shape='circle'\n iconOnly\n primary={!!v.fieldAlias}\n ghost\n icon={'As'}\n size='small'\n onClick={(e) => {\n e.stopPropagation();\n store.setClosable(false);\n let newColumns = cloneDeep(columns);\n onChangeFieldAlias(newColumns[i].fieldAlias || '', i);\n }}\n ></Button>\n </Tooltip>\n </div>\n );\n })}\n </div>\n </div>\n );\n};\n\nexport default SelectColumn;\n","import { SQL_COLUMN_TYPE } from '../../store/enum';\n\nexport const NUMBER_GROUP = [SQL_COLUMN_TYPE.FLOAT, SQL_COLUMN_TYPE.LONG, SQL_COLUMN_TYPE.CURRENCY];\nexport const STRING_GROUP = [SQL_COLUMN_TYPE.STRING];\nexport const DATE_GROUP = [SQL_COLUMN_TYPE.DATE];\n","/**\n * 选择表字段当条件\n * 谁在用?\n * 1、关联模块\n * 2、过滤器模块\n * 3、聚合模块\n * 4、排序模块\n */\nimport './index.less';\nimport React, { useEffect, useState } from 'react';\nimport { Menu, Popover } from '@gingkoo/pandora';\nimport cloneDeep from 'lodash/cloneDeep';\nimport cx from 'classnames';\n\nimport { ColumnsPopupThemeEnum, SQL_GROUP_TYPE, SQL_COLUMN_TYPE } from '../../../store/enum';\nimport { SummarizeAlias } from '../../../store/helper';\nimport { MetaData_ColumnsType, MetaJoin_TalbeType } from '../../../store/types';\nimport { DatasourceType } from '../../../types';\nimport { __ } from '../../../locale';\nimport { NUMBER_GROUP, DATE_GROUP } from '../const';\n\nimport { useStore } from '../../../hooks/use-provider';\nimport { replaceTpl } from '../../../utils/helper';\n\nimport {\n SearchIcon,\n TableIcon,\n CircleIcon,\n LetterAaIcon,\n CalendarIcon,\n WellIcon,\n ForeignKeyIcon,\n UpArrowIcon2,\n DownArrowIcon2,\n RightArrowIcon,\n} from '../../icons';\n\nexport const DATE_GROUP_MAP = new Map([\n ['分', '分'],\n ['时', '时'],\n ['天', '天'],\n ['周', '周'],\n ['月', '月'],\n ['季度', '季度'],\n ['一小时内的分钟数', '一小时内的分钟数'],\n ['一天内的小时数', '一天内的小时数'],\n ['一周内的天数', '一周内的天数'],\n ['一月内的天数', '一月内的天数'],\n ['一年内的天数', '一年内的天数'],\n ['一年的星期数', '一年的星期数'],\n ['一年的月数', '一年的月数'],\n]);\n\nexport const NUMBER_GROUP_MAP = new Map([\n ['自动间隔', '自动分组'],\n ['10个刻度间隔', '10 刻度间隔'],\n ['间隔50', '50 刻度间隔'],\n ['间隔100', '100 刻度间隔'],\n ['无间隔', ''],\n]);\n\nconst IconMap: any = {\n CHAR: <LetterAaIcon />,\n VARCHAR: <LetterAaIcon />,\n CLOB: <LetterAaIcon />,\n DOUBLE: <WellIcon />,\n SMALLINT: <WellIcon />,\n BIGINT: <WellIcon />,\n INTEGER: <WellIcon />,\n TIMESTAMP: <CalendarIcon />,\n PK: <CircleIcon />,\n FK: <ForeignKeyIcon />,\n};\n\nconst OPEN_GROUP = false; // mr.chen 说不弄这块 弄个开关防止后面要用\n\nexport interface ColumnType {\n table: string; // 表名\n tableId: string; //表id\n tableUuid: string; // 表唯一标识\n fieldUuid: string;\n fieldAlias: string;\n alias: string; // 表的别名\n name: string; // 字段名\n database_type: SQL_COLUMN_TYPE | ''; // 字段类型\n sql?: string; // 聚合过来会带上sql字段\n id: string; //字段id\n datasourceId: string; // 数据源id\n datasourceName: string; // 数据源名\n quotes?: string; //展示\n // column: string;\n // column_id: string;\n table2?: Omit<MetaJoin_TalbeType, 'column' | 'column_id'> | null;\n}\n\nexport interface ColumnGroupType {\n condition: string; // 条件 聚合by过来的会有这个\n quotes: string; // 展示用户看的 组装的文字\n}\n\nexport type DataType = Partial<DatasourceType> & {\n table: string; // 表名\n tableId: string; // 表id\n tableUuid: string; // 表唯一标识\n alias: string; // 表的别名\n columns: MetaData_ColumnsType[];\n};\n\ninterface PropsType {\n data: DataType[];\n value: ColumnType & Partial<ColumnGroupType>;\n theme: ColumnsPopupThemeEnum;\n isGroup?: boolean; // isGroup 为true 则选择函数用 onGroup 否则 用 onSelect (只有聚合的by列表才会为true)\n onSelect?: (\n record: ColumnType &\n DatasourceType & {\n realName: string;\n },\n ) => void;\n onGroup?: (\n record: ColumnType &\n ColumnGroupType & {\n realName?: string;\n },\n ) => void;\n didUpdate?: Function; // 刷新弹框\n}\ntype TableListType = DataType & { open: boolean; searchText: string };\n\nconst SelectJoinColumn = ({\n data = [],\n value: _value,\n theme = ColumnsPopupThemeEnum.skyBlue,\n onSelect,\n isGroup,\n onGroup,\n didUpdate,\n}: PropsType) => {\n const store = useStore();\n const [value, setValue] = useState(_value); // 当前选择的字段\n const [curTable, setCurTable] = useState(_value.tableUuid); // 当前选择的表\n const [curColumn, setCurColumn] = useState(_value.name); // 当前选择的字段\n\n const [tableList, setTableList] = useState<TableListType[]>(\n data.map((v: DataType, i: number) => {\n let open = !i && !_value.tableUuid ? true : v.tableUuid === _value.tableUuid; // TODO.这里只判断表名相等 没有用了 因为表上面加了一层数据源 先这样吧\n return {\n ...v,\n open,\n searchText: '',\n columns: v.columns.slice(),\n };\n }),\n );\n useEffect(() => {\n setValue(_value);\n setCurTable(_value.tableUuid);\n setCurColumn(_value.name);\n }, [_value]);\n useEffect(() => {\n setTableList(\n data.map((v: DataType, i: number) => {\n let open = !i && !_value.tableUuid ? true : v.tableUuid === _value.tableUuid; // TODO.这里只判断表名相等 没有用了 因为表上面加了一层数据源 先这样吧\n return {\n ...v,\n open,\n searchText: '',\n columns: v.columns.slice(),\n };\n }),\n );\n }, [data, _value]);\n\n useEffect(() => {\n didUpdate?.();\n }, [tableList]);\n\n function onInput(val: string, tableAlias: string) {\n let newData = cloneDeep(tableList).map((v: TableListType, i: number) => {\n if (v.alias === tableAlias) {\n return {\n ...v,\n columns: data[i]?.columns.filter(\n (v: MetaData_ColumnsType) =>\n ~(v.name + (v.name_zh || '')).toLocaleLowerCase().indexOf(val.toLocaleLowerCase()),\n ),\n searchText: val,\n };\n }\n return v;\n });\n setTableList(newData);\n }\n\n const _condition = value?.condition || '';\n return (\n <div className={cx(`Sqb-SelectColumns--box ${theme}`)}>\n <div style={{ width: isGroup && OPEN_GROUP ? 400 : 300 }}>\n {tableList.map((tableItem: TableListType) => {\n let {\n alias: tableAlias,\n table,\n tableId,\n columns,\n open,\n searchText,\n datasourceId = '',\n datasourceName = '',\n tableUuid = '',\n } = tableItem;\n let isMultiple = tableList.length > 1;\n\n let isSummarize = tableAlias === SummarizeAlias;\n return (\n <div key={tableUuid || tableAlias}>\n {!isSummarize && (\n <div className={cx(`Sqb-List-section`)}>\n <div\n className={cx(`Sqb-List-title mx-4 pb-4 pt-4`, {\n shrink: isMultiple,\n active: open,\n })}\n onClick={(): void => {\n if (!isMultiple) return void 0;\n let newTables = cloneDeep(tableList);\n if (open) {\n setTableList(\n newTables.map((v: TableListType) => ({\n ...v,\n open: tableUuid === v.tableUuid ? false : v.open,\n })),\n );\n } else {\n setTableList(\n newTables.map((v: TableListType) => ({\n ...v,\n open: tableUuid === v.tableUuid || v.alias === SummarizeAlias,\n })),\n );\n }\n }}\n >\n <div className='List-item'>\n <span className={'List-item-icon'}>\n <TableIcon />\n </span>\n <div style={{ overflow: 'hidden' }}>\n <h3\n className={'List-item-title ml-2'}\n title={\n datasourceName\n ? `${datasourceName}.${tableAlias || table}`\n : tableAlias || table\n }\n >\n {datasourceName\n ? `${datasourceName}.${tableAlias || table}`\n : tableAlias || table}\n </h3>\n </div>\n {isMultiple && (\n <span className={'List-title-arrow'}>\n {open ? <UpArrowIcon2 /> : <DownArrowIcon2 />}\n </span>\n )}\n </div>\n </div>\n </div>\n )}\n\n {(open || isSummarize) && (\n <>\n {!isSummarize && (\n <div className={cx(`Sqb-List-section`)}>\n <div className={cx(`Sqb-List-search m-2 rounded-lg`)}>\n <span className={'px-2'}>\n <SearchIcon />\n </span>\n <input\n type='text'\n className={'p-2'}\n autoFocus\n value={searchText}\n placeholder={__('joinData.search')}\n onChange={() => {}}\n onInput={(e: any) => onInput(e.target.value, tableAlias)}\n />\n </div>\n </div>\n )}\n {Array.isArray(columns) &&\n columns.map((v: MetaData_ColumnsType & { sql?: string }) => {\n let { special_type, database_type, name, realName = '' } = v;\n\n let groupe: SQL_GROUP_TYPE = SQL_GROUP_TYPE.STRING;\n // @ts-ignore\n if (~NUMBER_GROUP.indexOf(database_type)) {\n groupe = SQL_GROUP_TYPE.NUMBER;\n }\n // @ts-ignore\n if (~DATE_GROUP.indexOf(database_type)) {\n groupe = SQL_GROUP_TYPE.DATE;\n }\n\n let showCondition =\n curColumn === name && curTable === tableUuid && _condition;\n return (\n <div className={cx(`Sqb-List-section`)} key={name}>\n <div\n className={cx(`Sqb-List-item mx-2`, {\n active: curColumn === name && curTable === tableUuid,\n })}\n onClick={() => {\n if (isGroup && typeof onGroup === 'function') {\n let condition = '';\n let quotes = name;\n if (OPEN_GROUP) {\n if (groupe === SQL_GROUP_TYPE.DATE) {\n condition = '月';\n }\n if (groupe === SQL_GROUP_TYPE.NUMBER) {\n condition = '自动分组';\n }\n if (condition) {\n quotes += ': ' + condition;\n }\n }\n return onGroup({\n ..._value,\n tableUuid: tableUuid || _value.tableUuid,\n ...v,\n table,\n tableId,\n alias: tableAlias,\n name,\n database_type,\n condition,\n quotes,\n realName,\n });\n }\n\n typeof onSelect === 'function' &&\n onSelect({\n ..._value,\n tableUuid: tableUuid || _value.tableUuid,\n ...v,\n table,\n tableId,\n alias: tableAlias,\n name,\n database_type,\n sql: v.sql || '',\n datasourceId,\n datasourceName,\n realName,\n });\n }}\n >\n <div className={'p-2 List-item'}>\n <span className={'List-item-icon'}>\n {IconMap[special_type || database_type] || <LetterAaIcon />}\n </span>\n <div>\n <h4 className={'List-item-title ml-2'}>\n {replaceTpl(store.fieldNameTpl, v)}\n {/* {name} */}\n </h4>\n </div>\n </div>\n {OPEN_GROUP && isGroup && groupe !== SQL_GROUP_TYPE.STRING && (\n <Popover\n placement='rt'\n onVisibleChange={(visible) => {\n if (visible) {\n setCurTable(tableUuid);\n setCurColumn(name);\n store.setClosable(false);\n } else {\n setCurTable(tableUuid);\n setCurColumn(value.name);\n setTimeout(() => store.setClosable(true), 300);\n }\n }}\n content={\n <Menu\n className='menu-list'\n selectedKeys={showCondition ? [_condition] : []}\n onClickMenuItem={(key, domEvent) => {\n domEvent.stopPropagation();\n store.setClosable(true);\n if (isGroup && typeof onGroup === 'function') {\n let condition = '';\n let quotes = name;\n if (groupe === SQL_GROUP_TYPE.DATE) {\n condition = DATE_GROUP_MAP.get(key) as string;\n }\n if (groupe === SQL_GROUP_TYPE.NUMBER) {\n condition = NUMBER_GROUP_MAP.get(key) as string;\n }\n if (condition) {\n quotes += ': ' + condition;\n }\n return onGroup({\n ..._value,\n tableUuid: tableUuid || _value.tableUuid,\n ...v,\n table,\n tableId,\n alias: tableAlias,\n name,\n database_type,\n condition: key,\n quotes,\n });\n }\n }}\n >\n {(groupe === SQL_GROUP_TYPE.NUMBER\n ? Array.from(NUMBER_GROUP_MAP.keys())\n : Array.from(DATE_GROUP_MAP.keys())\n ).map((v: string) => {\n return <Menu.Item key={v}>{v}</Menu.Item>;\n })}\n </Menu>\n }\n trigger='click'\n >\n <div className='Field-extra' onClick={(e) => e.stopPropagation()}>\n <h4>\n {groupe === SQL_GROUP_TYPE.NUMBER\n ? showCondition\n ? _condition\n : __('joinData.automatic grouping')\n : __('joinData.byTheHour')}\n </h4>\n <RightArrowIcon />\n </div>\n </Popover>\n )}\n </div>\n </div>\n );\n })}\n </>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n};\n\nexport default SelectJoinColumn;\n","/**\n * 关联模块 选择表字段\n */\nimport './index.less';\nimport React, { useEffect, useMemo, useState } from 'react';\nimport { FfPlus, FfLine, Repeat, RelatedWork, Function } from '@gingkoo/pandora-icons';\nimport {\n Menu,\n Button,\n Tooltip,\n Input,\n Modal2,\n Select,\n InputNumber,\n Dropdown,\n DatePicker,\n} from '@gingkoo/pandora';\nimport cx from 'classnames';\nimport { ChevronODown } from '@gingkoo/pandora-icons';\n\nimport moment from 'dayjs';\nimport { __, isEn } from '../../../locale';\nimport { ColumnsPopupThemeEnum, SQL_COLUMN_TYPE, SQL_GROUP_TYPE } from '../../../store/enum';\nimport { SummarizeAlias } from '../../../store/helper';\nimport { MetaFilter_Item, MetaJoin_TalbeType, Filter_Formula } from '../../../store/types';\nimport { NUMBER_GROUP, DATE_GROUP } from '../const';\nimport SelectList from '../select-list';\n\nimport { SelectJoinColumn } from '../index';\nimport { DataType, ColumnType } from '../select-join-column';\nimport { LeftArrowIcon } from '../../icons';\nimport { useStore } from '../../../hooks/use-provider';\n\nconst { RangePicker } = DatePicker;\n\nconst NUMBER_LIST = [\n '等于',\n '不等于',\n '大于',\n '小于',\n '介于之间',\n '大于或等于',\n '小于或等于',\n '为空',\n '不为空',\n 'In',\n 'Not In',\n];\nconst STRING_LIST = [\n '等于',\n '不等于',\n '包含',\n '不包含',\n '为空',\n '不为空',\n '以...开始',\n '以...结束',\n 'In',\n 'Not In',\n];\nconst DATE_LIST = [\n // '前', '下一个', '当前',\n '早于',\n '晚于',\n // '在',\n '介于之间',\n '是空的',\n '不是空的',\n];\n\ninterface PropsType {\n data: DataType[];\n value: MetaFilter_Item;\n onChange: (reocrd: MetaFilter_Item) => void;\n didUpdate?: Function; // 刷新弹框\n isCustom?: boolean; //是否是自定义 如果是自定义可以选择不要结果\n container?: any;\n}\n\nconst SelectFilterColumn = ({\n data = [],\n value,\n onChange,\n didUpdate,\n isCustom = false,\n container = null,\n}: PropsType) => {\n const [curColumn, setCurColumn] = useState<ColumnType>(value);\n const [condition, setCondition] = useState<string>(value.condition);\n const [valType, setValType] = useState<'string' | 'constant' | 'field' | ''>(\n value.valType || 'string',\n );\n const [curVal, setVal] = useState<string[]>(value.val);\n const [constantName, setConstantName] = useState<string>(value.constantName || '');\n\n const [formula, setFormula] = useState<Filter_Formula>(value.formula || {});\n const store = useStore();\n\n let table2Selected = Boolean(curColumn.table2?.name);\n\n const disabled = useMemo(() => {\n if (!condition) return true;\n\n if (~['无需结果'].indexOf(condition)) {\n return false;\n }\n if (curColumn.table2?.id && ~['等于', '不等于'].indexOf(condition)) {\n return false;\n }\n if (~['为空', '不为空', '是空的', '不是空的'].indexOf(condition)) {\n return false;\n } else if (~['前', '下一个', '介于之间'].indexOf(condition)) {\n if (curVal[0] && curVal[1]) {\n return false;\n }\n } else if (curVal.length && curVal.join(',')) {\n return false;\n }\n return true;\n }, [curVal, condition, curColumn, isCustom]);\n\n useEffect(() => {\n didUpdate?.();\n }, [condition]);\n\n const getQuotesName = (name: string) => {\n switch (formula.type) {\n case 'SUBSTR':\n // let str = formula.params?.join(',');\n return `SUBSTR(${name},${formula?.params?.[1]},${formula?.params?.[2]})`;\n\n default:\n return name;\n }\n };\n\n const getText = (v: string) => {\n return {\n 等于: 'filter.equal',\n 不等于: 'filter.notEqual',\n 大于: 'filter.greaterThan',\n 小于: 'filter.lessThan',\n 介于之间: 'filter.inBetween',\n 大于或等于: 'filter.greaterThanOrEqualTo',\n 小于或等于: 'filter.lessThanOrEqualTo',\n 为空: 'filter.empty',\n 不为空: 'filter.notEmpty',\n 包含: 'filter.contain',\n 不包含: 'filter.notInclude',\n '以...开始': 'filter.startWith',\n '以...结束': 'filter.endWith',\n 早于: 'filter.earlierThan',\n 晚于: 'filter.laterThan',\n 是空的: 'filter.isEmpty',\n In: 'filter.within',\n 'Not In': 'filter.withnotin',\n 无需结果: 'filter.notresults',\n }[v]!;\n };\n\n function generateQuotes(val: string[], curColumn: ColumnType) {\n let [firstVal = '', secondVal = ''] = val;\n let quotes = '';\n if (condition === '以...开始') {\n if (isEn) {\n quotes = getQuotesName((curColumn as ColumnType).name) + ' ' + `startWith ${firstVal}`;\n } else {\n quotes = getQuotesName((curColumn as ColumnType).name) + ' ' + `以 ${firstVal} 开始`;\n }\n } else if (condition === '以...结束') {\n if (isEn) {\n quotes = getQuotesName((curColumn as ColumnType).name) + ' ' + `endWith ${firstVal}`;\n } else {\n quotes = getQuotesName((curColumn as ColumnType).name) + ' ' + `以 ${firstVal} 结束`;\n }\n } else if (condition === '介于之间') {\n if (isEn) {\n quotes =\n getQuotesName((curColumn as ColumnType).name) +\n ' ' +\n `Between ${firstVal} and ${secondVal}`;\n } else {\n quotes =\n getQuotesName((curColumn as ColumnType).name) + ' ' + `介于${firstVal}和${secondVal}之间`;\n }\n } else if (condition === '前') {\n if (isEn) {\n quotes =\n getQuotesName((curColumn as ColumnType).name) + ' ' + `previous ${firstVal}${secondVal}`;\n } else {\n quotes =\n getQuotesName((curColumn as ColumnType).name) + ' ' + `上一个${firstVal}${secondVal}`;\n }\n } else if (condition === '下一个') {\n if (isEn) {\n quotes =\n getQuotesName((curColumn as ColumnType).name) + ' ' + `next ${firstVal}${secondVal}`;\n } else {\n quotes =\n getQuotesName((curColumn as ColumnType).name) + ' ' + `下一个${firstVal}${secondVal}`;\n }\n } else if (condition === '在') {\n if (isEn) {\n quotes = getQuotesName((curColumn as ColumnType).name) + ' is ' + firstVal;\n } else {\n quotes = getQuotesName((curColumn as ColumnType).name) + ' 是 ' + firstVal;\n }\n } else if (condition === '是空的') {\n if (isEn) {\n quotes = getQuotesName((curColumn as ColumnType).name) + ' is empty';\n } else {\n quotes = getQuotesName((curColumn as ColumnType).name) + ' 为空';\n }\n } else if (condition === '不是空的') {\n if (isEn) {\n quotes = getQuotesName((curColumn as ColumnType).name) + ' not empty';\n } else {\n quotes = getQuotesName((curColumn as ColumnType).name) + ' 不为空';\n }\n } else if (condition === '当前') {\n if (firstVal === '天') {\n if (isEn) {\n quotes = getQuotesName((curColumn as ColumnType).name) + ' ' + `today`;\n } else {\n quotes = getQuotesName((curColumn as ColumnType).name) + ' ' + `今天`;\n }\n } else {\n if (isEn) {\n quotes = getQuotesName((curColumn as ColumnType).name) + ' ' + `this is ${firstVal}`;\n } else {\n quotes = getQuotesName((curColumn as ColumnType).name) + ' ' + `这个${firstVal}`;\n }\n }\n } else if (condition === 'In') {\n let cond = __('filter.within');\n quotes = getQuotesName((curColumn as ColumnType).name) + ' ' + cond + ' ' + `(${firstVal})`;\n } else if (condition === 'Not In') {\n let cond = __('filter.withnotin');\n quotes = getQuotesName((curColumn as ColumnType).name) + ' ' + cond + ' ' + `(${firstVal})`;\n } else {\n let cond = __(\n {\n 等于: 'filter.equal',\n 不等于: 'filter.notEqual',\n 大于: 'filter.greaterThan',\n 小于: 'filter.lessThan',\n 介于之间: 'filter.inBetween',\n 大于或等于: 'filter.greaterThanOrEqualTo',\n 小于或等于: 'filter.lessThanOrEqualTo',\n 为空: 'filter.empty',\n 不为空: 'filter.notEmpty',\n 包含: 'filter.contain',\n 不包含: 'filter.notInclude',\n '以...开始': 'filter.startWith',\n '以...结束': 'filter.endWith',\n 早于: 'filter.earlierThan',\n 晚于: 'filter.laterThan',\n 是空的: 'filter.isEmpty',\n }[condition]!,\n );\n\n if (curColumn.table2?.id) {\n quotes =\n getQuotesName((curColumn as ColumnType).name) + ' ' + cond + ' ' + curColumn.table2.name;\n } else {\n quotes = getQuotesName((curColumn as ColumnType).name) + ' ' + cond + ' ' + firstVal;\n }\n }\n return quotes;\n }\n\n function addFilter(): void {\n if (disabled) return void 0;\n let quotes = generateQuotes(curVal, curColumn);\n typeof onChange === 'function' &&\n onChange({\n ...(curColumn as ColumnType),\n formula: formula,\n val: curVal, // 选择结果 如果有两个 长度就为2\n constantName: constantName, //变量字段\n valType: valType, //是否是选择字段\n condition, // 选择条件\n quotes, // 前端显示用户看的文字\n groupSql: curColumn.alias === SummarizeAlias ? curColumn.sql : '',\n });\n }\n\n function goPrevPage() {\n setCurColumn({\n table: '', // 表名\n tableId: '', // 表名\n tableUuid: '', // 表名\n fieldAlias: '',\n fieldUuid: '',\n alias: '', // 表的别名\n name: '', // 字段名\n id: '', // 字段名\n sql: '',\n datasourceId: '',\n datasourceName: '',\n database_type: '', // 字段类型\n });\n setCondition('');\n setFormula({});\n setVal([]);\n }\n\n function getData(data: ColumnType) {\n let { database_type } = data;\n let columnType: SQL_COLUMN_TYPE = database_type.toUpperCase() as SQL_COLUMN_TYPE;\n let conditions = STRING_LIST;\n let type: SQL_GROUP_TYPE = SQL_GROUP_TYPE.STRING;\n if (NUMBER_GROUP.includes(columnType)) {\n conditions = NUMBER_LIST;\n type = SQL_GROUP_TYPE.NUMBER;\n } else if (DATE_GROUP.includes(columnType)) {\n conditions = DATE_LIST;\n type = SQL_GROUP_TYPE.DATE;\n }\n if (isCustom) {\n conditions = ['无需结果', ...conditions];\n }\n return { columnType, type, conditions };\n }\n\n function renderFilter(type: SQL_GROUP_TYPE, conditionText: string) {\n let [firstVal, secondVal] = curVal;\n\n if (~['为空', '不为空', '是空的', '不是空的'].indexOf(conditionText)) {\n return null;\n } else if (conditionText === '介于之间') {\n if (type === SQL_GROUP_TYPE.NUMBER) {\n return (\n <div style={{ display: 'flex', flexDirection: 'column' }}>\n <Input\n className='input'\n placeholder={__('filter.enterANumber')}\n value={firstVal || ''}\n onInput={(e: any) => {\n let newVal = curVal.slice();\n newVal[0] = e.target.value;\n setVal(newVal);\n }}\n />\n <Input\n className='input'\n placeholder={__('filter.enterANumber')}\n value={secondVal || ''}\n onInput={(e: any) => {\n let newVal = curVal.slice();\n newVal[1] = e.target.value;\n setVal(newVal);\n }}\n />\n </div>\n );\n }\n if (type === SQL_GROUP_TYPE.DATE) {\n return (\n <div>\n <RangePicker\n showTime={{ format: 'HH:mm' }}\n format='YYYY-MM-DD HH:mm'\n className={'w_300'}\n // @ts-ignore\n value={\n firstVal ? [moment(firstVal ?? undefined), moment(secondVal ?? undefined)] : []\n }\n onChange={(val) => {\n // @ts-ignore\n val &&\n setVal([\n moment(val[0]).format('YYYY-MM-DD HH:mm'),\n moment(val[1]).format('YYYY-MM-DD HH:mm'),\n ]);\n }}\n />\n </div>\n );\n }\n } else if (conditionText === '当前') {\n return (\n <div>\n <Dropdown\n trigger={['click']}\n onChange={(key) => {\n setVal([key]);\n }}\n droplist={[\n {\n key: '天',\n label: __('filter.day'),\n },\n {\n key: '周',\n label: __('filter.week'),\n },\n {\n key: '月',\n label: __('filter.month'),\n },\n {\n key: '年',\n label: __('filter.year'),\n },\n ]}\n >\n <Button className='operator-btn' style={{ width: 300 }}>\n {firstVal} <ChevronODown />\n </Button>\n </Dropdown>\n </div>\n );\n } else if (~['前', '下一个'].indexOf(conditionText)) {\n return (\n <div className='flex w_300'>\n <Input\n className='input inline'\n placeholder={__('filter.enterANumber')}\n value={firstVal || ''}\n onInput={(e: any) => {\n let newVal = curVal.slice();\n newVal[0] = e.target.value;\n setVal(newVal);\n }}\n />\n <Dropdown\n trigger={['click']}\n droplist={[\n {\n key: '分',\n label: __('filter.minute'),\n },\n {\n key: '时',\n label: __('filter.hour'),\n },\n {\n key: '天',\n label: __('filter.day'),\n },\n {\n key: '周',\n label: __('filter.week'),\n },\n {\n key: '月',\n label: __('filter.month'),\n },\n {\n key: '年',\n label: __('filter.year'),\n },\n ]}\n onChange={(key) => {\n let newVal = curVal.slice();\n newVal[1] = key;\n setVal(newVal);\n }}\n // droplist={\n // <Menu\n // onClickMenuItem={(key) => {\n // let newVal = curVal.slice();\n // newVal[1] = key;\n // setVal(newVal);\n // }}\n // >\n // <Menu.Item key='分'>{__('filter.minute')}</Menu.Item>\n // <Menu.Item key='时'>{__('filter.hour')}</Menu.Item>\n // <Menu.Item key='天'>{__('filter.day')}</Menu.Item>\n // <Menu.Item key='周'>{__('filter.week')}</Menu.Item>\n // <Menu.Item key='月'>{__('filter.month')}</Menu.Item>\n // <Menu.Item key='年'>{__('filter.year')}</Menu.Item>\n // </Menu>\n // }\n // menu={{\n // items: [\n // {\n // key: '分',\n // label: __('filter.minute'),\n // },\n // {\n // key: '时',\n // label: __('filter.hour'),\n // },\n // {\n // key: '天',\n // label: __('filter.day'),\n // },\n // {\n // key: '周',\n // label: __('filter.week'),\n // },\n // {\n // key: '月',\n // label: __('filter.month'),\n // },\n // {\n // key: '年',\n // label: __('filter.year'),\n // },\n // ],\n // onClick: ({ key }) => {\n // let newVal = curVal.slice();\n // newVal[1] = key;\n // setVal(newVal);\n // },\n // }}\n >\n <Button className='operator-btn' style={{ width: 104 }}>\n {secondVal} <ChevronODown />\n </Button>\n </Dropdown>\n </div>\n );\n } else if (~['早于', '晚于', '在'].indexOf(conditionText)) {\n return (\n <div>\n <DatePicker\n showTime={{ format: 'HH:mm' }}\n format='YYYY-MM-DD HH:mm'\n className={'w_300'}\n value={moment(firstVal ?? undefined)}\n onChange={(val) => {\n if (val) {\n setVal([moment(val).format('YYYY-MM-DD HH:mm')]);\n } else {\n setVal([]);\n }\n }}\n />\n </div>\n );\n } else if (~['In', 'Not In'].indexOf(conditionText)) {\n const options = firstVal?.split(',') || [];\n return (\n <div>\n <Select\n size='large'\n placeholder='可输入回车新增下拉选项'\n allowCreate\n multiple\n value={options}\n onChange={(val) => {\n setVal([val.join(',')]);\n }}\n >\n {options.map((option) => (\n <Select.Option key={option} value={option}>\n {option}\n </Select.Option>\n ))}\n </Select>\n </div>\n );\n } else if (\n ~[\n '等于',\n '不等于',\n '大于',\n '小于',\n '大于或等于',\n '小于或等于',\n '包含',\n '不包含',\n '以...开始',\n '以...结束',\n ].indexOf(conditionText)\n ) {\n return (\n <div>\n <Input\n className='input'\n placeholder={__('filter.pleaseEnter')}\n value={firstVal || ''}\n onInput={(e: any) => {\n let newVal = curVal.slice();\n newVal[0] = e.target.value;\n setVal(newVal);\n }}\n />\n </div>\n );\n }\n return null;\n }\n\n function closePopup2() {\n store.setPopup2({ visible: false });\n }\n\n // 选择变量\n const selectConstant = (e: any) => {\n store.setClosable(false);\n\n store.setPopup2({\n visible: true,\n node: e.currentTarget,\n container: container,\n content: (\n <SelectList\n value={valType}\n list={store.constantList || []}\n onChange={(val: any) => {\n closePopup2();\n let curObj = store.constantList.filter((v: any) => v.value === val)[0];\n\n let newVal = curVal.slice();\n newVal[0] = val;\n setVal(newVal);\n setConstantName(curObj.label);\n store.setClosable(true);\n\n // (newMeta[index] as MetaJoin).expressions[_ind][`${position}_type`] = type;\n // store.setMeta(newMeta, groupIndex);\n }}\n />\n ),\n });\n };\n const onRepeat = (e: any) => {\n store.setClosable(false);\n\n store.setPopup2({\n visible: true,\n node: e.currentTarget,\n container: container,\n content: (\n <SelectList\n value={valType}\n list={[\n { value: 'string', label: __('SqlQueryBuilder.input') },\n { value: 'constant', label: __('customColumn.constant') },\n { value: 'field', label: __('SqlQueryBuilder.columns') },\n ]}\n onChange={(type: any) => {\n closePopup2();\n setConstantName('');\n setValType(type);\n setVal([]);\n setCurColumn({ ...curColumn, table2: null });\n store.setClosable(true);\n\n // (newMeta[index] as MetaJoin).expressions[_ind][`${position}_type`] = type;\n // store.setMeta(newMeta, groupIndex);\n }}\n />\n ),\n });\n };\n\n const nextPage = !!curColumn.name;\n\n const selectTable = (e: any) => {\n store.setClosable(false);\n store.setPopup2({\n visible: true,\n node: e.currentTarget,\n container: container,\n content: (\n <SelectJoinColumn\n data={[...data]}\n value={value as MetaFilter_Item}\n theme={ColumnsPopupThemeEnum.purple}\n didUpdate={didUpdate}\n onSelect={(record: ColumnType) => {\n setCurColumn({ ...curColumn, table2: record });\n store.setPopup2({ visible: false });\n store.setClosable(true);\n }}\n />\n ),\n });\n };\n\n if (nextPage) {\n let { type, conditions } = getData(curColumn);\n const menu = conditions.map((v) => {\n return {\n key: v,\n label: __(getText(v)),\n };\n });\n\n const changeFormula = (val: string) => {\n let params = [];\n if (val === 'SUBSTR') {\n params[0] = curColumn.name;\n }\n\n setFormula({\n type: val,\n params: params,\n });\n };\n const changeParams = (val: number, i: number) => {\n const _formula = { ...formula };\n if (_formula.params) {\n _formula.params[i] = val;\n setFormula({\n ..._formula,\n });\n }\n };\n let formulas = [\n {\n key: 'SUBSTR',\n label: 'SUBSTR',\n },\n ];\n\n const leftFormula = () => {\n return (\n <div className='left-info-formula'>\n <Dropdown\n trigger={['click']}\n onChange={(key) => {\n changeFormula(key);\n }}\n droplist={formulas}\n >\n <Button className={'operator-icon'} icon={<Function />}></Button>\n </Dropdown>\n </div>\n );\n };\n const getName = (name: string) => {\n switch (formula.type) {\n case 'SUBSTR':\n return (\n <div>\n SUBSTR({name},\n <InputNumber\n className={'left-info-formula-input'}\n hideControl\n placeholder=''\n onClick={(e) => {\n e.stopPropagation();\n return false;\n }}\n size='small'\n value={formula?.params?.[1]}\n onChange={(val) => {\n changeParams(val, 1);\n }}\n />\n ,\n <InputNumber\n className={'left-info-formula-input'}\n hideControl\n quickEdit\n placeholder=''\n onClick={(e) => {\n e.stopPropagation();\n return false;\n }}\n size='small'\n value={formula?.params?.[2]}\n onChange={(val) => {\n changeParams(val, 2);\n }}\n />\n )\n </div>\n );\n default:\n return name;\n }\n };\n\n return (\n <div className='filter-page'>\n <div className='header'>\n <div className='left-info'>\n <span className='span-name' onClick={goPrevPage}>\n <LeftArrowIcon />\n {getName(curColumn.name)}\n </span>\n\n {leftFormula()}\n </div>\n <div className='right-info'>\n <Dropdown\n trigger={['click']}\n onChange={(key) => {\n setValType('string');\n setCurColumn({ ...curColumn, table2: null });\n setDefaultVal(key);\n }}\n droplist={menu}\n\n // droplist={\n // <Menu\n // onClickMenuItem={(key) => {\n // setIsField(false);\n // setCurColumn({ ...curColumn, table2: null });\n // setDefaultVal(key);\n // }}\n // >\n // {menu.map((item) => (\n // <Menu.Item key={item.key}>{item.label}</Menu.Item>\n // ))}\n // </Menu>\n // }\n\n // menu={{\n // items: menu,\n // onClick: ({ key }) => {\n // setIsField(false);\n // setCurColumn({ ...curColumn, table2: null });\n // setDefaultVal(key);\n // },\n // }}\n // dropdownRender={() => {\n // return menu;\n // }}\n >\n <Button className='operator-btn' style={{ width: 104 }}>\n {__(getText(condition))}\n <ChevronODown />\n </Button>\n </Dropdown>\n </div>\n </div>\n <div className='content'>\n {(valType === 'field' || !valType) && (\n <div\n className={cx(`Sqb-TableName purple-name`, { notSelected: !table2Selected })}\n onClick={selectTable}\n >\n {table2Selected ? `${curColumn.table2?.name}` : __('SqlQueryBuilder.pickTable')}\n </div>\n )}\n {valType === 'constant' && (\n <div\n className={cx(`Sqb-TableName purple-name`, { notSelected: !curVal[0] })}\n onClick={selectConstant}\n >\n {constantName ? `${constantName}` : __('SqlQueryBuilder.pickConstant')}\n </div>\n )}\n {valType === 'string' && <div className='content_l'>{renderFilter(type, condition)}</div>}\n {/* {isField ? (\n \n ) : (\n \n )} */}\n {~['等于', '不等于'].indexOf(condition) ? (\n <Tooltip title={__('SqlQueryBuilder.switch')}>\n <Button\n primary\n ghost\n className={'ml-2 operator-icon'}\n icon={<Repeat />}\n onClick={onRepeat}\n />\n </Tooltip>\n ) : (\n ''\n )}\n </div>\n <div className='footer'>\n <div className={cx('button--purple', { disabled })} onClick={addFilter}>\n <span>{isCustom ? __('filter.confirm') : __('filter.addFilter')}</span>\n </div>\n </div>\n </div>\n );\n }\n\n function setDefaultVal(_condition: string) {\n setCondition(_condition);\n if (~['前', '下一个'].indexOf(_condition)) {\n setVal(['30', '天']);\n } else if (~['当前'].indexOf(_condition)) {\n setVal(['天']);\n } else if (~['早于', '晚于', '在'].indexOf(_condition)) {\n setVal([moment().format('YYYY-MM-DD HH:mm')]);\n } else {\n setVal([]);\n }\n }\n\n return (\n <div>\n <SelectJoinColumn\n data={data}\n value={value as MetaFilter_Item}\n theme={ColumnsPopupThemeEnum.purple}\n didUpdate={didUpdate}\n onSelect={(record: ColumnType) => {\n setCurColumn(record);\n\n /**\n * 这里默认帮用户选好一部分数据\n * 不至于让用户每一个都自己选、\n * 比如说:条件字段 默认我们帮他选好第一个...\n */\n let { conditions } = getData(record);\n setDefaultVal(conditions[0]);\n }}\n />\n </div>\n );\n};\n\nexport default (props: PropsType) => {\n return <SelectFilterColumn {...props} />;\n};\n","/**\n * 关联模块 选择表字段\n */\nimport './index.less';\nimport React, { useState } from 'react';\nimport { Tooltip } from '@gingkoo/pandora';\nimport cx from 'classnames';\n\nimport { ColumnsPopupThemeEnum } from '../../../store/enum';\nimport { DataType, ColumnType } from '../select-join-column';\nimport { NUMBER_GROUP, DATE_GROUP } from '../const';\nimport { __ } from '../../../locale';\nimport { TableIcon, LeftArrowIcon } from '../../icons';\nimport { SelectJoinColumn } from '../index';\n\nconst theme = ColumnsPopupThemeEnum.greenGrass;\n\nconst FormulaList = [\n { name: '总行数', tip: '总的数据行数' },\n { name: '总和', tip: '一个字段所有数值的总和' },\n { name: '平均值', tip: '一个字段所有数值的平均值' },\n { name: '不重复值的总数', tip: '一个字段所有互不重复的值的总数' },\n { name: '累积求和', tip: '一个列的所有值的加和。如:x一段时间内的总收入' },\n { name: '累积行数', tip: '行数的加法统计。如;x段时间内的销售总额' },\n { name: '标准差', tip: '一个字段所有数值的标准差' },\n { name: '最小值', tip: '一个字段的最小值' },\n { name: '最大值', tip: '一个字段的最大值' },\n];\n\nconst QuotesMap = new Map([\n ['总行数', '计数'],\n ['总和', '求和 的'],\n ['平均值', '平均 的'],\n ['不重复值的总数', '不重复的值 的'],\n ['累积求和', '累积和 的'],\n ['累积行数', '累积计数'],\n ['标准差', '标准偏差 的'],\n ['最小值', '最小 的'],\n ['最大值', '最大 的'],\n]);\n\nconst localeMap: any = {\n 总行数: 'summarize.totalNumberOfRows',\n 计数: 'summarize.count',\n 总和: 'summarize.sum',\n '求和 的': 'summarize.sumOf',\n 平均值: 'summarize.average',\n '平均 的': 'summarize.onAverageOf',\n 不重复值的总数: 'summarize.totalNumberOfUniqueValues',\n '不重复的值 的': 'summarize.non-repeatingValueOf',\n 累积求和: 'summarize.cumulativeSummation',\n '累积和 的': 'summarize.cumulativeSumOf',\n 累积行数: 'summarize.cumulativeNumberOfRows',\n 累积计数: 'summarize.cumulativeCount',\n 标准差: 'summarize.standardDeviation',\n '标准偏差 的': 'summarize.standardDeviationOf',\n 最小值: 'summarize.minimumCalue',\n '最小 的': 'summarize.theSmallestYes',\n 最大值: 'summarize.maximumCalue',\n '最大 的': 'summarize.biggestYes',\n 总的数据行数: 'summarize.totalNumberOfRowsOfData',\n 一个字段所有数值的总和: 'summarize.theSumOfAllValuesInAField',\n 一个字段所有数值的平均值: 'summarize.theAverageOfAllValuesInAfield',\n 一个字段所有互不重复的值的总数: 'summarize.theTotalNumberOfUniqueValuesInAfield',\n '一个列的所有值的加和。如:x一段时间内的总收入':\n 'summarize.theSumOfAllTheValuesInAcolumnForExample',\n '行数的加法统计。如;x段时间内的销售总额': 'summarize.additiveStatisticsOfTheNumberOfRows',\n 一个字段所有数值的标准差: 'summarize.theStandardDeviationOfAllValuesInAfield',\n 一个字段的最小值: 'summarize.theMinimumValueOfAfield',\n 一个字段的最大值: 'summarize.TheMaximumValueOfAfield',\n};\n\nconst Special = ['总行数', '累积行数'];\n\nexport type ValueType = Partial<ColumnType> & {\n condition: string; // 选择条件\n quotes: string; // 前端显示用户看的文字\n};\n\ninterface PropsType {\n data: DataType[];\n value: ValueType;\n onChange: (reocrd: ValueType) => void;\n didUpdate?: Function; // 刷新弹框\n}\n\nconst SelectSummarize = ({ data, value, onChange, didUpdate }: PropsType) => {\n const [condition, setCondition] = useState<string>(value.condition);\n\n function goPrevPage() {\n setCondition('');\n }\n\n function handleSelect(condition: string, record: Partial<ColumnType>) {\n const quotes = __(localeMap[QuotesMap.get(condition)!]) + ' ' + (record?.name || '');\n onChange({\n ...record,\n condition,\n quotes,\n });\n }\n\n if (condition && !~Special.indexOf(condition)) {\n let availableData = data.slice();\n\n if (condition !== '不重复值的总数') {\n // 只能用数字类型做聚合\n availableData = data\n .map((v) => {\n return {\n ...v,\n columns: v.columns.filter(\n (o) =>\n o.database_type &&\n (NUMBER_GROUP.includes(o.database_type) ||\n ((condition === '最大值' || condition === '最小值') &&\n DATE_GROUP.includes(o.database_type))),\n ),\n };\n })\n .filter((v) => v.columns.length);\n }\n\n return (\n <div>\n <div className='back-title'>\n <div onClick={goPrevPage}>\n <LeftArrowIcon />\n <h3> {__(localeMap[condition]!)} </h3>\n </div>\n </div>\n <SelectJoinColumn\n data={availableData}\n value={value as ColumnType}\n theme={ColumnsPopupThemeEnum.greenGrass}\n didUpdate={didUpdate}\n onSelect={(record: ColumnType) => {\n handleSelect(condition, record);\n }}\n />\n </div>\n );\n }\n return (\n <div className={cx(`Sqb-SelectSummarize-group--box ${theme}`)}>\n <div style={{ width: 300 }}>\n <div>\n <div className={cx(`Sqb-List-section`)}>\n <div className={cx(`Sqb-List-title mx-4 pb-4 pt-4`)}>\n <a>\n <span className={'List-item-icon'}>\n <TableIcon />\n </span>\n <div>\n <h3 className={'List-item-title ml-2'}>{__('summarize.basicIndicators')}</h3>\n </div>\n </a>\n </div>\n </div>\n\n {FormulaList.map((v, i) => {\n return (\n <div className={cx(`Sqb-List-section`)} key={i}>\n <div\n className={cx(`Sqb-List-item mx-2`, {\n active: condition === v.name,\n })}\n onClick={() => {\n if (~Special.indexOf(v.name)) {\n handleSelect(v.name, {});\n } else {\n setCondition(v.name);\n }\n }}\n >\n <a className={'p-2'}>\n <div>\n <h4 className={'List-item-title ml-2'}>{__(localeMap[v.name]!)}</h4>\n </div>\n <div onClick={(e) => e.stopPropagation()}>\n <Tooltip placement='rt' title={__(localeMap[v.tip]!)}>\n <span className='tips'></span>\n </Tooltip>\n </div>\n </a>\n </div>\n </div>\n );\n })}\n </div>\n </div>\n </div>\n );\n};\n\nexport default SelectSummarize;\n","/**\n * 选择关联方式\n * 谁在用?\n * 1、关联模块\n */\nimport './index.less';\nimport React from 'react';\nimport cx from 'classnames';\n\nimport { JoinEnum } from '../../../store/enum';\n\nimport { LeftJoinIcon, InnerJoinIcon } from '../../icons';\n\nconst JoinList = [\n {\n type: JoinEnum.left,\n name: 'Left outer join',\n icon: (\n <LeftJoinIcon width={24} height={24} style={{ marginRight: '0.5rem', cursor: 'pointer' }} />\n ),\n },\n {\n type: JoinEnum.right,\n name: 'Right outer join',\n icon: (\n <LeftJoinIcon\n width={24}\n height={24}\n style={{ transform: 'rotate(-180deg)', marginRight: '0.5rem', cursor: 'pointer' }}\n />\n ),\n },\n {\n type: JoinEnum.inner,\n name: 'Inner join',\n icon: (\n <InnerJoinIcon width={24} height={24} style={{ marginRight: '0.5rem', cursor: 'pointer' }} />\n ),\n },\n];\n\ninterface PropsType {\n value: JoinEnum;\n onChange: (type: JoinEnum) => void;\n}\nconst SelectJoin = ({ value, onChange = () => {} }: PropsType) => {\n return (\n <div className={`Sqb-SelectJoin--box`}>\n <div className={'p-2'}>\n {JoinList.map((v, i) => {\n return (\n <div\n key={v.type}\n className={cx(`Sqb-List-item p-2`, {\n active: value === v.type,\n 'mb-2': i !== JoinList.length - 1,\n })}\n onClick={() => {\n onChange(v.type);\n }}\n >\n {v.icon}\n {v.name}\n </div>\n );\n })}\n </div>\n </div>\n );\n};\n\nexport default SelectJoin;\n","/**\n * 选择表弹框\n * 谁在用?\n * 1、数据模块\n * 2、关联模块\n */\nimport './index.less';\nimport React, { useState, useEffect } from 'react';\nimport cloneDeep from 'lodash/cloneDeep';\nimport cx from 'classnames';\nimport { uuidv4 } from '../../../utils/helper';\n\nimport { useStore } from '../../../hooks/use-provider';\nimport Loading from '../../../common/Loading';\nimport { MetaData_TableType, TableType } from '../../../store/types';\nimport { DatasourceType } from '../../../types';\nimport { __ } from '../../../locale';\nimport { replaceTpl } from '../../../utils/helper';\n\nimport { TableIcon, SearchIcon, DataSourceIcon, LeftArrowIcon } from '../../icons';\n\ninterface PropsType {\n data: DatasourceType[]; // 列表数据\n value: MetaData_TableType; // 当前选中的项\n onChange: (reocrd: MetaData_TableType) => void; // 选中回调事件\n didUpdate?: Function; // 刷新弹框\n}\n\nconst SelectTable = ({ data = [], value, onChange = () => {}, didUpdate }: PropsType) => {\n const store = useStore();\n const [loading, setLoading] = useState(false);\n const [datasource] = useState(data.slice());\n const [list, setList] = useState<TableType[]>([]);\n const [originList, setOriginList] = useState<TableType[]>([]);\n const [val, setVal] = useState(value);\n\n useEffect(() => {\n if (value.datasourceId) {\n getTables(value.datasourceId);\n }\n }, []);\n\n async function getTables(datasourceId: string) {\n setLoading(true);\n let tables = await store.fetchDataset(datasourceId);\n setLoading(false);\n setList(tables);\n setOriginList(tables);\n }\n\n useEffect(() => {\n didUpdate?.();\n }, [list, loading, datasource]);\n\n function onInput(e: any) {\n let val = e.target.value;\n let newList = cloneDeep(originList.slice());\n setList(\n newList.filter(\n (v: any) =>\n ~(v.name + (v.name_zh || '')).toLocaleLowerCase().indexOf(val.toLocaleLowerCase()),\n ),\n );\n }\n\n function goPrevPage() {\n setVal({\n datasourceId: '',\n datasourceName: '',\n name: '',\n tableUuid: '',\n id: '',\n alias: '',\n });\n }\n\n const nextPage = !val.datasourceId;\n // 没有选 数据源 先选数据源\n if (nextPage) {\n return (\n <div className={cx(`Sqb-SelectDataSource--box pb-2 pt-2`)}>\n <div style={{ width: 300 }}>\n <div style={{ width: '100%' }}>\n {Array.isArray(datasource) &&\n datasource.map((v: DatasourceType) => {\n return (\n <div className={cx(`Sqb-List-section`)} key={v.datasourceId}>\n <div\n className={cx(`Sqb-List-item mx-2`, {\n active: val.datasourceId === v.datasourceId,\n })}\n onClick={() => {\n setVal({\n datasourceId: v.datasourceId,\n datasourceName: v.datasourceName,\n name: '',\n id: '',\n tableUuid: uuidv4('table'),\n alias: '',\n });\n getTables(v.datasourceId);\n }}\n >\n <a className={'p-2'}>\n <span className={'List-item-icon'}>\n <DataSourceIcon />\n </span>\n <div>\n <h4 className={'List-item-title ml-2'}>{v.datasourceName}</h4>\n </div>\n </a>\n </div>\n </div>\n );\n })}\n </div>\n </div>\n </div>\n );\n }\n\n return (\n <div className={cx(`Sqb-SelectTable--box pb-2`)}>\n <div style={{ width: 300 }}>\n <div style={{ width: '100%' }}>\n <div className='header'>\n <div className='left-info'>\n <span onClick={goPrevPage}>\n <LeftArrowIcon />\n {val.datasourceName}\n </span>\n </div>\n </div>\n\n {loading ? (\n <div className='Sqb-SelectTable-loading'>\n <Loading show={true} msg='' />\n </div>\n ) : (\n <>\n <div className={cx(`Sqb-List-section`)}>\n <div className={cx(`Sqb-List-search m-2 rounded-lg`)}>\n <span className={'px-2'}>\n <SearchIcon />\n </span>\n <input\n type='text'\n className={'p-2'}\n placeholder={__('data.search')}\n onInput={onInput}\n />\n </div>\n </div>\n {Array.isArray(list) &&\n list.map((v: TableType) => {\n return (\n <div className={cx(`Sqb-List-section`)} key={v.name}>\n <div\n className={cx(`Sqb-List-item mx-2`, {\n active: value.name === v.name,\n })}\n onClick={() => {\n onChange({\n ...val,\n ...v,\n });\n }}\n >\n <a className={'p-2'}>\n <span className={'List-item-icon'}>\n <TableIcon />\n </span>\n <div>\n <h4 className={'List-item-title ml-2'}>\n {replaceTpl(store.tableNameTpl, v)}\n </h4>\n </div>\n </a>\n </div>\n </div>\n );\n })}\n </>\n )}\n </div>\n </div>\n </div>\n );\n};\n\nexport default SelectTable;\n","/**\n * 选择表弹框\n * 谁在用?\n * 1、选择权限表\n */\nimport './index.less';\nimport React, { useState, useEffect } from 'react';\nimport cx from 'classnames';\n\nimport { useStore } from '../../../hooks/use-provider';\nimport { MetaData_TableType } from '../../../store/types';\nimport { __ } from '../../../locale';\n\nimport { TableIcon } from '../../icons';\n\ninterface PropsType {\n data: MetaData_TableType[]; // 列表数据\n value: MetaData_TableType; // 当前选中的项\n onChange: (reocrd: MetaData_TableType) => void; // 选中回调事件\n didUpdate?: Function; // 刷新弹框\n}\n\nconst PrevResult = 'Previous results';\n\nconst SelectPermissionTable = ({ data = [], value, onChange = () => {}, didUpdate }: PropsType) => {\n const [datasource] = useState(data.slice());\n\n useEffect(() => {\n didUpdate?.();\n }, [datasource]);\n\n return (\n <div className={cx(`Sqb-SelectTable--box pb-2 pt-2`)}>\n <div style={{ width: 300 }}>\n <div style={{ width: '100%' }}>\n {Array.isArray(datasource) &&\n datasource.map((v: MetaData_TableType) => {\n return (\n <div className={cx(`Sqb-List-section`)} key={v.name}>\n <div\n className={cx(`Sqb-List-item mx-2`, {\n active: value.name === v.name,\n })}\n onClick={() => {\n onChange(v);\n }}\n >\n <a className={'p-2'}>\n <span className={'List-item-icon'}>\n <TableIcon />\n </span>\n <div>\n <h4 className={'List-item-title ml-2'}>\n {v.datasourceName ? `${v.datasourceName}.` : ''}\n {v.name === 'source' ? PrevResult : v.name}\n </h4>\n </div>\n </a>\n </div>\n </div>\n );\n })}\n </div>\n </div>\n </div>\n );\n};\n\nexport default SelectPermissionTable;\n","import React from 'react';\nimport cx from 'classnames';\nimport { __ } from '../../../locale';\nimport { TypeEnum } from '../../../store/enum';\nimport { Tooltip } from '@gingkoo/pandora';\nimport {\n MetaListType,\n MetaJoin,\n MetaCustom,\n MetaFilter,\n MetaSummarize,\n} from '../../../store/types';\nimport { getHelper } from '../../../utils';\n\n// import { type SqlVisionStoreType } from '../../../store/helper';\nimport { useStore } from '../../../hooks/use-provider';\n\nimport {\n RowLimitIcon,\n SortIcon,\n CustomColumnIcon,\n JoinDataIcon,\n PermissionTableIcon,\n SummarizeIcon,\n FilterIcon,\n GroupIcon,\n} from '../../icons';\n\ntype MetaIconDomProps = {\n show: boolean;\n className?: string;\n type: TypeEnum;\n};\n\ninterface PropsType {\n meta: MetaListType;\n groupIndex: number;\n}\n\nenum IconSIzeEnum {\n SMALL = 'small',\n LARGE = 'large',\n}\n\ntype IconInfoType = {\n name: string;\n icon: JSX.Element;\n className?: string;\n};\nconst IconTypeMap: Map<TypeEnum, IconInfoType> = new Map([\n [\n TypeEnum.filter,\n { name: __('SqlQueryBuilder.filter'), icon: <FilterIcon />, className: 'filter' },\n ],\n [\n TypeEnum.summarize,\n { name: __('SqlQueryBuilder.summarize'), icon: <SummarizeIcon />, className: 'summarize' },\n ],\n [\n TypeEnum.joinData,\n { name: __('SqlQueryBuilder.joinData'), icon: <JoinDataIcon />, className: 'joinData' },\n ],\n [\n TypeEnum.permissionTable,\n {\n name: __('SqlQueryBuilder.permissionTable'),\n icon: <PermissionTableIcon />,\n className: 'permissionTable',\n },\n ],\n [\n TypeEnum.customColumn,\n {\n name: __('SqlQueryBuilder.customColumn'),\n icon: <CustomColumnIcon />,\n className: 'customColumn',\n },\n ],\n [TypeEnum.sort, { name: __('SqlQueryBuilder.sort'), icon: <SortIcon />, className: 'sort' }],\n [\n TypeEnum.rowLimit,\n { name: __('SqlQueryBuilder.rowLimit'), icon: <RowLimitIcon />, className: 'rowLimit' },\n ],\n [TypeEnum.union, { name: __('SqlQueryBuilder.union'), icon: <GroupIcon />, className: 'union' }],\n]);\n\n// 前端展示的icon顺序 随便改不影响逻辑\nconst DisplayOrder: TypeEnum[] = [\n TypeEnum.filter,\n TypeEnum.summarize,\n TypeEnum.joinData,\n TypeEnum.permissionTable,\n TypeEnum.customColumn,\n TypeEnum.sort,\n TypeEnum.rowLimit,\n TypeEnum.union,\n];\n\n// js逻辑顺序 正常顺序\nconst OrderType: TypeEnum[] = [\n TypeEnum.data,\n TypeEnum.joinData,\n TypeEnum.permissionTable,\n TypeEnum.customColumn,\n TypeEnum.filter,\n TypeEnum.summarize,\n TypeEnum.sort,\n TypeEnum.rowLimit,\n TypeEnum.union,\n];\n\n// js逻辑顺序 聚合下面的顺序是这个样子\nconst OrderNewType: TypeEnum[] = [\n TypeEnum.sort,\n TypeEnum.rowLimit,\n TypeEnum.joinData,\n TypeEnum.permissionTable,\n TypeEnum.customColumn,\n TypeEnum.filter,\n TypeEnum.summarize,\n TypeEnum.union,\n];\n\nconst metaIcon = (size: IconSIzeEnum, handleClick: Function): any => {\n return ({ type }: MetaIconDomProps) => {\n let info = IconTypeMap.get(type) as IconInfoType;\n return (\n <Tooltip title={size === IconSIzeEnum.SMALL ? info.name : ''} placement='top'>\n <button\n className={cx(`Sqb-button ${info.className || ''}`, {\n small: size === IconSIzeEnum.SMALL,\n large: size === IconSIzeEnum.LARGE,\n })}\n onClick={() => handleClick(type)}\n >\n <div>\n {info.icon}\n {size === IconSIzeEnum.LARGE ? <div>{info.name}</div> : ''}\n </div>\n </button>\n </Tooltip>\n );\n };\n};\n\n/**\n * 如果选择了聚合 数据的 字段就不能选了\n */\n\n/*\n **** 该文件 主要是判断 模块下面该放的icon ****\n\n 这一块逻辑比较复杂 主要分两个部分\n 一、模块下面应该放哪些icon\n 1)正常顺序是上面的 OrderType,然后各自根据各自情况找出自己下面能放的icon,但是有两个瘪犊子 (关联、聚合)\n 2)关联比较特殊 可以有多个关联,关联选择了关联表之后,下面还可以继续选关联\n 3)聚合 ... 情况太大了 不一一写了 后面的人自己看下面代码逻辑吧\n 5)\n 6)\n 二、模块下面的icon size是large 还是small\n 1)正常情况,除了最后一个模块下面的icon是 large 其他的都是small 但是也有特殊情况,\n 2)特殊情况一 如果最后一个是聚合,且聚合没有选指标和groupby 下面是small\n 3)特殊情况二 如果最后一个是排序,下面是small\n*/\n// 判断icon大小\nconst judgeSize = (store: any, props: PropsType, nextLen: number, groupIndex: number) => {\n let { meta } = props;\n let { type } = meta;\n let isLast =\n store.metaList[groupIndex].list.indexOf(meta) === store.metaList[groupIndex].list.length - 1;\n\n let size = IconSIzeEnum.SMALL;\n if (isLast) {\n if (type !== TypeEnum.sort) {\n if (type === TypeEnum.summarize && !(meta as MetaSummarize).by.length) {\n size = IconSIzeEnum.SMALL;\n } else {\n size = IconSIzeEnum.LARGE;\n }\n } else {\n if (nextLen > 1) {\n size = IconSIzeEnum.LARGE;\n }\n }\n }\n return size;\n};\n\n/**\n * 查找模块下面能放哪些icon (参考来源:metabase.com)\n */\nconst findNextIcon = (store: any, props: PropsType): TypeEnum[] => {\n const { meta, groupIndex } = props;\n let { type } = meta;\n let index = store.metaList[groupIndex].list.indexOf(meta);\n let {\n ExistAboveGroupBy,\n ExistBelowGroupBy,\n prevTypes,\n nextTypes,\n prevList,\n nextList,\n prevGroupBy,\n nextGroupBy,\n } = getHelper(store.metaList[groupIndex].list, meta);\n\n let nextType = store.metaList[groupIndex].list[index + 1]?.type || '';\n // @ts-ignore\n let isLast = nextType === '';\n\n let available: TypeEnum[] = [];\n // 当前处在的位置\n let curLocation = OrderType.indexOf(type);\n let nextLocation = OrderType.indexOf(nextType);\n\n if (type === TypeEnum.data) {\n if (isLast) {\n available = OrderType.slice(curLocation + 1);\n } else {\n available = OrderType.slice(curLocation + 1, nextLocation);\n }\n }\n if (type === TypeEnum.joinData) {\n if (ExistAboveGroupBy && isLast) {\n // 聚合在上面 且自己是最后一个\n if ((meta as MetaJoin).table2.name) {\n available = OrderType.slice(curLocation + 1);\n } else {\n available = [TypeEnum.customColumn, TypeEnum.filter, TypeEnum.summarize, TypeEnum.union];\n }\n } else {\n if (isLast) {\n available = OrderType.slice(curLocation + 1);\n } else {\n available = OrderType.slice(curLocation + 1, nextLocation);\n }\n }\n // 关联比较特殊可以有多个\n if (nextType !== TypeEnum.joinData && (meta as MetaJoin).table2.name) {\n available.unshift(TypeEnum.joinData);\n }\n }\n if (type === TypeEnum.customColumn) {\n if (ExistAboveGroupBy && isLast) {\n // 聚合在上面 且自己是最后一个\n let joinIndex = prevTypes.indexOf(TypeEnum.joinData);\n\n // 如果自定义已经选了 或者 自定义没选但是他上面有个关联且关联选了 则展示排序和行限制 否则不展示\n if (\n (meta as MetaCustom).customColumn.length ||\n (~joinIndex && (prevList[joinIndex] as MetaJoin).table2.name)\n ) {\n available = OrderType.slice(curLocation + 1);\n } else {\n available = [TypeEnum.filter, TypeEnum.summarize, TypeEnum.union];\n }\n } else {\n if (isLast) {\n available = OrderType.slice(curLocation + 1);\n } else {\n available = OrderType.slice(curLocation + 1, nextLocation);\n }\n }\n }\n if (type === TypeEnum.filter) {\n if (ExistAboveGroupBy && isLast) {\n // 聚合在上面 且自己是最后一个\n let joinIndex = prevTypes.indexOf(TypeEnum.joinData);\n let customIndex = prevTypes.indexOf(TypeEnum.customColumn);\n\n // 如果自定义已经选了 或者 自定义没选但是他上面有个关联且关联选了 则展示排序和行限制 否则不展示\n if (\n (meta as MetaFilter).filter.length ||\n (~joinIndex && (prevList[joinIndex] as MetaJoin).table2.name) ||\n (~customIndex && (prevList[customIndex] as MetaCustom).customColumn.length)\n ) {\n available = OrderType.slice(curLocation + 1);\n } else {\n available = [TypeEnum.summarize];\n }\n } else {\n if (isLast) {\n available = OrderType.slice(curLocation + 1);\n } else {\n available = OrderType.slice(curLocation + 1, nextLocation);\n }\n }\n }\n if (type === TypeEnum.summarize) {\n if (isLast) {\n if (!ExistAboveGroupBy) {\n if ((meta as MetaSummarize).group.length && !(meta as MetaSummarize).by.length) {\n // 一个不显示\n } else if (!(meta as MetaSummarize).group.length && !(meta as MetaSummarize).by.length) {\n available = [TypeEnum.sort, TypeEnum.rowLimit, TypeEnum.union];\n } else {\n available = OrderNewType;\n }\n } else {\n if (!(meta as MetaSummarize).by.length) {\n let joinIndex = prevTypes.indexOf(TypeEnum.joinData);\n let customIndex = prevTypes.indexOf(TypeEnum.customColumn);\n let filterIndex = prevTypes.indexOf(TypeEnum.filter);\n\n if (\n (~joinIndex && (prevList[joinIndex] as MetaJoin).table2.name) ||\n (~customIndex && (prevList[customIndex] as MetaCustom).customColumn.length) ||\n (~filterIndex && (prevList[filterIndex] as MetaFilter).filter.length)\n ) {\n available = OrderType.slice(curLocation + 1);\n } else {\n // 一个不显示\n }\n } else {\n available = OrderNewType;\n }\n }\n } else {\n if (!ExistAboveGroupBy && !ExistBelowGroupBy && !(meta as MetaSummarize).by.length) {\n available = OrderType.slice(curLocation + 1, nextLocation);\n } else {\n available = OrderNewType.slice(0, OrderNewType.indexOf(nextType));\n }\n }\n }\n if (type === TypeEnum.sort) {\n let curNewLocation = OrderNewType.indexOf(type);\n if (isLast) {\n if (ExistAboveGroupBy && prevGroupBy?.by?.length) {\n available = OrderNewType.slice(curNewLocation + 1);\n } else {\n available = OrderType.slice(curLocation + 1);\n }\n } else {\n if (ExistAboveGroupBy && ExistBelowGroupBy) {\n available = OrderNewType.slice(curNewLocation + 1, OrderNewType.indexOf(nextType));\n } else if (!ExistAboveGroupBy && !ExistBelowGroupBy) {\n available = OrderType.slice(curLocation + 1, nextLocation);\n } else if (ExistAboveGroupBy && !ExistBelowGroupBy) {\n if (prevGroupBy?.by?.length) {\n available = OrderType.slice(curLocation + 1, nextLocation);\n } else {\n available = OrderNewType.slice(curNewLocation + 1, OrderNewType.indexOf(nextType));\n }\n }\n }\n }\n if (type === TypeEnum.rowLimit) {\n let curNewLocation = OrderNewType.indexOf(type);\n if (isLast) {\n if (!ExistAboveGroupBy || !prevGroupBy?.by?.length) {\n available = OrderType.slice(curLocation + 1);\n } else {\n available = OrderNewType.slice(curNewLocation + 1);\n }\n } else {\n available = OrderNewType.slice(curNewLocation + 1, OrderNewType.indexOf(nextType));\n }\n }\n\n if (type === TypeEnum.permissionTable) {\n let curNewLocation = OrderNewType.indexOf(type);\n if (isLast) {\n if (!ExistAboveGroupBy || !prevGroupBy?.by?.length) {\n available = OrderType.slice(curLocation + 1);\n } else {\n available = OrderNewType.slice(curNewLocation + 1);\n }\n } else {\n available = OrderNewType.slice(curNewLocation + 1, OrderNewType.indexOf(nextType));\n }\n }\n return available;\n};\n\nconst sortList = (arr: TypeEnum[]): TypeEnum[] => {\n return DisplayOrder.filter((v) => ~arr.indexOf(v));\n};\n\nconst NextDom = (props: PropsType) => {\n const { meta, groupIndex } = props;\n const store = useStore();\n // @ts-ignore\n if (!store.metaList[groupIndex].list[0].table.name) return null;\n\n let available: TypeEnum[] = findNextIcon(store, props);\n if (!store.showToolbar(TypeEnum.permissionTable)) {\n available = available.filter((v) => v !== TypeEnum.permissionTable);\n }\n let size = judgeSize(store, props, available.length, groupIndex);\n\n function handleClick(type: string) {\n let index = store.metaList[groupIndex].list.indexOf(meta);\n store.addMeta(type, index + 1, groupIndex);\n }\n\n const MetaIconDom = metaIcon(size, handleClick);\n\n return (\n <div className={`Sqb-item--func`}>\n {sortList(available)\n .filter((v) => ~store.toolbar.indexOf(v))\n .map((v: TypeEnum) => (\n <MetaIconDom key={v} type={v} />\n ))}\n </div>\n );\n};\n\nexport default NextDom;\n","import React, { useEffect } from 'react';\nimport cx from 'classnames';\n\nimport { __ } from '../../locale';\nimport { MetaData, MetaData_TableType, MetaData_ColumnsType } from '../../store/types';\nimport { Tooltip, Button, Modal, Modal2, Input } from '@gingkoo/pandora';\nimport Metabase from '../../index';\nimport { uuidv4 } from '../../utils/helper';\nimport { getHelper, changeTableAlias, getSubColumns } from '../../utils';\nimport { RelatedWork } from '@gingkoo/pandora-icons';\nimport cloneDeep from 'lodash/cloneDeep';\nimport isEqual from 'lodash/isEqual';\nimport { getMaxZIndexInParents } from '../../utils/helper-dom';\n\nimport { DatasourceType } from '../../types';\n\nimport { SelectTable, SelectColumn } from '../dialog';\nimport Wrapper from './components/Wrapper';\nimport NextDom from './components/meta-icon';\nimport Header from './components/header';\n\nimport { useStore } from '../../hooks/use-provider';\nimport { toJS } from 'mobx';\n\ninterface PropsType {\n meta: MetaData;\n groupIndex: number;\n}\n\nconst TableData = (props: PropsType) => {\n const { meta, groupIndex } = props;\n const store = useStore();\n let selected = Boolean(meta.table.name);\n let subQuerySelected = Boolean((meta.subquery?.[0] as MetaData)?.table?.name);\n\n function selectTable(e: any) {\n !meta.readonly &&\n store.setPopup({\n visible: true,\n node: e.currentTarget,\n content: (\n <SelectTable\n data={store.sourceList as DatasourceType[]}\n value={meta.table as MetaData_TableType}\n onChange={(data: MetaData_TableType) => {\n if (meta.table.datasourceId !== data.datasourceId || meta.table.name !== data.name) {\n let newMetaList = store.metaList[groupIndex].list.slice()[0] as MetaData;\n newMetaList.table = { ...data, tableUuid: uuidv4('table') };\n store.fetchColumns(data, data.datasourceId, (columns: MetaData_ColumnsType[]) => {\n newMetaList.columns = columns;\n // ① 主表动了 其他都得重新选\n store.setMeta([newMetaList], groupIndex);\n });\n }\n store.setPopup({ visible: false });\n }}\n />\n ),\n });\n }\n\n function selectColumns(e: any) {\n let columns = meta.columns;\n !meta.readonly &&\n store.setPopup({\n visible: true,\n node: e.currentTarget || e.target,\n content: (\n <SelectColumn\n groupIndex={groupIndex}\n data={columns as MetaData_ColumnsType[]}\n onChange={(data: MetaData_ColumnsType[]) => {\n let newMetaList = store.metaList[groupIndex].list.slice();\n // @ts-ignore\n newMetaList[0].columns = data;\n store.setMeta(newMetaList, groupIndex);\n }}\n />\n ),\n });\n }\n\n const onChangeTableAlias = (val: string) => {\n let alias = val || '';\n\n Modal.confirm({\n title: __('SqlQueryBuilder.alias'), // 设置别名\n content: (\n <Input\n defaultValue={alias}\n onChange={(val) => {\n alias = val;\n }}\n ></Input>\n ),\n onOk: () => {\n let newMetaList = store.metaList[groupIndex].list.slice();\n // @ts-ignore\n newMetaList[0].table.alias = alias;\n\n newMetaList = changeTableAlias(newMetaList, newMetaList[0].table);\n store.setMeta(newMetaList, groupIndex);\n },\n onCancel: () => {},\n });\n };\n\n // 子查询弹窗\n const showSubQuery = (val: any = []) => {\n const { subToolbar, toolbar, ...other } = store.preProps;\n\n let newMetaList = store.metaList[groupIndex].list.slice()[0] as MetaData;\n let oldList = cloneDeep(newMetaList.subquery);\n let _toolbar = subToolbar || toolbar;\n _toolbar = _toolbar.filter((v: string) => v !== 'group'); // 子查询不需要分组\n\n let zIndex = store.popupContainer.current\n ? getMaxZIndexInParents(store.popupContainer.current)\n : 0;\n let o = Modal2.openModal({\n title: __('SqlQueryBuilder.subquery'),\n transparentMask: true,\n zIndex: Number(zIndex),\n content: (\n <>\n <Metabase\n {...other}\n showSubquery={store._showSubquery}\n toolbar={_toolbar}\n btnText={__('SqlQueryBuilder.confirm')}\n value={val}\n onOk={(newList) => {\n try {\n // 子查询未改变不做操作\n if (isEqual(newList, oldList)) {\n o.close();\n return;\n }\n newMetaList.subquery = newList;\n newMetaList.table = {\n ...newList[0].table,\n alias: newMetaList.table.alias || '',\n tableUuid: uuidv4('table'),\n };\n\n const items = getSubColumns(newList);\n const newColumns = items.flatMap((item) => item.columns);\n newMetaList.columns = newColumns;\n // (newMeta[index] as MetaJoin).expressions = [];\n store.setMeta([newMetaList], groupIndex);\n o.close();\n } catch (e) {\n console.warn(e);\n } finally {\n o.close();\n }\n }}\n />\n </>\n ),\n onClose: () => {},\n });\n };\n // 切换子查询\n const switchSubQuery = () => {\n let newMetaList = store.metaList[groupIndex].list.slice()[0] as MetaData;\n newMetaList.isSubquery = !newMetaList.isSubquery;\n //重置表数据\n newMetaList.subquery = [];\n newMetaList.table = {\n name: '', // 表名\n tableUuid: '',\n id: '', // 表名\n alias: '', // 表别名\n datasourceName: '', // 数据源名\n datasourceId: '', // 数据源id\n };\n store.setMeta([newMetaList], groupIndex);\n };\n\n return (\n <Wrapper className={`Sqb-item`}>\n <div className={`Sqb-hover-parent`}>\n <Header title={__('SqlQueryBuilder.data')} />\n <div className={`Sqb-item--content`}>\n <div className={`Sqb-NotebookCell`}>\n {meta.isSubquery ? (\n <div\n className={cx(`Sqb-TableName`, {\n notSelected: !subQuerySelected,\n })}\n onClick={() => {\n showSubQuery(meta.subquery);\n }}\n >\n {subQuerySelected && (\n <Tooltip title={__('SqlQueryBuilder.alias')}>\n <Button\n className={':Sqb-TableName-as'}\n shape='circle'\n iconOnly\n primary\n icon={'As'}\n size='small'\n onClick={(e) => {\n e.stopPropagation();\n onChangeTableAlias(meta.table?.alias || '');\n }}\n ></Button>\n </Tooltip>\n )}\n {subQuerySelected\n ? `${(meta.subquery?.[0] as MetaData).table.datasourceName}.${(meta.subquery?.[0] as MetaData).table.name} ${meta.table?.alias ? `as ${meta.table?.alias}` : ''} `\n : __('SqlQueryBuilder.setSubQuery')}\n </div>\n ) : (\n <div\n className={cx(`Sqb-TableName`, {\n notSelected: !selected,\n })}\n onClick={selectTable}\n >\n {selected && (\n <Tooltip title={__('SqlQueryBuilder.alias')}>\n <Button\n className={':Sqb-TableName-as'}\n shape='circle'\n iconOnly\n primary\n icon={'As'}\n size='small'\n onClick={(e) => {\n e.stopPropagation();\n onChangeTableAlias(meta.table?.alias || '');\n }}\n ></Button>\n </Tooltip>\n )}\n {selected\n ? `${meta.table.datasourceName}.${meta.table.name} ${meta.table?.alias ? `as ${meta.table?.alias}` : ''}`\n : __('SqlQueryBuilder.pickTable')}\n </div>\n )}\n\n {store.showSubquery && (\n <Tooltip title={__('SqlQueryBuilder.switchSubQuery')}>\n <Button\n disabled={meta.readonly}\n primary={meta.isSubquery}\n ghost\n className={cx('mr-2 operator-icon', {\n ['subquery-icon']: !meta.isSubquery,\n })}\n icon={<RelatedWork />}\n onClick={switchSubQuery}\n />\n </Tooltip>\n )}\n {/* && store.showMainColumn[groupIndex] */}\n {selected && store.showFields && (\n <div className={`Sqb-TableColumns`} onClick={selectColumns}>\n {__('SqlQueryBuilder.columns')}\n </div>\n )}\n </div>\n </div>\n\n <NextDom meta={meta} groupIndex={groupIndex} />\n </div>\n </Wrapper>\n );\n};\n\nexport default TableData;\n","import React, { useEffect, useMemo, useState } from 'react';\nimport cx from 'classnames';\nimport { Button, Tooltip, Input, Modal2, Switch, Modal } from '@gingkoo/pandora';\nimport { FfPlus, FfLine, Repeat, RelatedWork, Type } from '@gingkoo/pandora-icons';\nimport Metabase from '../../index';\nimport isEqual from 'lodash/isEqual';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { uuidv4 } from '../../utils/helper';\nimport { getMaxZIndexInParents } from '../../utils/helper-dom';\n\nimport { __ } from '../../locale';\nimport { findIndex, getSubColumns } from '../../utils';\nimport { TypeEnum, ColumnsPopupThemeEnum, JoinEnum, SQL_COLUMN_TYPE } from '../../store/enum';\nimport {\n MetaListType,\n MetaData,\n MetaJoin,\n MetaData_TableType,\n MetaData_ColumnsType,\n MetaSummarize,\n MetaSummarize_Group,\n MetaSummarize_By,\n MetaCustom,\n MetaJoin_TalbeType,\n} from '../../store/types';\nimport { DatasourceType } from '../../types';\nimport { SummarizeAlias } from '../../store/helper';\nimport { getHelper, changeTableAlias } from '../../utils';\n\nimport Wrapper from './components/Wrapper';\nimport NextDom from './components/meta-icon';\nimport Header from './components/header';\nimport SelectList from '../dialog/select-list';\nimport { LeftJoinIcon, InnerJoinIcon } from '../icons';\nimport { SelectTable, SelectJoin, SelectJoinColumn, SelectColumn } from '../dialog';\nimport { DataType, ColumnType } from '../dialog/select-join-column';\n\nimport { useStore } from '../../hooks/use-provider';\n\nconst PrevResult = 'Previous results';\n\n// function setQuotes(newMeta: any) {\n// newMeta.table1 = {\n// ...newMeta.table1,\n// fieldAlias: newMeta.table1.fieldAlias || newMeta.table1.column,\n// fieldUuid: newMeta.table1.fieldUuid || uuidv4('field'),\n// quotes: newMeta.table1.quotes || newMeta.table1.column,\n// tableUuid: newMeta.table1.tableUuid || uuidv4('table'),\n// };\n// newMeta.table2 = {\n// ...newMeta.table2,\n// fieldAlias: newMeta.table2.fieldAlias || newMeta.table2.column,\n// fieldUuid: newMeta.table2.fieldUuid || uuidv4('field'),\n// quotes: newMeta.table2.quotes || newMeta.table2.column,\n// tableUuid: newMeta.table2.tableUuid || uuidv4('table'),\n// };\n// newMeta.expressions = newMeta.expressions?.map((v: any) => {\n// return {\n// ...v,\n// left_fieldAlias: v.fieldAlias || v.left_column,\n// left_fieldUuid: v.fieldUuid || uuidv4('field'),\n// left_quotes: v.left_quotes || v.left_column,\n// right_fieldAlias: v.right_fieldAlias || v.right_column,\n// right_fieldUuid: v.right_fieldUuid || uuidv4('field'),\n// right_quotes: v.right_quotes || v.right_column,\n// };\n// });\n// return newMeta;\n// }\ninterface PropsType {\n meta: MetaJoin;\n groupIndex: number;\n}\n\nenum FlagLocation {\n TABLE_1 = 'table1',\n TABLE_2 = 'table2',\n}\n\nenum ExpressionsEnum {\n LEFT = 'left',\n RIGHT = 'right',\n}\n\nconst JoinData = (props: PropsType) => {\n const { meta, groupIndex } = props;\n const store = useStore();\n\n let { metaKey } = meta;\n let index = findIndex(store.metaList[groupIndex].list, meta);\n let table1Selected = Boolean(meta.table1.name);\n let table2Selected = Boolean(meta.table2.name);\n let subQuerySelected = Boolean((meta.subquery?.[0] as MetaData)?.table?.name);\n let columnsSelected = meta.table1.quotes && meta.table2.quotes;\n\n // useEffect(() => {\n // let newMetaList = store.metaList[groupIndex].list.slice();\n // newMetaList[index] = setQuotes(meta);\n // store.setMeta(newMetaList, groupIndex);\n // }, []);\n\n function selectColumns(e: any) {\n let columns: MetaData_ColumnsType[] = meta.columns;\n !meta.readonly &&\n store.setPopup({\n visible: true,\n node: e.currentTarget,\n content: (\n <SelectColumn\n data={columns}\n groupIndex={groupIndex}\n onChange={(data: MetaData_ColumnsType[]) => {\n let newMetaList = store.metaList[groupIndex].list.slice();\n (newMetaList[index] as MetaJoin).columns = data;\n store.setMeta(newMetaList, groupIndex);\n }}\n />\n ),\n });\n }\n\n function selectTable(e: any) {\n let value: MetaData_TableType = {\n name: meta.table2.name,\n id: meta.table2.id,\n alias: meta.table2.alias,\n datasourceId: meta.table2.datasourceId,\n datasourceName: meta.table2.datasourceName,\n tableUuid: meta.table2.tableUuid || '',\n };\n !meta.readonly &&\n store.setPopup({\n visible: true,\n node: e.currentTarget,\n content: (\n <SelectTable\n data={store.sourceList as DatasourceType[]}\n value={value}\n onChange={(data: MetaData_TableType) => {\n let tableName = data.name;\n if (\n meta.table2.name !== tableName ||\n meta.table2.datasourceId !== data.datasourceId\n ) {\n let newMeta: MetaListType[] = store.metaList[groupIndex].list.slice();\n\n /**\n * ExistAboveGroupBy: boolean; // 当前元素上面是否存在 聚合\n * prevList: MetaListType[]; // 同 prevTypes 但是放的是 meta[]\n * prevTypes: TypeEnum[]; // 当前元素和上面最近的聚合 中间的types列表\n */\n let { ExistAboveGroupBy, prevList } = getHelper(\n store.metaList[groupIndex].list,\n meta,\n );\n let alias = tableName;\n\n let joins: MetaJoin[] = [];\n let mainTable: MetaData = newMeta[0] as MetaData;\n if (ExistAboveGroupBy) {\n joins = prevList.filter(\n (v: MetaListType) => v.type === TypeEnum.joinData,\n ) as MetaJoin[];\n } else {\n joins = newMeta\n .slice(0, index)\n .filter((v: MetaListType) => v.type === TypeEnum.joinData) as MetaJoin[];\n }\n let aliasRegExp = new RegExp(`^${tableName}_[0-9]+$`);\n // ① 如果在同一层里面已经存在了重名的表并且重名表大于等于两张,找到当前序号最大是多少 给他加一\n let lens = joins\n .filter((v: MetaJoin) => aliasRegExp.test(v.table2.alias))\n .map((v: MetaJoin) => Number(v.table2.alias.split(`${tableName}_`)[1]));\n if (lens.length) {\n alias = `${tableName}_${Math.max.apply(null, lens) + 1}`;\n } else {\n // ② 如果在同一层已经存在了一张重名的表 直接写死序号为2\n if (\n joins.filter((v: MetaJoin) => v.table2.name === tableName).length ||\n (!ExistAboveGroupBy && tableName === mainTable.table.name)\n ) {\n alias = `${tableName}_2`;\n }\n }\n\n let _table2 = {\n ...data,\n name: tableName,\n tableUuid: data.tableUuid || uuidv4('table'),\n alias,\n fieldAlias: '',\n fieldUuid: '',\n quotes: '',\n datasourceId: data.datasourceId,\n datasourceName: data.datasourceName,\n };\n (newMeta[index] as MetaJoin).table2 = _table2;\n (newMeta[index] as MetaJoin).expressions = [];\n\n store.fetchColumns(\n _table2,\n data.datasourceId,\n (columns: MetaData_ColumnsType[]) => {\n (newMeta[index] as MetaJoin).columns = columns;\n\n // 关联表变了 下面模块全部删除\n newMeta = newMeta.filter((v: MetaListType, i: number) => i <= index);\n store.setMeta(newMeta, groupIndex);\n },\n );\n }\n\n store.setPopup({ visible: false });\n }}\n />\n ),\n });\n }\n\n function selectJoin(e: any) {\n let newMeta = store.metaList[groupIndex].list.slice();\n !meta.readonly &&\n store.setPopup({\n visible: true,\n node: e.currentTarget,\n content: (\n <SelectJoin\n value={(newMeta[index] as MetaJoin).joinType as JoinEnum}\n onChange={(type: JoinEnum) => {\n let newMeta = store.metaList[groupIndex].list.slice();\n (newMeta[index] as MetaJoin).joinType = type;\n store.setMeta(newMeta, groupIndex);\n store.setPopup({ visible: false });\n }}\n />\n ),\n });\n }\n\n function selectJoinColumn(e: any) {\n let node = e.currentTarget;\n let type: FlagLocation = node.getAttribute('v-data');\n let data: DataType[] = [];\n let value: ColumnType = {\n name: meta[type].quotes || meta[type].fieldAlias,\n quotes: meta[type].quotes,\n id: meta[type].fieldUuid,\n table: meta[type].name,\n tableId: meta[type].id,\n fieldUuid: meta[type].fieldUuid || uuidv4('field'),\n fieldAlias: meta[type].fieldUuid || '',\n tableUuid: meta[type].tableUuid || uuidv4('table'),\n alias: meta[type].alias,\n database_type: '',\n datasourceId: '',\n datasourceName: '',\n };\n\n let { ExistAboveGroupBy, prevList, prevGroupBy } = getHelper(\n store.metaList[groupIndex].list,\n meta,\n );\n\n if (type === FlagLocation.TABLE_1) {\n if (ExistAboveGroupBy) {\n let _data: DataType = {\n table: (prevGroupBy as MetaSummarize).alias,\n tableId: (prevGroupBy as MetaSummarize).alias,\n tableUuid: (prevGroupBy as MetaSummarize).tableUuid || uuidv4('table'),\n alias: (prevGroupBy as MetaSummarize).alias,\n datasourceId: '',\n datasourceName: '',\n columns: [],\n };\n if (prevGroupBy?.group?.length) {\n _data.columns = _data.columns.concat(\n prevGroupBy.group.map((v: MetaSummarize_Group) => {\n return {\n ...v,\n name: v.quotes,\n database_type: v?.database_type || SQL_COLUMN_TYPE.FLOAT,\n special_type: '',\n sql: v.sql,\n select: true,\n };\n }),\n );\n }\n if (prevGroupBy?.by?.length) {\n _data.columns = _data.columns.concat(\n prevGroupBy.by.map((v: MetaSummarize_By) => {\n return {\n ...v,\n name: v.quotes,\n database_type: v?.database_type || SQL_COLUMN_TYPE.FLOAT,\n special_type: '',\n sql: v.sql,\n select: true,\n };\n }),\n );\n }\n data = [_data];\n\n let joinData = prevList\n .filter((v) => v.type === TypeEnum.joinData)\n .filter((v: MetaJoin) => v && v.table2.name);\n if (joinData.length) {\n data = data.concat(\n joinData.map((v: MetaJoin) => {\n return {\n alias: v.table2.alias,\n table: v.table2.name,\n tableId: v.table2.id,\n tableUuid: v.table2.tableUuid || uuidv4('table'),\n datasourceId: v.table2.datasourceId,\n datasourceName: v.table2.datasourceName,\n columns: v.columns,\n };\n }),\n );\n }\n } else {\n data = store.metaList[groupIndex].list\n .slice(0, index)\n .reduce((mo: DataType[], v: MetaListType) => {\n if (v.type === TypeEnum.data) {\n mo.push({\n alias: v.table.alias,\n table: v.table.name,\n tableId: v.table.id,\n tableUuid: v.table.tableUuid || uuidv4('table'),\n columns: v.columns,\n datasourceId: v.table.datasourceId,\n datasourceName: v.table.datasourceName,\n });\n } else if (v.type === TypeEnum.joinData) {\n mo.push({\n alias: (v as MetaJoin).table2.alias,\n table: (v as MetaJoin).table2.name,\n tableId: (v as MetaJoin).table2.id,\n tableUuid: v.table2.tableUuid || uuidv4('table'),\n columns: (v as MetaJoin).columns,\n datasourceId: (v as MetaJoin).table2.datasourceId,\n datasourceName: (v as MetaJoin).table2.datasourceName,\n });\n }\n return mo;\n }, []);\n }\n } else {\n data = [\n {\n alias: meta.table2.alias,\n table: meta.table2.name,\n tableId: meta.table2.id,\n tableUuid: meta.table2.tableUuid || uuidv4('table'),\n datasourceId: meta.table2.datasourceId,\n datasourceName: meta.table2.datasourceName,\n columns: meta.columns,\n },\n ];\n }\n\n !meta.readonly &&\n store.setPopup({\n visible: true,\n node,\n content: (\n <SelectJoinColumn\n data={data}\n value={value}\n theme={ColumnsPopupThemeEnum.skyBlue}\n onSelect={(record: ColumnType & DatasourceType) => {\n let {\n table,\n alias,\n name,\n sql,\n datasourceId,\n datasourceName,\n id = '',\n fieldAlias = '',\n fieldUuid = '',\n quotes,\n tableUuid,\n } = record;\n\n let newMeta = store.metaList[groupIndex].list.slice();\n if (alias === SummarizeAlias) {\n ((newMeta[index] as MetaJoin)[type] as MetaJoin_TalbeType).fieldAlias = fieldAlias;\n ((newMeta[index] as MetaJoin)[type] as MetaJoin_TalbeType).fieldUuid = fieldUuid;\n ((newMeta[index] as MetaJoin)[type] as MetaJoin_TalbeType).quotes = quotes;\n } else {\n ((newMeta[index] as MetaJoin)[type] as MetaJoin_TalbeType).fieldAlias = name;\n ((newMeta[index] as MetaJoin)[type] as MetaJoin_TalbeType).fieldUuid = id;\n ((newMeta[index] as MetaJoin)[type] as MetaJoin_TalbeType).quotes = name;\n }\n\n if (type === FlagLocation.TABLE_1) {\n if (((newMeta[index] as MetaJoin)[type] as MetaJoin_TalbeType).alias !== alias) {\n ((newMeta[index] as MetaJoin)[type] as MetaJoin_TalbeType).alias = alias;\n ((newMeta[index] as MetaJoin)[type] as MetaJoin_TalbeType).name = table;\n ((newMeta[index] as MetaJoin)[type] as MetaJoin_TalbeType).tableUuid = tableUuid;\n\n ((newMeta[index] as MetaJoin)[type] as MetaJoin_TalbeType).datasourceId =\n datasourceId;\n ((newMeta[index] as MetaJoin)[type] as MetaJoin_TalbeType).datasourceName =\n datasourceName;\n (newMeta[index] as MetaJoin).expressions = [];\n if (alias === SummarizeAlias) {\n ((newMeta[index] as MetaJoin)[type] as MetaJoin_TalbeType).groupSql =\n sql?.split(' AS ')?.[1] || '';\n }\n }\n }\n\n store.setMeta(newMeta, groupIndex);\n store.setPopup({ visible: false });\n }}\n />\n ),\n });\n }\n function selectMoreJoinColumn(e: any) {\n let node = e.currentTarget;\n let type: ExpressionsEnum = node.getAttribute('v-data');\n let _ind: number = Number(node.getAttribute('v-index'));\n let index = findIndex(store.metaList[groupIndex].list, meta);\n let table_type = type === ExpressionsEnum.LEFT ? FlagLocation.TABLE_1 : FlagLocation.TABLE_2;\n let value: ColumnType = {\n name:\n meta.expressions[_ind][`${type}_quotes`] || meta.expressions[_ind][`${type}_fieldAlias`],\n id: meta.expressions[_ind][`${type}_fieldUuid`],\n table: meta[table_type].name,\n fieldUuid: meta[table_type].fieldUuid || uuidv4('field'),\n fieldAlias: meta[table_type].fieldAlias || '',\n tableId: meta[table_type].id,\n tableUuid: meta[table_type].tableUuid || uuidv4('table'),\n alias: meta[table_type].alias,\n database_type: '',\n datasourceId: meta[table_type].datasourceId, // 数据源id\n datasourceName: meta[table_type].datasourceName, // 数据源名\n };\n let data: DataType[] = [];\n\n let { ExistAboveGroupBy, prevList, prevGroupBy } = getHelper(\n store.metaList[groupIndex].list,\n meta,\n );\n\n if (type === ExpressionsEnum.LEFT) {\n if (ExistAboveGroupBy) {\n let _data: DataType = {\n table: (prevGroupBy as MetaSummarize).alias,\n tableId: (prevGroupBy as MetaSummarize).alias,\n tableUuid: (prevGroupBy as MetaSummarize).tableUuid || uuidv4('table'),\n alias: (prevGroupBy as MetaSummarize).alias,\n datasourceId: '',\n datasourceName: '',\n columns: [],\n };\n if (prevGroupBy?.group?.length) {\n _data.columns = _data.columns.concat(\n prevGroupBy.group.map((v: MetaSummarize_Group) => {\n return {\n ...v,\n name: v.quotes,\n database_type: v?.database_type || SQL_COLUMN_TYPE.FLOAT,\n special_type: '',\n sql: v.sql,\n select: true,\n };\n }),\n );\n }\n if (prevGroupBy?.by?.length) {\n _data.columns = _data.columns.concat(\n prevGroupBy.by.map((v: MetaSummarize_By) => {\n return {\n ...v,\n name: v.quotes,\n database_type: v?.database_type || SQL_COLUMN_TYPE.FLOAT,\n special_type: '',\n sql: v.sql,\n select: true,\n };\n }),\n );\n }\n data = [_data];\n\n let joinData = prevList\n .filter((v) => v.type === TypeEnum.joinData)\n .filter((v: MetaJoin) => v && v.table2.name);\n if (joinData.length) {\n data = data.concat(\n joinData.map((v: MetaJoin) => {\n return {\n alias: v.table2.alias,\n table: v.table2.name,\n tableId: v.table2.id,\n tableUuid: v.table2.tableUuid || uuidv4('table'),\n datasourceId: v.table2.datasourceId,\n datasourceName: v.table2.datasourceName,\n columns: v.columns,\n };\n }),\n );\n }\n } else {\n data = store.metaList[groupIndex].list\n .slice(0, index)\n .reduce((mo: DataType[], v: MetaListType) => {\n if (v.type === TypeEnum.data) {\n mo.push({\n alias: v.table.alias,\n table: v.table.name,\n tableId: v.table.id,\n tableUuid: v.table.tableUuid || uuidv4('table'),\n columns: v.columns,\n datasourceId: v.table.datasourceId,\n datasourceName: v.table.datasourceName,\n });\n } else if (v.type === TypeEnum.joinData) {\n mo.push({\n alias: (v as MetaJoin).table2.alias,\n table: (v as MetaJoin).table2.name,\n tableId: (v as MetaJoin).table2.id,\n tableUuid: (v as MetaJoin).table2.tableUuid || uuidv4('table'),\n columns: (v as MetaJoin).columns,\n datasourceId: (v as MetaJoin).table2.datasourceId,\n datasourceName: (v as MetaJoin).table2.datasourceName,\n });\n }\n return mo;\n }, []);\n }\n\n // 过滤为table1选中的表\n let newMeta = store.metaList[groupIndex].list.slice();\n data = data.filter((v) => {\n return (\n ((newMeta[index] as MetaJoin)[FlagLocation.TABLE_1] as MetaJoin_TalbeType).name == v.table\n );\n });\n } else {\n data = [\n {\n alias: meta.table2.alias,\n table: meta.table2.name,\n tableId: meta.table2.id,\n tableUuid: meta.table2.tableUuid || uuidv4('table'),\n datasourceId: meta.table2.datasourceId,\n datasourceName: meta.table2.datasourceName,\n columns: meta.columns,\n },\n ];\n }\n\n !meta.readonly &&\n store.setPopup({\n visible: true,\n node,\n content: (\n <SelectJoinColumn\n data={data}\n value={value}\n theme={ColumnsPopupThemeEnum.skyBlue}\n onSelect={(record: ColumnType & DatasourceType) => {\n let {\n table,\n alias,\n name,\n sql,\n datasourceId,\n datasourceName,\n id = '',\n fieldAlias,\n fieldUuid,\n quotes = '',\n } = record;\n let newMeta = store.metaList[groupIndex].list.slice();\n\n if (alias === SummarizeAlias) {\n (newMeta[index] as MetaJoin).expressions[_ind][`${type}_fieldAlias`] = fieldAlias;\n (newMeta[index] as MetaJoin).expressions[_ind][`${type}_fieldUuid`] = fieldUuid;\n (newMeta[index] as MetaJoin).expressions[_ind][`${type}_quotes`] = quotes;\n } else {\n (newMeta[index] as MetaJoin).expressions[_ind][`${type}_fieldAlias`] = name;\n (newMeta[index] as MetaJoin).expressions[_ind][`${type}_fieldUuid`] = id;\n (newMeta[index] as MetaJoin).expressions[_ind][`${type}_quotes`] = name;\n }\n\n // (newMeta[index] as MetaJoin).expressions[_ind][type] = name;\n // (newMeta[index] as MetaJoin).expressions[_ind][`${type}_id`] = id;\n\n store.setMeta(newMeta, groupIndex);\n store.setPopup({ visible: false });\n }}\n />\n ),\n });\n }\n function selectConstant(e: any) {\n let node = e.currentTarget;\n let _ind: number = Number(node.getAttribute('v-index'));\n let _position: 'left' | 'right' = node.getAttribute('v-position');\n let _val: string = node.getAttribute('v-val');\n\n store.setPopup({\n visible: true,\n node: e.currentTarget,\n content: (\n <SelectList\n value={_val}\n list={store.constantList || []}\n onChange={(val: any) => {\n closePopup();\n let curObj = store.constantList.filter((v: any) => v.value === val)[0];\n let index = findIndex(store.metaList[groupIndex].list, meta);\n let newMeta = store.metaList[groupIndex].list.slice();\n (newMeta[index] as MetaJoin).expressions[_ind][`${_position}_string`] = val;\n (newMeta[index] as MetaJoin).expressions[_ind][`${_position}_constant`] = curObj.label;\n store.setMeta(newMeta, groupIndex);\n }}\n />\n ),\n });\n }\n\n function closePopup() {\n store.setPopup({ visible: false });\n }\n\n // 修改输入框类型\n function onChangeType(e: any, position: 'left' | 'right', _ind: number) {\n let index = findIndex(store.metaList[groupIndex].list, meta);\n let newMeta = store.metaList[groupIndex].list.slice();\n store.setPopup({\n visible: true,\n node: e.currentTarget,\n content: (\n <SelectList\n value={(newMeta[index] as MetaJoin).expressions[_ind][`${position}_type`]}\n list={[\n { value: 'string', label: __('SqlQueryBuilder.input') },\n { value: 'constant', label: __('customColumn.constant') },\n { value: '', label: __('SqlQueryBuilder.columns') },\n ]}\n onChange={(type: any) => {\n closePopup();\n (newMeta[index] as MetaJoin).expressions[_ind][`${position}_type`] = type;\n store.setMeta(newMeta, groupIndex);\n }}\n />\n ),\n });\n }\n function onChangeString(type: 'left_string' | 'right_string', _ind: number, val: string) {\n let index = findIndex(store.metaList[groupIndex].list, meta);\n let newMeta = store.metaList[groupIndex].list.slice();\n (newMeta[index] as MetaJoin).expressions[_ind][type] = val;\n store.setMeta(newMeta, groupIndex);\n }\n\n // 子查询弹窗\n const showSubQuery = (val: any = []) => {\n const { subToolbar, toolbar, ...other } = store.preProps;\n\n let newMeta: MetaListType[] = store.metaList[groupIndex].list.slice();\n let index = findIndex(store.metaList[groupIndex].list, meta);\n let oldList = cloneDeep((newMeta[index] as MetaJoin).subquery);\n let _toolbar = subToolbar || toolbar;\n _toolbar = _toolbar.filter((v: string) => v !== 'group'); // 子查询不需要分组\n\n let zIndex = store.popupContainer.current\n ? getMaxZIndexInParents(store.popupContainer.current)\n : 0;\n let o = Modal2.openModal({\n title: __('SqlQueryBuilder.subquery'),\n transparentMask: true,\n zIndex: Number(zIndex),\n content: (\n <>\n <Metabase\n {...other}\n showSubquery={store._showSubquery}\n toolbar={_toolbar}\n btnText={__('SqlQueryBuilder.confirm')}\n value={val}\n onOk={(newList) => {\n try {\n // 子查询未改变不做操作\n if (isEqual(newList, oldList)) {\n o.close();\n return;\n }\n (newMeta[index] as MetaJoin).subquery = newList;\n (newMeta[index] as MetaJoin).table2 = {\n ...newList[0].table,\n };\n\n const items = getSubColumns(newList);\n const newColumns = items.flatMap((item) => item.columns);\n (newMeta[index] as MetaJoin).columns = newColumns;\n (newMeta[index] as MetaJoin).expressions = [];\n // 关联表变了 下面模块全部删除\n newMeta = newMeta.filter((v: MetaListType, i: number) => i <= index);\n store.setMeta(newMeta, groupIndex);\n o.close();\n } catch (e) {\n console.warn(e);\n } finally {\n o.close();\n }\n }}\n />\n </>\n ),\n onClose: () => {},\n });\n };\n\n // 切换子查询\n const switchSubQuery = () => {\n let index = findIndex(store.metaList[groupIndex].list, meta);\n let newMeta: MetaListType[] = store.metaList[groupIndex].list.slice();\n (newMeta[index] as MetaJoin).isSubquery = !(newMeta[index] as MetaJoin).isSubquery;\n (newMeta[index] as MetaJoin).table2 = {\n quotes: '',\n fieldAlias: '',\n fieldUuid: '',\n name: '', // 表名\n tableUuid: '',\n id: '', // 表名\n alias: '', // 表别名\n datasourceName: '', // 数据源名\n datasourceId: '', // 数据源id\n groupSql: '', //如果table1 是结果集 那么这个字段 就有值,放结果集的别名\n };\n (newMeta[index] as MetaJoin).expressions = [];\n (newMeta[index] as MetaJoin).subquery = [];\n store.setMeta(newMeta, groupIndex);\n };\n\n const onChangeTableAlias = (val: string) => {\n let alias = val || '';\n Modal.confirm({\n title: __('SqlQueryBuilder.alias'), // 设置别名\n content: (\n <Input\n defaultValue={alias}\n onChange={(val) => {\n alias = val;\n }}\n ></Input>\n ),\n onOk: () => {\n let index = findIndex(store.metaList[groupIndex].list, meta);\n let newMeta: MetaListType[] = store.metaList[groupIndex].list.slice();\n (newMeta[index] as MetaJoin).table2.alias = alias;\n\n newMeta = changeTableAlias(newMeta, (newMeta[index] as MetaJoin).table2);\n\n store.setMeta(newMeta, groupIndex);\n },\n onCancel: () => {},\n });\n };\n\n return (\n <Wrapper className={cx(`Sqb-item`)} key={metaKey}>\n <div className={cx(`Sqb-hover-parent`)}>\n <Header\n title={__('SqlQueryBuilder.joinData')}\n onClose={() => store.delMeta(meta, groupIndex)}\n />\n <div className={cx(`Sqb-item--content`)}>\n <div className={cx(`Sqb-NotebookCell`)}>\n <div className={cx(`Sqb-TableName noClick`)}>\n {!table1Selected || meta.table1.name === SummarizeAlias\n ? PrevResult\n : `${meta.table1.datasourceName}.${meta.table1.name}`}\n </div>\n\n <div onClick={selectJoin}>\n {meta.joinType === JoinEnum.left ? (\n <LeftJoinIcon style={{ marginRight: '0.5rem', cursor: 'pointer' }} />\n ) : meta.joinType === JoinEnum.right ? (\n <LeftJoinIcon\n style={{ transform: 'rotate(-180deg)', marginRight: '0.5rem', cursor: 'pointer' }}\n />\n ) : (\n <InnerJoinIcon style={{ marginRight: '0.5rem', cursor: 'pointer' }} />\n )}\n </div>\n {meta.isSubquery ? (\n <div\n className={cx(`Sqb-TableName`, { notSelected: !subQuerySelected })}\n onClick={() => {\n showSubQuery(meta.subquery);\n }}\n >\n {subQuerySelected && (\n <Tooltip title={__('SqlQueryBuilder.alias')}>\n <Button\n className={':Sqb-TableName-as'}\n shape='circle'\n iconOnly\n primary\n icon={'As'}\n size='small'\n onClick={(e) => {\n e.stopPropagation();\n onChangeTableAlias(meta.table2?.alias || '');\n }}\n ></Button>\n </Tooltip>\n )}\n {subQuerySelected\n ? `${(meta.subquery?.[0] as MetaData).table.datasourceName}.${(meta.subquery?.[0] as MetaData).table.name} ${meta.table2?.alias ? `as ${meta.table2?.alias}` : ''} `\n : __('SqlQueryBuilder.setSubQuery')}\n </div>\n ) : (\n <div\n className={cx(`Sqb-TableName`, { notSelected: !table2Selected })}\n onClick={selectTable}\n >\n {table2Selected && (\n <Tooltip title={__('SqlQueryBuilder.alias')}>\n <Button\n className={':Sqb-TableName-as'}\n shape='circle'\n iconOnly\n primary\n icon={'As'}\n size='small'\n onClick={(e) => {\n e.stopPropagation();\n onChangeTableAlias(meta.table2?.alias || '');\n }}\n ></Button>\n </Tooltip>\n )}\n {table2Selected\n ? `${meta.table2.datasourceName}.${meta.table2.name} ${meta.table2?.alias ? `as ${meta.table2?.alias}` : ''}`\n : __('SqlQueryBuilder.pickTable')}\n </div>\n )}\n {store.showSubquery && (\n <Tooltip title={__('SqlQueryBuilder.switchSubQuery')}>\n <Button\n disabled={meta.readonly}\n primary={meta.isSubquery}\n ghost\n className={cx('mr-2 operator-icon', {\n ['subquery-icon']: !meta.isSubquery,\n })}\n icon={<RelatedWork />}\n onClick={switchSubQuery}\n />\n </Tooltip>\n )}\n\n {table2Selected && (\n <div className={cx(`Sqb-where`)}>\n <span className={'ml-2 mr-4 text-gray-500'}>on</span>\n <div\n className={cx(`Sqb-TableName`, { notSelected: !meta.table1.quotes })}\n v-data={FlagLocation.TABLE_1}\n onClick={selectJoinColumn}\n >\n {meta.table1.quotes ? meta.table1.quotes : __('SqlQueryBuilder.pickTable')}\n </div>\n <span className={'mr-2 text-gray-500'}>=</span>\n <div\n className={cx(`Sqb-TableName`, { notSelected: !meta.table2.quotes })}\n v-data={FlagLocation.TABLE_2}\n onClick={selectJoinColumn}\n >\n {meta.table2.quotes ? meta.table2.quotes : __('SqlQueryBuilder.pickTable')}\n </div>\n </div>\n )}\n {meta.table1.fieldUuid &&\n meta.table2.fieldUuid &&\n meta.expressions?.map((v, i) => {\n return (\n <div className={cx(`Sqb-where block`)} key={i}>\n <span className={'ml-2 mr-4 text-gray-500'}>{v.operator}</span>\n {v.left_type === 'string' && (\n <Input\n disabled={meta.readonly}\n className={':Sqb-TableName-input'}\n value={v.left_string}\n placeholder={__('SqlQueryBuilder.pleaseEnter')}\n style={{ width: '180px' }}\n size='large'\n onChange={(val) => {\n onChangeString('left_string', i, val);\n }}\n />\n )}\n {v.left_type === 'constant' && (\n <div\n className={cx(`Sqb-TableName`, { notSelected: !v.left_string })}\n v-position={'left'}\n v-index={i}\n v-val={v.left_string}\n onClick={selectConstant}\n >\n {v.left_constant ? v.left_constant : __('SqlQueryBuilder.pickConstant')}\n </div>\n )}\n {(!v.left_type || v.left_type === 'field') && (\n <div\n className={cx(`Sqb-TableName`, { notSelected: !v.left_quotes })}\n v-data={ExpressionsEnum.LEFT}\n v-index={i}\n onClick={selectMoreJoinColumn}\n >\n {v.left_quotes ? v.left_quotes : __('SqlQueryBuilder.pickTable')}\n </div>\n )}\n\n <Tooltip title={__('SqlQueryBuilder.switch')}>\n <Button\n disabled={meta.readonly}\n primary\n ghost\n className={'mr-2 operator-icon'}\n icon={<Repeat />}\n onClick={(e) => {\n onChangeType(e, 'left', i);\n }}\n />\n </Tooltip>\n\n <span className={'mr-2 text-gray-500'}>=</span>\n\n {v.right_type === 'string' && (\n <Input\n disabled={meta.readonly}\n className={':Sqb-TableName-input'}\n value={v.right_string}\n placeholder={__('SqlQueryBuilder.pleaseEnter')}\n style={{ width: '180px' }}\n size='large'\n onChange={(val) => {\n onChangeString('right_string', i, val);\n }}\n />\n )}\n {v.right_type === 'constant' && (\n <div\n className={cx(`Sqb-TableName`, { notSelected: !v.right_string })}\n v-position={'right'}\n v-index={i}\n v-val={v.right_string}\n onClick={selectConstant}\n >\n {v.right_constant ? v.right_constant : __('SqlQueryBuilder.pickConstant')}\n </div>\n )}\n\n {(!v.right_type || v.right_type === 'field') && (\n <div\n className={cx(`Sqb-TableName`, { notSelected: !v.right_quotes })}\n v-data={ExpressionsEnum.RIGHT}\n v-index={i}\n onClick={selectMoreJoinColumn}\n >\n {v.right_quotes ? v.right_quotes : __('SqlQueryBuilder.pickTable')}\n </div>\n )}\n {/* \n {v.right_isString ? (\n <Input\n disabled={meta.readonly}\n className={':Sqb-TableName-input'}\n value={v.right_string}\n placeholder={__('SqlQueryBuilder.pleaseEnter')}\n style={{ width: '180px' }}\n size='large'\n onChange={(val) => {\n onChangeString('right_string', i, val);\n }}\n />\n ) : (\n <div\n className={cx(`Sqb-TableName`, { notSelected: !v.right_column })}\n v-data={ExpressionsEnum.RIGHT}\n v-index={i}\n onClick={selectMoreJoinColumn}\n >\n {v.right_column ? v.right_column : __('SqlQueryBuilder.pickTable')}\n </div>\n )} */}\n\n <Tooltip title={__('SqlQueryBuilder.switch')}>\n <Button\n disabled={meta.readonly}\n primary\n ghost\n className={'mr-2 operator-icon'}\n icon={<Repeat />}\n onClick={(e) => {\n onChangeType(e, 'right', i);\n }}\n />\n </Tooltip>\n <Tooltip title={__('SqlQueryBuilder.add')}>\n <Button\n disabled={meta.readonly}\n primary\n ghost\n className={'mr-2 operator-icon'}\n icon={<FfPlus />}\n onClick={() => {\n let index = findIndex(store.metaList[groupIndex].list, meta);\n\n let newMeta: MetaListType[] = store.metaList[groupIndex].list.slice();\n (newMeta[index] as MetaJoin).expressions.splice(i + 1, 0, {\n operator: 'and',\n left_fieldAlias: '',\n left_fieldUuid: '',\n left_quotes: '',\n left_string: '',\n left_type: 'field',\n left_constant: '',\n right_fieldAlias: '',\n right_fieldUuid: '',\n right_quotes: '',\n right_string: '',\n // right_isString: false,\n right_type: 'field',\n right_constant: '',\n });\n store.setMeta(newMeta, groupIndex);\n }}\n />\n </Tooltip>\n {meta.expressions.length > 0 && (\n <Tooltip title={__('SqlQueryBuilder.del')}>\n <Button\n disabled={meta.readonly}\n danger\n className={'mr-2 operator-icon'}\n icon={<FfLine />}\n onClick={() => {\n let index = findIndex(store.metaList[groupIndex].list, meta);\n\n let newMeta: MetaListType[] = store.metaList[groupIndex].list.slice();\n (newMeta[index] as MetaJoin).expressions.splice(i, 1);\n store.setMeta(newMeta, groupIndex);\n }}\n />\n </Tooltip>\n )}\n </div>\n );\n })}\n {meta.table1.fieldUuid &&\n meta.table2.fieldUuid &&\n (meta.expressions?.length || 0) < 1 && (\n <Tooltip title={__('SqlQueryBuilder.add')}>\n <Button\n disabled={meta.readonly}\n primary\n ghost\n className={'mr-2 operator-icon'}\n icon={<FfPlus />}\n onClick={() => {\n let index = findIndex(store.metaList[groupIndex].list, meta);\n\n let newMeta: MetaListType[] = store.metaList[groupIndex].list.slice();\n (newMeta[index] as MetaJoin).expressions = [\n {\n operator: 'and',\n left_fieldAlias: '',\n left_fieldUuid: '',\n left_quotes: '',\n\n left_string: '',\n left_type: 'field',\n left_constant: '',\n right_fieldAlias: '',\n right_fieldUuid: '',\n right_quotes: '',\n right_string: '',\n // right_isString: false,\n right_constant: '',\n right_type: 'field',\n },\n ];\n store.setMeta(newMeta, groupIndex);\n }}\n />\n </Tooltip>\n )}\n\n {columnsSelected && store.showFields && (\n <div className={`Sqb-TableColumns`} onClick={selectColumns}>\n {__('SqlQueryBuilder.columns')}\n </div>\n )}\n </div>\n </div>\n\n <NextDom meta={meta} groupIndex={groupIndex} />\n </div>\n </Wrapper>\n );\n};\n\nexport default JoinData;\n","import { __ } from '../../../locale';\n\nexport enum OptionsTypeEnum {\n CONSTANT = 'constant', // 常量\n INPUT = 'input', // 输入框\n FIELD = 'field', // 字段\n OPERATOR = 'operator', // 运算符\n EXPRESSION = 'expression', // 公式\n OTHER = 'other', // 其他\n}\nexport enum FunctionEnum {\n LOWER = 'lower',\n UPPER = 'upper',\n SUBSTRING = 'substring',\n REGEX_MATCH_FIRST = 'regex-match-first',\n 'CONCAT' = 'concat',\n 'REPLACE' = 'replace',\n 'TRIM' = 'trim',\n 'RTRIM' = 'RTRIM',\n 'LTRIM' = 'rtrim',\n 'LENGTH' = 'length',\n // NUMBER\n 'ABS' = 'abs',\n 'FLOOR' = 'floor',\n 'CEIL' = 'ceil',\n 'ROUND' = 'round',\n 'SQRT' = 'sqrt',\n 'POWER' = 'power',\n 'LOG' = 'log',\n 'EXP' = 'exp',\n // BOOLEAN\n 'CONTAINS' = 'contains',\n 'ENDS_WITH' = 'ends-with',\n 'STARTS_WITH' = 'starts-with',\n 'BETWEEN' = 'between',\n 'TIME_INTERVAL' = 'time-interval',\n 'IS_NULL' = 'is-null',\n 'IS_EMPTY' = 'is-empty',\n // OTHER\n 'COALESCE' = 'coalesce',\n}\n\nexport const operatorList = [\n '+',\n '-',\n '*',\n '/',\n '!=',\n '<=',\n '>=',\n '<',\n '>',\n '=',\n 'not',\n 'and',\n 'or',\n '(',\n ')',\n];\nexport const otherList = ['case', 'when', 'then', 'else', 'end'];\n\nexport const functionList = [\n 'lower',\n 'upper',\n 'substring',\n 'regex-match-first',\n 'concat',\n 'replace',\n 'trim',\n 'rtrim',\n 'ltrim',\n 'length',\n // number\n 'abs',\n 'floor',\n 'ceil',\n 'round',\n 'sqrt',\n 'power',\n 'log',\n 'exp',\n // boolean\n 'contains',\n 'ends-with',\n 'starts-with',\n 'between',\n 'time-interval',\n 'is-null',\n 'is-empty',\n // other\n 'coalesce',\n];\n\nexport const customTypes = [\n {\n value: OptionsTypeEnum.FIELD,\n label: __('customColumn.field'),\n },\n {\n value: OptionsTypeEnum.INPUT,\n label: __('SqlQueryBuilder.input'),\n },\n {\n value: OptionsTypeEnum.OPERATOR,\n label: __('customColumn.operator'),\n },\n {\n value: OptionsTypeEnum.EXPRESSION,\n label: __('customColumn.expression'),\n },\n {\n value: OptionsTypeEnum.OTHER,\n label: __('customColumn.other'),\n },\n];\n","import { OptionsTypeEnum } from './enum';\n/**\n *\n * @param type 当前选择的类型\n * @param list 当前数组\n * @param index 需要讲模版插入的位置\n * @returns\n */\nexport const getTemplate = (type: string, list: any[], index: number) => {\n let temList: any[] = [];\n if (type === 'case') {\n temList = [\n {\n operator: 'when',\n type: OptionsTypeEnum.OTHER,\n expression: '',\n },\n {\n operator: '',\n type: '',\n expression: '',\n },\n {\n operator: 'then',\n type: OptionsTypeEnum.OTHER,\n expression: '',\n },\n {\n operator: '',\n type: '',\n expression: '',\n },\n {\n operator: 'end',\n type: OptionsTypeEnum.OTHER,\n expression: '',\n },\n ];\n }\n if (type === 'when') {\n temList = [\n {\n operator: '',\n type: '',\n expression: '',\n },\n {\n operator: 'then',\n type: OptionsTypeEnum.OTHER,\n expression: '',\n },\n {\n operator: '',\n type: '',\n expression: '',\n },\n ];\n }\n list.splice(index + 1, 0, ...temList);\n return list;\n};\n","var img = \"data:image/svg+xml,%3c!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='26px' height='18px' version='1.1'%3e%3cpath d='m 1 6 L 14 6 L 14 1 L 26 9 L 14 18 L 14 12 L 1 12 z' stroke='white' fill='%2329b6f2'/%3e%3c/svg%3e\";\n export default img;","import React, { useEffect, useState, useMemo, useRef } from 'react';\nimport cx from 'classnames';\nimport './index.less';\nimport Popup from '../../popup';\n\nimport { __ } from '../../../locale';\nimport { getTemplate } from './utils';\nimport Styled from 'styled-components';\nimport { OptionsTypeEnum, customTypes, otherList, operatorList, functionList } from './enum';\nimport { MetaCustom_Item, MetaSummarize_By, MetaFilter_Item } from '../../../store/types';\nimport { Select, Input } from '@gingkoo/pandora';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { SummarizeAlias } from '../../../store/helper';\nimport { uuidv4 } from '../../../utils/helper';\n\nimport { AddIcon, CloseIcon } from '../../icons';\nimport { SelectFilter, SelectColumn, SelectJoinColumn } from '../../dialog';\nimport arrow from './arrow.svg';\nimport { getMaxZIndexInParents } from '../../../utils/helper-dom';\nimport { useStore } from '../../../hooks/use-provider';\n\ninterface ValueMap {\n operator: string;\n expression: any; // 可能是字符串 也可能是对象,表达式\n type: OptionsTypeEnum; // case or if\n}\ninterface PopupType {\n visible: boolean;\n content?: React.ReactElement;\n node?: any;\n innerSpacing?: number;\n}\ninterface PropsType {\n value: MetaCustom_Item;\n data: any;\n onOk: Function;\n onCancel: Function;\n}\nconst VisualBox = Styled.div.attrs({ className: 'visual-box' })``;\n\nconst CaseEditor = (props: PropsType) => {\n const { value, data, onOk, onCancel } = props;\n // const [popup, setPopup] = useState<PopupType>({ visible: false }); // 弹框信息\n const [caseList, setCaseList] = useState<any>(value.formulaList || []);\n const [name, setName] = useState<string>(value?.name || ''); // 表达式名字\n\n const [ind, setInd] = useState(-1);\n const ref = useRef(null);\n\n const store = useStore();\n\n const filterCase = useMemo(() => {\n const hasCase = caseList.some(\n (item: ValueMap) => item.type === OptionsTypeEnum.OTHER && item.operator === 'case',\n );\n if (hasCase) {\n return otherList.filter((item) => item !== 'case');\n }\n return otherList;\n }, [caseList]);\n // 提交按钮是否可用\n const usable = useMemo(() => {\n return Array.from(caseList).length > 0 && name;\n }, [caseList, name]);\n\n // const popupContent = useMemo(() => {\n // let { visible, content } = popup;\n // if (!visible) return null;\n // return content;\n // }, [popup]);\n\n function closePopup() {\n store.setPopup({ visible: false });\n }\n\n // 字段\n function handleField(e: any, i: number, val: any) {\n store.setPopup({\n visible: true,\n node: e.currentTarget,\n container: ref.current,\n content: (\n <SelectJoinColumn\n data={data}\n value={val}\n // theme={ColumnsPopupThemeEnum.greenGrass}\n isGroup={true}\n // @ts-ignore\n onGroup={(data: MetaSummarize_By) => {\n let _data = cloneDeep(data);\n if (_data.alias != SummarizeAlias) {\n _data.fieldAlias = _data.name;\n _data.fieldUuid = uuidv4('field');\n }\n\n const _caseList = caseList.slice();\n _caseList[i].expression = _data;\n setCaseList(_caseList);\n closePopup();\n }}\n />\n ),\n });\n }\n\n // 常量\n const handleConstant = (val: any, i: number) => {\n let _caseList = caseList.slice();\n (_caseList[i] as ValueMap).operator = val;\n _caseList = getTemplate(val, _caseList, i);\n\n setCaseList(_caseList);\n };\n\n // 表达式\n function handleExpression(e: any, i: number, val: any) {\n store.setPopup({\n visible: true,\n node: e.currentTarget,\n container: ref.current,\n content: (\n <SelectFilter\n isCustom\n container={ref.current}\n data={data}\n value={val}\n onChange={(data: MetaFilter_Item) => {\n let _data = cloneDeep(data);\n if (_data.alias != SummarizeAlias) {\n _data.fieldAlias = _data.name;\n _data.fieldUuid = uuidv4('field');\n }\n const _caseList = caseList.slice();\n _caseList[i].expression = _data;\n setCaseList(_caseList);\n closePopup();\n }}\n />\n ),\n });\n }\n // 删除\n function handleDel(e: any, index: number) {\n e.stopPropagation();\n const _caseList = caseList.slice();\n _caseList.splice(index, 1);\n setCaseList(_caseList);\n closePopup();\n }\n\n // 添加\n const addOperator = (val: string, index: number, position: string) => {\n const _caseList = caseList.slice() || [];\n\n let temItem = {\n operator: '',\n type: val,\n expression: '',\n };\n if (position === 'add') {\n _caseList.push(temItem);\n } else if (position === 'before') {\n (_caseList as any).splice(index, 0, temItem);\n } else if (position === 'after') {\n (_caseList as any).splice(index + 1, 0, temItem);\n } else {\n //替换\n (_caseList as any).splice(index, 1, temItem);\n }\n setCaseList(_caseList);\n };\n\n // 取消\n const _onClose = () => {\n onCancel?.();\n };\n\n // 确定\n const _onOk = () => {\n typeof onOk === 'function' && onOk?.({ name, formulaList: caseList });\n };\n\n // 分段\n const itemDom = (v: any, index: number) => {\n const { type } = v;\n if (type === OptionsTypeEnum.FIELD) {\n // 字段\n return (\n <div\n className={cx(`Sqb-TableName `, {\n notSelected: !v.expression?.quotes,\n })}\n onClick={(e) => handleField(e, index, v.expression)}\n >\n {!v.expression?.quotes && __('customColumn.selectField')}\n {v.expression.quotes}\n <span style={{ fontSize: 0 }} onClick={(e) => handleDel(e, index)}>\n <CloseIcon />\n </span>\n </div>\n );\n } else if (type === OptionsTypeEnum.INPUT) {\n // 输入框\n return (\n <div className={cx(`Sqb-TableName notSelected `)}>\n <Input\n className={':Sqb-Custom-input'}\n value={v.operator}\n placeholder={__('SqlQueryBuilder.pleaseEnter')}\n size='large'\n onChange={(val) => {\n handleConstant(val, index);\n }}\n />\n\n <span style={{ fontSize: 0 }} onClick={(e) => handleDel(e, index)}>\n <CloseIcon />\n </span>\n </div>\n );\n } else if (type === OptionsTypeEnum.OPERATOR) {\n //连接符\n return (\n <Select\n triggerProps={{\n clickToClose: true,\n }}\n value={v.operator}\n triggerElement={(value) => {\n return (\n <div\n className={cx(`Sqb-TableName `, {\n notSelected: !v.operator,\n })}\n >\n {!v.operator && __('customColumn.selectOperator')}\n {v.operator}\n <span style={{ fontSize: 0 }} onClick={(e) => handleDel(e, index)}>\n <CloseIcon />\n </span>\n </div>\n );\n }}\n onChange={(val) => {\n handleConstant(val, index);\n }}\n >\n {operatorList.map((option, index) => (\n <Select.Option key={index + '' + ind} value={option}>\n {option}\n </Select.Option>\n ))}\n </Select>\n );\n } else if (type === OptionsTypeEnum.EXPRESSION) {\n // 表达式\n return (\n <div\n className={cx(`Sqb-TableName `, {\n notSelected: !v.expression?.quotes,\n })}\n onClick={(e) => handleExpression(e, index, v.expression)}\n >\n {!v.expression.quotes && __('customColumn.selectExpression')}\n {v.expression.quotes}\n <span style={{ fontSize: 0 }} onClick={(e) => handleDel(e, index)}>\n <CloseIcon />\n </span>\n </div>\n );\n } else if (type === OptionsTypeEnum.OTHER) {\n // 其他\n return (\n <Select\n triggerProps={{\n clickToClose: true,\n }}\n value={v.operator}\n triggerElement={(value) => {\n return (\n <div\n className={cx(`Sqb-TableName `, {\n notSelected: !v.operator,\n })}\n >\n {!v.operator && __('customColumn.selectOtherSyntax')}\n {v.operator}\n <span style={{ fontSize: 0 }} onClick={(e) => handleDel(e, index)}>\n <CloseIcon />\n </span>\n </div>\n );\n }}\n onChange={(val) => {\n handleConstant(val, index);\n }}\n >\n {filterCase.map((option, index) => (\n <Select.Option key={index + '' + ind} value={option}>\n {option}\n </Select.Option>\n ))}\n </Select>\n );\n } else {\n return (\n <Select\n triggerProps={{\n clickToClose: true,\n }}\n value={v.operator}\n triggerElement={(value) => {\n return (\n <div\n className={cx(`Sqb-TableName `, {\n notSelected: true,\n })}\n >\n {__('customColumn.selectCustomInput')}\n <span style={{ fontSize: 0 }} onClick={(e) => handleDel(e, index)}>\n <CloseIcon />\n </span>\n </div>\n );\n }}\n onChange={(val) => {\n addOperator(val, index, '');\n }}\n >\n {customTypes.map((option, index) => (\n <Select.Option key={index + '' + ind} value={option.value}>\n {option.label}\n </Select.Option>\n ))}\n </Select>\n );\n }\n };\n\n return (\n <div className='custom-box' ref={ref}>\n <VisualBox>\n <div className={`Sqb-item Sqb-case-editor mb-2 mt-2`}>\n <div className={`Sqb-item--content`}>\n <div className='Sqb-NotebookCell-header'>\n <div\n className={`mt-2 font-bold uppercase tracking-wider`}\n style={{ fontSize: 12, color: '#949aab' }}\n >\n {__('customColumn.giveItAName')}\n </div>\n\n <div>\n <Input\n className={':Sqb-input mt-2 mb-2 w-full block'}\n value={name}\n placeholder={__('customColumn.somethingAwesomeToDocument')}\n size='large'\n onChange={(val) => {\n setName(val);\n }}\n />\n </div>\n </div>\n <div className={`Sqb-NotebookCell`}>\n {caseList?.map((v: ValueMap, i: number) => {\n return (\n <div\n className={cx('Sqb-Filter-item', {\n hover: ind === i,\n })}\n key={i}\n onMouseEnter={(e: any) => {\n setInd(i);\n }}\n onMouseLeave={() => {\n setInd(-1);\n }}\n >\n <Select\n trigger={'hover'}\n triggerProps={{\n clickToClose: true,\n }}\n virtualListProps={{\n threshold: null,\n }}\n triggerElement={() => {\n return (\n <div\n className='left-arrow'\n v-index={i}\n v-type='before'\n onClick={() => {\n addOperator('', i, 'before');\n }}\n >\n <img src={arrow} />\n </div>\n );\n }}\n onChange={(val) => {\n addOperator(val, i, 'before');\n }}\n >\n {customTypes.map((option, index) => (\n <Select.Option key={index + '' + ind} value={option.value}>\n {option.label}\n </Select.Option>\n ))}\n </Select>\n\n {/* 判断符 */}\n {itemDom(v, i)}\n\n <Select\n trigger={'hover'}\n triggerProps={{\n clickToClose: true,\n }}\n virtualListProps={{\n threshold: null,\n }}\n style={{ width: '100px' }}\n value={''}\n autoWidth={{ minWidth: 300 }}\n triggerElement={(value) => {\n return (\n <div\n className='right-arrow'\n v-index={i}\n v-type='after'\n onClick={() => {\n addOperator('', i, 'after');\n }}\n >\n <img src={arrow} />\n </div>\n );\n }}\n onChange={(val, option) => {\n addOperator(val, i, 'after');\n }}\n >\n {customTypes.map((option, index) => (\n <Select.Option key={index + '' + ind} value={option.value}>\n {option.label}\n </Select.Option>\n ))}\n </Select>\n </div>\n );\n })}\n {!value ||\n (Array.from(caseList).length < 1 && (\n <Select\n trigger={'click'}\n triggerProps={{\n clickToClose: true,\n }}\n virtualListProps={{\n threshold: null,\n }}\n triggerElement={() => {\n return (\n <div className={cx(`Sqb-TableName gray-name`)}>\n <AddIcon />\n </div>\n );\n }}\n onChange={(val) => {\n addOperator(val, -1, 'add');\n }}\n >\n {customTypes.map((option, index) => (\n <Select.Option key={index + '' + ind} value={option.value}>\n {option.label}\n </Select.Option>\n ))}\n </Select>\n ))}\n </div>\n <p className='Sqb-NotebookCell-preview'>\n 预览:\n {caseList\n .map((v: any, i: number) => {\n if (v.expression) {\n return v?.expression?.quotes;\n } else {\n return v.operator;\n }\n })\n .join(' ')}\n </p>\n </div>\n </div>\n </VisualBox>\n\n {/* {ref.current && (\n <Popup\n visible={popup.visible}\n container={ref.current}\n zIndex={zIndex ? String(zIndex) : null}\n closable={true}\n node={popup.node}\n innerSpacing={popup.innerSpacing}\n hideVisible={closePopup}\n >\n {popupContent}\n </Popup>\n )} */}\n <div className={`btns p-4`}>\n <div style={{ marginLeft: 'auto' }}>\n <button className={`btn`} onClick={() => _onClose()}>\n {__('customColumn.cancel')}\n </button>\n <button className={cx(`btn ml-4`, { usable })} disabled={!usable} onClick={_onOk}>\n {__('customColumn.complete')}\n </button>\n </div>\n </div>\n </div>\n );\n};\n\nexport default CaseEditor;\n","// @ts-nocheck\nimport React from 'react';\nimport { Modal2 } from '@gingkoo/pandora';\nimport { Provider } from '../../hooks/use-provider';\nimport { getMaxZIndexInParents } from '../../utils/helper-dom';\n\nimport { __ } from '../../locale';\nimport { findIndex } from '../../utils';\nimport { sleep, flatArray } from '../../utils/helper';\nimport {\n MetaCustom,\n MetaListType,\n MetaJoin,\n MetaCustom_Item,\n MetaData_ColumnsType,\n MetaData,\n MetaSummarize,\n} from '../../store/types';\nimport { getHelper } from '../../utils';\nimport { TypeEnum, SQL_COLUMN_TYPE } from '../../store/enum';\nimport CustomEditor from '../../components/dialog/custom-editor';\nimport { uuidv4 } from '../../utils/helper';\n\nimport { AddIcon, CloseIcon } from '../icons';\nimport { CustomColumnPopup } from '../dialog';\nimport Wrapper from './components/Wrapper';\nimport NextDom from './components/meta-icon';\nimport Header from './components/header';\n\nimport { useStore } from '../../hooks/use-provider';\n\ninterface PropsType {\n store?: any;\n meta: MetaCustom;\n groupIndex: number;\n}\n\nconst CustomColumn = (props: PropsType) => {\n const { meta, groupIndex } = props;\n const store = useStore();\n let { customColumn } = meta;\n let index = findIndex(store.metaList[groupIndex].list, meta);\n\n function getAvailableColumns(): MetaData_ColumnsType[] {\n let newMeta = store.metaList[groupIndex].list.slice();\n let columns: MetaData_ColumnsType[] = [];\n let { ExistAboveGroupBy, prevList } = getHelper(store.metaList[groupIndex].list, meta);\n\n // TIPS metabase 将自定义列也放进去了 但是他们拼sql的时候又没有实现 这里我们也暂时不加进来\n // TIPS metabase 将聚合的参数也弄进来了\n if (ExistAboveGroupBy) {\n columns = flatArray(\n prevList\n .filter((v: MetaListType) => v.type === TypeEnum.joinData)\n // @ts-ignore\n .map((v: MetaJoin) =>\n v.columns.map((o) => ({ ...o, name: `${v.table2.alias} -> ${o.name}` })),\n ),\n );\n } else {\n let mainTable: MetaData = newMeta[0];\n columns = flatArray(\n store.metaList[groupIndex].list\n .slice(0, index)\n .filter((v: MetaListType) => v.type === TypeEnum.joinData)\n .map((v: MetaJoin) =>\n v.columns.map((o) => ({ ...o, name: `${v.table2.alias} -> ${o.name}` })),\n ),\n );\n\n columns = [\n ...mainTable.columns.map((v: MetaData_ColumnsType) => {\n return {\n ...v,\n name: `${mainTable.table.alias} -> ${v.name}`,\n };\n }),\n ...columns,\n ];\n }\n return columns;\n }\n\n async function handleUpdate(e: any, i: number) {\n const node = e.currentTarget;\n closePopup();\n await sleep(100);\n\n let newMeta = store.metaList[groupIndex].list.slice();\n let value: MetaCustom_Item = customColumn[i];\n let columns: MetaData_ColumnsType[] = getAvailableColumns();\n\n store.setPopup({\n visible: true,\n node,\n content: (\n <CustomColumnPopup\n data={columns}\n value={value}\n onChange={(data: MetaCustom_Item) => {\n newMeta[index].customColumn[i] = data;\n\n // TIPS 修改了名字后面都得删除 暂时不删除 因为过滤器和组合都没用到自定义列\n // if(data.name !== value.name){\n // newMeta = newMeta.filter((v: MetaListType, _i: number)=> _i<=index)\n // }\n store.setMeta(newMeta, groupIndex);\n closePopup();\n }}\n onClose={closePopup}\n />\n ),\n });\n }\n\n function getColumns(): DataType[] {\n let { ExistAboveGroupBy, prevList, prevGroupBy } = getHelper(\n store.metaList[groupIndex].list,\n meta,\n );\n let newMeta = store.metaList[groupIndex].list.slice();\n\n let mainTable: MetaData = newMeta[0] as MetaData;\n let data: DataType[];\n if (ExistAboveGroupBy) {\n let _data: DataType = {\n table: (prevGroupBy as MetaSummarize).alias,\n tableId: (prevGroupBy as MetaSummarize).alias,\n tableUuid: (prevGroupBy as MetaSummarize).tableUuid || uuidv4('table'),\n alias: (prevGroupBy as MetaSummarize).alias,\n datasourceId: mainTable.table.datasourceId,\n datasourceName: mainTable.table.datasourceName,\n columns: [],\n };\n if (prevGroupBy?.group?.length) {\n _data.columns = _data.columns.concat(\n prevGroupBy.group.map((v: MetaSummarize_Group) => {\n return {\n name_zh: v.quotes,\n ...v,\n name: v.quotes,\n // name_zh: '',\n database_type: v?.database_type || SQL_COLUMN_TYPE.FLOAT,\n sql: v.sql,\n special_type: '',\n select: true,\n };\n }),\n );\n }\n if (prevGroupBy?.by?.length) {\n _data.columns = _data.columns.concat(\n prevGroupBy.by.map((v: MetaSummarize_By) => {\n return {\n name_zh: v.quotes,\n ...v,\n name: v.quotes,\n // name_zh: '',\n database_type: v?.database_type || SQL_COLUMN_TYPE.FLOAT,\n sql: v.sql,\n special_type: '',\n select: true,\n };\n }),\n );\n }\n data = [_data];\n\n let joinData = prevList\n .filter((v: MetaListType) => v.type === TypeEnum.joinData)\n // @ts-ignore\n .filter((v: MetaJoin) => v && v.table2.name);\n if (joinData.length) {\n data = data.concat(\n // @ts-ignore\n joinData.map((v: MetaJoin) => {\n return {\n alias: v.table2.alias,\n table: v.table2.name,\n tableId: v.table2.id,\n tableUuid: v.table2.tableUuid || uuidv4('table'),\n columns: v.columns,\n datasourceId: mainTable.table.datasourceId,\n datasourceName: mainTable.table.datasourceName,\n };\n }),\n );\n }\n } else {\n // @ts-ignore\n data = store.metaList[groupIndex].list\n .slice(0, index)\n .map((v: MetaListType) => {\n if (v.type === TypeEnum.data) {\n return {\n alias: v.table.alias,\n table: v.table.name,\n tableId: v.table.id,\n tableUuid: v.table.tableUuid || uuidv4('table'),\n columns: v.columns,\n datasourceId: mainTable.table.datasourceId,\n datasourceName: mainTable.table.datasourceName,\n };\n } else if (v.type === TypeEnum.joinData) {\n return {\n alias: (v as MetaJoin).table2.alias,\n table: (v as MetaJoin).table2.name,\n tableId: (v as MetaJoin).table2.id,\n tableUuid: (v as MetaJoin).table2.tableUuid || uuidv4('table'),\n columns: (v as MetaJoin).columns,\n datasourceId: mainTable.table.datasourceId,\n datasourceName: mainTable.table.datasourceName,\n };\n } else {\n return { table: null };\n }\n })\n .filter((v: any) => v.table);\n }\n return data;\n }\n\n // 自定义弹窗\n const showSubQuery = (e, i) => {\n let newMeta = store.metaList[groupIndex].list.slice();\n const _value = newMeta[index].customColumn[i] || [];\n\n let zIndex = store.popupContainer.current\n ? getMaxZIndexInParents(store.popupContainer.current)\n : 0;\n\n let o = Modal2.openModal({\n title: __('SqlQueryBuilder.customExpression'),\n transparentMask: true,\n zIndex: Number(zIndex),\n content: (\n <>\n <Provider value={store}>\n <CustomEditor\n data={getColumns()}\n value={_value}\n onCancel={() => {\n o.close();\n }}\n onOk={(data) => {\n if (i === -1) {\n newMeta[index].customColumn.push(data);\n } else {\n newMeta[index].customColumn[i] = data;\n }\n store.setMeta(newMeta, groupIndex);\n try {\n o.close();\n } catch (e) {\n console.warn(e);\n } finally {\n o.close();\n }\n }}\n />\n </Provider>\n </>\n ),\n onClose: () => {},\n });\n };\n\n function handleAdd(e: any) {\n let newMeta = store.metaList[groupIndex].list.slice();\n let columns: MetaData_ColumnsType[] = getAvailableColumns();\n store.setPopup({\n visible: true,\n node: e.currentTarget,\n content: (\n <CustomColumnPopup\n data={columns}\n value={null}\n groupIndex={groupIndex}\n meta={meta}\n onChange={(data: MetaCustom_Item) => {\n newMeta[index].customColumn.push(data);\n store.setMeta(newMeta, groupIndex);\n closePopup();\n }}\n onClose={closePopup}\n />\n ),\n });\n }\n\n function handleDel(e: any, itemId: number) {\n e.stopPropagation();\n closePopup();\n let newMeta = store.metaList[groupIndex].list.slice();\n // TIPS 删除了后面都得删除 暂时不删除 因为过滤器和组合都没用到自定义列\n newMeta[index].customColumn = customColumn.filter(\n (_: MetaCustom_Item, i: number) => i !== itemId,\n );\n store.setMeta(newMeta, groupIndex);\n }\n\n function closePopup() {\n store.setPopup({ visible: false });\n }\n return (\n <Wrapper className={`Sqb-item`}>\n <div className={`Sqb-hover-parent`}>\n <Header\n className='gray-text'\n title={__('SqlQueryBuilder.customColumn')}\n onClose={() => {\n closePopup();\n store.delMeta(meta, groupIndex);\n }}\n />\n <div className={`Sqb-item--content`}>\n <div className={`Sqb-NotebookCell gray-bg`}>\n {meta.customColumn.map((v: MetaCustom_Item, i: number) => {\n return (\n <div\n className={`Sqb-TableName gray-name`}\n key={i}\n onClick={(e) => showSubQuery(e, i)}\n >\n {v.name}\n <span style={{ fontSize: 0 }} onClick={(e) => handleDel(e, i)}>\n <CloseIcon />\n </span>\n </div>\n );\n })}\n {/* <div className={`Sqb-TableName gray-name`} onClick={handleAdd}>\n <AddIcon />\n </div> */}\n <div\n className={`Sqb-TableName gray-name`}\n onClick={(e) => {\n showSubQuery(e, -1);\n }}\n >\n <AddIcon />\n </div>\n </div>\n </div>\n\n <NextDom meta={meta} groupIndex={groupIndex} />\n </div>\n </Wrapper>\n );\n};\n\nexport default CustomColumn;\n","import type { DatasourceType } from '../types';\nimport { TypeEnum, SpecialType, JoinEnum, SQL_COLUMN_TYPE, SortEnum } from './enum';\n\nexport type ToolbarType =\n | TypeEnum\n | 'filter'\n | 'summarize'\n | 'joinData'\n | 'permissionTable'\n | 'customColumn'\n | 'sort'\n | 'rowLimit'\n | 'union';\n\nexport type MetaListType =\n | MetaData\n | MetaJoin\n | MetaCustom\n | MetaFilter\n | MetaSummarize\n | MetaSort\n | MetaLimit\n | MetaPermissionTable;\n\nexport type initColumnsType = MetaData_ColumnsType;\n\ninterface ExpressionsType {\n operator: string;\n // left_column: string;\n // left_column_id: string;\n // left_column_quotes: string;\n left_fieldAlias: string;\n left_fieldUuid: string;\n left_quotes: string;\n\n left_string: string;\n left_type: 'string' | 'constant' | 'field' | '' | null;\n left_constant: string;\n // right_column: string;\n // right_column_id: string;\n // right_column_quotes: string;\n\n right_fieldAlias: string;\n right_fieldUuid: string;\n right_quotes: string;\n\n right_string: string;\n right_type: 'string' | 'constant' | 'field' | '' | null;\n right_constant: string;\n // right_isString: boolean;\n}\n\nexport interface TableColumnsMapType {\n [tableName: string]: initColumnsType[];\n}\n\n// ----------- 第一个模块 数据模块 ------------\nexport interface TableType {\n name: string; // 表名\n id: string; // 表名\n alias: string; // 别名\n tableUuid: string; // 表唯一标识\n}\nexport type MetaData_TableType = TableType & DatasourceType;\n\nexport interface MetaData_ColumnsType {\n name: string; // 字段名\n id: string; // 字段名\n name_zh?: string; // 字段中文名\n fieldAlias: string; // 字段别名\n fieldUuid: string; // 字段唯一标识\n realName?: string; // 真实的字段名 别名 (聚合在用)\n database_type: SQL_COLUMN_TYPE | ''; // 字段类型\n special_type: SpecialType | ''; // 主外键\n datasourceId: string; // 数据源id\n datasourceName: string; // 数据源名\n // column: string;\n // column_id: string;\n select: boolean; // 是否选中\n summarizeType?: MetaSummarize_Enum; //是否为group by\n}\n\nexport interface MetaData {\n metaKey: number;\n readonly?: boolean;\n hidden?: boolean;\n type: TypeEnum.data;\n table: MetaData_TableType;\n columns: MetaData_ColumnsType[];\n isSubquery?: boolean;\n subquery?: MetaListType[]; // 子查询\n}\n\n// ----------- 第二个模块 关联模块 ------------\n\nexport interface MetaJoin_TalbeType {\n name: string; // 表名\n id: string; // 表名\n tableUuid: string; // 唯一id\n alias: string; // 表别名\n datasourceName: string; // 数据源名\n datasourceId: string; // 数据源id\n column_id?: string; //老数据\n column?: string; //老数据\n fieldAlias: string; // 当前表选择的字段名\n fieldUuid: string; // 当前表选择的字段名\n groupSql?: string; // 如果table1 是结果集 那么这个字段 就有值,放结果集的别名\n quotes?: string;\n // [name: string]: any;\n}\nexport interface MetaJoin {\n metaKey: number;\n type: TypeEnum.joinData;\n joinType: JoinEnum; // 怎么关联\n readonly?: boolean;\n hidden?: boolean;\n table1: MetaJoin_TalbeType;\n table2: MetaJoin_TalbeType;\n columns: MetaData_ColumnsType[];\n expressions: ExpressionsType[];\n isSubquery?: boolean; //是否是子查询\n subquery?: MetaListType[]; //子查询\n}\n\n// ----------- 第三个模块 自定义列模块 ------------\nexport interface MetaCustom_Item {\n name: string; // 用户起的别名\n type?: string;\n formulaList?: any[];\n}\nexport interface MetaCustom {\n metaKey: number;\n type: TypeEnum.customColumn;\n customColumn: MetaCustom_Item[];\n}\n\n// ----------- 第四个模块 过滤器模块 ------------\nexport interface Filter_Formula {\n type?: string;\n params?: string[] | number[];\n}\n\n// 过滤器类型\nexport enum Filter_TypeEnum {\n EXPRESSION = 'expression',\n NOT_EXISTS = 'notExists',\n}\nexport interface MetaFilter_Item {\n table: string; // 表名\n tableId: string; // 表id\n tableUuid: string; // 表唯一id\n fieldUuid: string; // 字段唯一id\n fieldAlias: string; //字段别名\n alias: string; // 表的别名\n name: string; // 字段名\n id: string; // 字段名\n groupSql?: string; // 如果表是 上一个结果集 那么该字段有值,值是结果集的列别名\n database_type: SQL_COLUMN_TYPE | ''; // 字段类型\n val: string[]; // 选择结果 如果有两个 长度就为2\n condition: string; // 条件 聚合by过来的会有这个\n quotes: string; // 展示用户看的 组装的文字\n // column: string;\n datasourceId: string; // 数据源id\n datasourceName: string; // 数据源名\n isField?: boolean; //是否是选择字段\n valType?: 'field' | 'string' | 'constant' | ''; //是否是选择字段\n constantName?: string; // 常量名称\n table2?: MetaJoin_TalbeType | null;\n formula?: Filter_Formula;\n notExists?: MetaListType[]; // notExists\n type?: Filter_TypeEnum; // 过滤器类型\n summarizeType?: MetaSummarize_Enum;\n sql?: string;\n realName?: string;\n}\nexport interface MetaFilter {\n metaKey: number;\n type: TypeEnum.filter;\n isPermanent?: boolean; // 是否常驻 默认 false , 如果 true 则不显示 删除按钮\n filter: MetaFilter_Item[];\n}\n\n// ----------- 第五个模块 聚合模块 ------------\nexport enum MetaSummarize_Enum {\n GROUP = 'group',\n BY = 'by',\n}\nexport interface MetaSummarize_Group {\n table: string; // 表名\n tableId: string; // 表名\n tableUuid: string; // 表唯一标识\n alias?: string; // 表的别名\n name: string; // 字段名 (显示用)\n id: string; // 字段名 (显示用)\n realName?: string; // 真实的字段名 (提交后端用,因为 上面的 name 可能起过别名,提交到后端需要用别名)\n database_type?: SQL_COLUMN_TYPE | ''; // 字段类型\n sql: string; // sql 不带别名\n fieldAlias: string; // 字段别名\n fieldUuid: string; // 字段唯一标识\n condition: string; // 选择条件\n quotes: string; // 前端显示用户看的文字\n datasourceId: string;\n datasourceName: string;\n // column: string;\n // column_id: string;\n summarizeType: MetaSummarize_Enum;\n [params: string]: any;\n}\nexport interface MetaSummarize_By {\n table: string; // 表名\n tableId: string; // 表名\n tableUuid: string; // 表唯一标识\n alias: string; // 表的别名\n fieldAlias: string; // 字段别名\n fieldUuid: string; // 字段唯一标识\n name: string; // 字段名 (显示用)\n id: string; // 字段名 (显示用)\n datasourceId: string;\n datasourceName: string;\n // column: string;\n // column_id: string;\n realName?: string; // 真实的字段名 (提交后端用,因为 上面的 name 可能起过别名,提交到后端需要用别名)\n sql: string; // sql 不带别名\n database_type: SQL_COLUMN_TYPE | ''; // 字段类型\n condition: string; // 条件 聚合by过来的会有这个\n quotes: string; // 展示用户看的 组装的文字\n summarizeType: MetaSummarize_Enum;\n}\nexport interface MetaSummarize {\n metaKey: number;\n type: TypeEnum.summarize;\n alias: string;\n tableUuid: string; // 表唯一标识\n group: MetaSummarize_Group[];\n by: MetaSummarize_By[];\n}\n\n// ----------- 第六个模块 排序模块 ------------\nexport interface MetaSort_Item {\n table: string; // 表名\n tableId: string; // 表名\n tableUuid: string; //\n alias: string; // 表别名\n name: string; // 字段名\n sql: string; // 字段sql\n sort: SortEnum;\n}\nexport interface MetaSort {\n metaKey: number;\n type: TypeEnum.sort;\n sort: MetaSort_Item[];\n}\n\n// ----------- 第七个模块 行限制模块 ------------\nexport interface MetaLimit {\n metaKey: number;\n type: TypeEnum.rowLimit;\n limit: string;\n}\n\n// ----------- 第八个模块 权限表模块 ------------\nexport interface MetaPermissionTable {\n metaKey: number;\n type: TypeEnum.permissionTable;\n table: MetaData_TableType;\n}\n\n// ----------- 接口入参 --------------\nexport interface LooseObject {\n [TypeEnum.data]?: MetaData;\n [TypeEnum.joinData]?: MetaJoin[];\n [TypeEnum.permissionTable]?: MetaPermissionTable;\n [TypeEnum.customColumn]?: MetaCustom;\n [TypeEnum.filter]?: MetaFilter;\n [TypeEnum.summarize]?: MetaSummarize;\n [TypeEnum.sort]?: MetaSort;\n [TypeEnum.rowLimit]?: MetaLimit;\n children?: LooseObject;\n}\n\ninterface ParamsCustomColumns {\n alias: string;\n // formula: string;\n}\n\ninterface ParamsJoinTables {\n alias: string; // 别名\n joinCondition: string; // 连接的列 多个用on分隔 eg. a.a=b.b on a.x=b.x\n joinType: string; // 连接方式\n queryColumns: string[]; // 选择的列\n tableName: string; // 表名\n datasourceId?: string; // 数据源id\n}\n\nexport interface ParamsStruct {\n alias?: string; // 第一层传主表的别名 其他的都写死source\n tableName?: string; // 主表名只有第一层需要传\n datasourceId?: string; // 数据源id\n queryColumns?: string[]; // 查询的列,第一层传主表勾选的列,其他层传group by出来的列\n customColumns?: ParamsCustomColumns[]; // 自定义列\n filters?: string; // filter 用 on 分隔\n groupBy?: {\n // 聚合\n calcColumns: string[]; // 左边\n groupColumns: string[]; // 右边\n };\n joinTables?: ParamsJoinTables[]; // 关联\n limit?: number;\n orderInfos?: string;\n privilegeTable?: string; // 权限表\n hasInnerSql: boolean; // 是否有嵌套\n innerSqlStruct: ParamsStruct | null; // 嵌套内容\n}\n\nexport interface ParamsType {\n id: string;\n code: string;\n}\n\nexport interface PopupData {\n visible: boolean;\n node?: any;\n content?: any;\n}\n\n/** \nlet a = {\n \"idxId\": \"string\",\n \"sqlStruct\": {\n \"alias\": \"string\",// 主表别名 只有最外层可以没有\n \"tableName\": \"string\",// 主表名 除了最内层 都可以没有\n \"queryColumns\": [\n \"string\"// 第一层放 主表选择的字段,其他的放 groupby 的两个字段别名\n ],\n \"groupBy\": {// 聚合\n \"calcColumns\": [// 左边\n \"string\"\n ],\n \"groupColumns\": [// 右边\n \"string\"\n ]\n },\n \"customColumns\": [// 自定义列\n {\n \"alias\": \"string\",\n \"formula\": \"string\"\n }\n ],\n \"filters\": \"string\",// filter 用 on 分隔\n \"hasInnerSql\": false,// 是否有嵌套\n \"innerSqlStruct\": {},// 嵌套内容\n \"joinTables\": [// 关联\n {\n \"alias\": \"string\",\n \"joinCondition\": \"a.a = b.b\",\n \"joinType\": \"string\",\n \"queryColumns\": [\n \"string\"\n ],\n \"tableName\": \"string\"\n }\n ],\n \"limit\": 0,\n \"orderInfos\": \"string\",\n \n },\n}\n*/\n","var img = \"data:image/svg+xml,%3c!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='26px' height='18px' version='1.1'%3e%3cpath d='m 1 6 L 14 6 L 14 1 L 26 9 L 14 18 L 14 12 L 1 12 z' stroke='white' fill='%2329b6f2'/%3e%3c/svg%3e\";\n export default img;","import React, { useState } from 'react';\nimport cx from 'classnames';\nimport Metabase from '../../index';\nimport { Modal2 } from '@gingkoo/pandora';\n\nimport { __ } from '../../locale';\nimport isEqual from 'lodash/isEqual';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { uuidv4 } from '../../utils/helper';\nimport { findIndex, getHelper, buildSqlQuery } from '../../utils';\nimport { TypeEnum, SQL_COLUMN_TYPE } from '../../store/enum';\nimport SelectList from '../dialog/select-list';\nimport { getMaxZIndexInParents } from '../../utils/helper-dom';\n\nimport {\n MetaFilter,\n MetaFilter_Item,\n MetaSummarize,\n MetaListType,\n MetaJoin,\n MetaSummarize_Group,\n MetaSummarize_By,\n MetaData,\n Filter_TypeEnum,\n} from '../../store/types';\nimport { DataType } from '../dialog/select-join-column';\nimport { Select } from '@gingkoo/pandora';\n\nimport Wrapper from './components/Wrapper';\nimport { AddIcon, CloseIcon } from '../icons';\nimport NextDom from './components/meta-icon';\nimport Header from './components/header';\nimport { SelectFilter } from '../dialog';\nimport arrow from './arrow.svg';\n\nimport { useStore } from '../../hooks/use-provider';\n\ninterface PropsType {\n meta: MetaFilter;\n groupIndex: number;\n}\n\nconst Filter = (props: PropsType) => {\n const { meta, groupIndex } = props;\n const store = useStore();\n let { filter } = meta;\n const { notExistsColumns } = store.preProps;\n\n const temEref = React.useRef(null);\n let index = findIndex(store.metaList[groupIndex].list, meta);\n let notSelected = !meta.filter.length;\n const [ind, setInd] = useState(-1);\n\n function getColumns(): DataType[] {\n let { ExistAboveGroupBy, prevList, prevGroupBy } = getHelper(\n store.metaList[groupIndex].list,\n meta,\n );\n let newMeta = store.metaList[groupIndex].list.slice();\n\n let mainTable: MetaData = newMeta[0] as MetaData;\n let data: DataType[];\n if (ExistAboveGroupBy) {\n let _data: DataType = {\n table: (prevGroupBy as MetaSummarize).alias,\n tableId: (prevGroupBy as MetaSummarize).alias,\n tableUuid: (prevGroupBy as MetaSummarize).tableUuid,\n alias: (prevGroupBy as MetaSummarize).alias,\n datasourceId: mainTable.table.datasourceId,\n datasourceName: mainTable.table.datasourceName,\n columns: [],\n };\n if (prevGroupBy?.group?.length) {\n _data.columns = _data.columns.concat(\n prevGroupBy.group.map((v: MetaSummarize_Group) => {\n return {\n name_zh: v.quotes,\n ...v,\n name: v.quotes,\n // name_zh: '',\n database_type: v?.database_type || SQL_COLUMN_TYPE.FLOAT,\n sql: v.sql,\n special_type: '',\n select: true,\n };\n }),\n );\n }\n if (prevGroupBy?.by?.length) {\n _data.columns = _data.columns.concat(\n prevGroupBy.by.map((v: MetaSummarize_By) => {\n return {\n name_zh: v.quotes,\n ...v,\n name: v.quotes,\n // name_zh: '',\n database_type: v?.database_type || SQL_COLUMN_TYPE.FLOAT,\n sql: v.sql,\n special_type: '',\n select: true,\n };\n }),\n );\n }\n data = [_data];\n\n let joinData = prevList\n .filter((v: MetaListType) => v.type === TypeEnum.joinData)\n // @ts-ignore\n .filter((v: MetaJoin) => v && v.table2.name);\n if (joinData.length) {\n data = data.concat(\n // @ts-ignore\n joinData.map((v: MetaJoin) => {\n return {\n alias: v.table2.alias,\n table: v.table2.name,\n tableId: v.table2.id,\n tableUuid: v.table2.tableUuid || uuidv4('table'),\n columns: v.columns,\n datasourceId: mainTable.table.datasourceId,\n datasourceName: mainTable.table.datasourceName,\n };\n }),\n );\n }\n } else {\n // @ts-ignore\n data = store.metaList[groupIndex].list\n .slice(0, index)\n .map((v: MetaListType) => {\n if (v.type === TypeEnum.data) {\n return {\n alias: v.table.alias,\n table: v.table.name,\n tableId: v.table.id,\n tableUuid: v.table.tableUuid || uuidv4('table'),\n columns: v.columns,\n datasourceId: mainTable.table.datasourceId,\n datasourceName: mainTable.table.datasourceName,\n };\n } else if (v.type === TypeEnum.joinData) {\n return {\n alias: (v as MetaJoin).table2.alias,\n table: (v as MetaJoin).table2.name,\n tableId: (v as MetaJoin).table2.id,\n tableUuid: (v as MetaJoin).table2.tableUuid || uuidv4('table'),\n columns: (v as MetaJoin).columns,\n datasourceId: mainTable.table.datasourceId,\n datasourceName: mainTable.table.datasourceName,\n };\n } else {\n return { table: null };\n }\n })\n .filter((v: any) => v.table);\n }\n\n return data;\n }\n\n function handleUpdate(e: any, i: number) {\n let newMeta = store.metaList[groupIndex].list.slice();\n let val = filter[i];\n if (val.type === Filter_TypeEnum.NOT_EXISTS) {\n showNotExists(i, '');\n return;\n }\n let data = [...getColumns(), ...cloneDeep(notExistsColumns || [])];\n\n store.setPopup({\n visible: true,\n node: e.currentTarget,\n content: (\n <SelectFilter\n data={data}\n value={filter[i] as MetaFilter_Item}\n onChange={(data: MetaFilter_Item) => {\n (newMeta[index] as MetaFilter).filter.splice(i, 1, data);\n store.setMeta(newMeta, groupIndex);\n closePopup();\n }}\n />\n ),\n });\n }\n\n function handleAdd(e: any) {\n let node = e.currentTarget;\n\n let newMeta = store.metaList[groupIndex].list.slice();\n let data: DataType[] = [...getColumns(), ...cloneDeep(notExistsColumns || [])];\n let _index: number = Number(node.getAttribute('v-index'));\n let _type: string = node.getAttribute('v-type');\n\n let value: MetaFilter_Item = {\n table: '', // 表名\n tableId: '', // 表名\n fieldUuid: '', // 字段唯一id\n fieldAlias: '', //字段别名\n tableUuid: '',\n alias: '', // 表的别名\n name: '', // 字段名\n id: '', // 字段名\n database_type: '', // 字段类型\n condition: '', // 选择条件\n val: [], // 选择结果 如果有两个 长度就为2\n quotes: '', // 前端显示用户看的文字\n datasourceId: '',\n datasourceName: '',\n type: Filter_TypeEnum.EXPRESSION, // 过滤类型\n };\n\n store.setPopup({\n visible: true,\n node: e.currentTarget,\n content: (\n <SelectFilter\n data={data}\n value={value as MetaFilter_Item}\n onChange={(val: MetaFilter_Item) => {\n if (_type) {\n if (_type === 'before') {\n ((newMeta[index] as MetaFilter).filter as any).splice(_index, 0, val);\n } else {\n console.log('🚀 ~ ', newMeta[index].filter);\n ((newMeta[index] as MetaFilter).filter as any).splice(_index + 1, 0, val);\n }\n } else {\n (newMeta[index] as MetaFilter).filter.push(val);\n }\n store.setMeta(newMeta, groupIndex);\n closePopup();\n }}\n />\n ),\n });\n }\n\n function handleDel(e: any, itemId: number) {\n e.stopPropagation();\n closePopup();\n let newMeta = store.metaList[groupIndex].list.slice();\n // @ts-ignore\n newMeta[index].filter = filter.filter((_: any, i: number) => i !== itemId);\n store.setMeta(newMeta, groupIndex);\n }\n\n function closePopup() {\n store.setPopup({ visible: false });\n }\n\n const options = ['(', ')', 'AND', 'OR'];\n const addOperator = (val: string, i: number, type: 'before' | 'after') => {\n let newMeta = store.metaList[groupIndex].list.slice();\n let _filter = filter.slice();\n if (type === 'before') {\n (_filter as any).splice(i, 0, val);\n } else {\n (_filter as any).splice(i + 1, 0, val);\n }\n\n (newMeta[index] as MetaFilter).filter = [..._filter];\n setInd(-1);\n };\n\n // NotExists 窗口\n const showNotExists = (i: number, position: any) => {\n const { notExistsToolbar, toolbar, ...other } = store.preProps;\n\n let newMeta: MetaListType[] = store.metaList[groupIndex].list.slice();\n let index = findIndex(store.metaList[groupIndex].list, meta);\n let _value = position ? [] : (newMeta[index] as MetaFilter).filter[i]?.notExists || [];\n let oldList = position\n ? []\n : cloneDeep((newMeta[index] as MetaFilter).filter[i]?.notExists || []);\n let _toolbar = notExistsToolbar || toolbar;\n _toolbar = _toolbar.filter((v: string) => v !== 'group'); // 子查询不需要分组\n\n let zIndex = store.popupContainer.current\n ? getMaxZIndexInParents(store.popupContainer.current)\n : null;\n let notExistsColumns = getColumns();\n\n let o = Modal2.openModal({\n title: 'NOT EXISTS',\n transparentMask: true,\n zIndex: Number(zIndex),\n content: (\n <>\n <Metabase\n {...other}\n notExistsColumns={notExistsColumns}\n showFields={false}\n showSubquery={false}\n toolbar={_toolbar}\n btnText={__('SqlQueryBuilder.confirm')}\n value={_value}\n onOk={(newList) => {\n try {\n // 子查询未改变不做操作\n if (isEqual(newList, oldList)) {\n o.close();\n return;\n }\n const _tem: MetaFilter_Item = {\n notExists: newList,\n quotes: buildSqlQuery(newList),\n condition: '',\n table: '',\n tableId: '',\n fieldUuid: uuidv4('field'), // 字段唯一id\n fieldAlias: '', //字段别名\n tableUuid: uuidv4('table'),\n alias: '',\n name: '',\n id: '',\n database_type: '',\n val: [],\n datasourceId: '',\n datasourceName: '',\n type: Filter_TypeEnum.NOT_EXISTS,\n };\n // 新增\n if (i === -1) {\n // 如果是新增子查询\n (newMeta[index] as MetaFilter).filter.push(_tem);\n o.close();\n } else if (position) {\n //新增\n if (position === 'before') {\n ((newMeta[index] as MetaFilter).filter as any).splice(i, 0, _tem);\n } else {\n ((newMeta[index] as MetaFilter).filter as any).splice(i + 1, 0, _tem);\n }\n } else {\n // 编辑\n (newMeta[index] as MetaFilter).filter[i] = _tem;\n }\n\n store.setMeta(newMeta, groupIndex);\n o.close();\n } catch (e) {\n console.warn(e);\n } finally {\n o.close();\n }\n }}\n />\n </>\n ),\n onClose: () => {},\n });\n };\n // 过滤类型,子查询为完整的查询语句,表达式为单个字段\n // 目前只支持表达式和子查询两种类型\n const filterType: { label: string; value: Filter_TypeEnum }[] = [\n {\n label: __('customColumn.expression'), //表达式\n value: Filter_TypeEnum.EXPRESSION,\n },\n {\n label: 'NOT EXISTS',\n value: Filter_TypeEnum.NOT_EXISTS,\n },\n ];\n\n // 选择过滤类型\n function addSelectType(e: any) {\n const _e = cloneDeep(e);\n let node = _e.currentTarget;\n let _index: number = node.getAttribute('v-index') || -1;\n let _type: string = node.getAttribute('v-type');\n\n store.setPopup({\n visible: true,\n node: e.currentTarget,\n content: (\n <SelectList\n className='purple'\n list={filterType}\n onChange={(type: any) => {\n closePopup();\n // 如果是新增子查询\n if (type === Filter_TypeEnum.EXPRESSION) {\n handleAdd(_e);\n } else if (type === Filter_TypeEnum.NOT_EXISTS) {\n showNotExists(_index, _type);\n }\n }}\n />\n ),\n });\n }\n\n return (\n <Wrapper className={`Sqb-item`}>\n <div className={`Sqb-hover-parent`}>\n {!meta.isPermanent ? (\n <Header\n className='purple-text'\n title={__('SqlQueryBuilder.filter')}\n onClose={() => {\n closePopup();\n store.delMeta(meta, groupIndex);\n }}\n />\n ) : null}\n\n <div className={`Sqb-item--content`}>\n <div className={`Sqb-NotebookCell gray-bg`}>\n {filter.map((v: MetaFilter_Item, i: number) => {\n return (\n <div\n key={i}\n className={cx('Sqb-Filter-item', {\n hover: ind === i,\n })}\n onMouseEnter={(e: any) => {\n setInd(i);\n }}\n onMouseLeave={() => {\n setInd(-1);\n }}\n >\n <Select\n trigger={'hover'}\n triggerProps={{\n clickToClose: true,\n }}\n triggerElement={() => {\n return (\n <div\n className='left-arrow'\n onClick={addSelectType}\n v-index={i}\n v-type='before'\n >\n <img src={arrow} />\n </div>\n );\n }}\n onChange={(val) => {\n addOperator(val, i, 'before');\n }}\n >\n {options.map((option) => (\n <Select.Option key={option} value={option}>\n {option}\n </Select.Option>\n ))}\n </Select>\n\n {typeof v === 'string' ? (\n <div className={`Sqb-TableName purple-name`} key={i}>\n {v}\n <span style={{ fontSize: 0 }} onClick={(e) => handleDel(e, i)}>\n <CloseIcon />\n </span>\n </div>\n ) : (\n <div\n className={`Sqb-TableName purple-name`}\n key={i}\n onClick={(e) => handleUpdate(e, i)}\n >\n {v.type === Filter_TypeEnum.NOT_EXISTS ? 'not exitis ( * )' : v.quotes}\n <span style={{ fontSize: 0 }} onClick={(e) => handleDel(e, i)}>\n <CloseIcon />\n </span>\n </div>\n )}\n\n <Select\n trigger={'hover'}\n triggerProps={{\n clickToClose: true,\n }}\n triggerElement={(value) => {\n return (\n <div\n className='right-arrow'\n onClick={addSelectType}\n v-index={i}\n v-type='after'\n >\n <img src={arrow} />\n </div>\n );\n }}\n onChange={(val) => {\n addOperator(val, i, 'after');\n }}\n >\n {options.map((option) => (\n <Select.Option key={option} value={option}>\n {option}\n </Select.Option>\n ))}\n </Select>\n </div>\n );\n })}\n\n <div\n className={cx(`Sqb-TableName purple-name`, { notSelected })}\n onClick={addSelectType}\n >\n {notSelected ? __('filter.addFiltersToNarrowDownYourAnswers') : <AddIcon />}\n </div>\n {Array.from(filter).length > 0 && (\n <p className='Sqb-NotebookCell-preview'>\n 预览:\n {filter\n .map((v: MetaFilter_Item, i: number) => {\n if (typeof v === 'string') {\n return v;\n } else if (v.type === Filter_TypeEnum.NOT_EXISTS) {\n return `${buildSqlQuery(v.notExists)}`;\n } else {\n return v.quotes;\n }\n })\n .join(' ')}\n </p>\n )}\n </div>\n </div>\n\n <NextDom meta={meta} groupIndex={groupIndex} />\n </div>\n </Wrapper>\n );\n};\n\nexport default Filter;\n","import React from 'react';\nimport cx from 'classnames';\n\nimport { __ } from '../../../locale';\nimport { findIndex, getHelper } from '../../../utils';\nimport { TypeEnum, ColumnsPopupThemeEnum, SQL_COLUMN_TYPE } from '../../../store/enum';\nimport {\n MetaSummarize,\n MetaSummarize_By,\n MetaListType,\n MetaJoin,\n MetaSummarize_Group,\n MetaSummarize_Enum,\n} from '../../../store/types';\nimport SelectJoinColumn, { DataType, ColumnType } from '../../dialog/select-join-column';\nimport { Tooltip, Button, Modal, Input } from '@gingkoo/pandora';\nimport { uuidv4 } from '../../../utils/helper';\nimport { changeFieldAlias } from '../../../utils';\n\nimport { AddIcon, CloseIcon } from '../../icons';\nimport { useStore } from '../../../hooks/use-provider';\n\nexport type ValueType = ColumnType & {\n condition: string; // 选择条件\n quotes: string; // 前端显示用户看的文字\n};\n\ninterface PropsType {\n meta: MetaSummarize;\n groupIndex: number;\n}\n\nconst GroupBy = (props: PropsType) => {\n const { meta, groupIndex } = props;\n const store = useStore();\n let { by } = meta;\n let index = findIndex(store.metaList[groupIndex].list, meta);\n let notBySelected = !meta.by.length;\n\n function getColumns(): DataType[] {\n let { ExistAboveGroupBy, prevList, prevGroupBy } = getHelper(\n store.metaList[groupIndex].list,\n meta,\n );\n\n let data: DataType[];\n if (ExistAboveGroupBy) {\n let _data: DataType = {\n table: (prevGroupBy as MetaSummarize).alias,\n tableId: (prevGroupBy as MetaSummarize).alias,\n tableUuid: (prevGroupBy as MetaSummarize).tableUuid || uuidv4('table'),\n alias: (prevGroupBy as MetaSummarize).alias,\n columns: [],\n };\n if (prevGroupBy?.group?.length) {\n _data.columns = _data.columns.concat(\n prevGroupBy.group.map((v: MetaSummarize_Group) => {\n return {\n name_zh: v.quotes,\n ...v,\n name: v.quotes,\n realName: v.sql?.split(' AS ')?.[1] || '',\n // name_zh: '',\n database_type: v?.database_type || SQL_COLUMN_TYPE.FLOAT,\n special_type: '',\n select: true,\n };\n }),\n );\n }\n if (prevGroupBy?.by?.length) {\n _data.columns = _data.columns.concat(\n prevGroupBy.by.map((v: MetaSummarize_By) => {\n return {\n name_zh: v.quotes,\n ...v,\n name: v.quotes,\n realName: v.sql?.split(' AS ')?.[1] || '',\n // name_zh: '',\n database_type: v?.database_type || SQL_COLUMN_TYPE.FLOAT,\n special_type: '',\n select: true,\n };\n }),\n );\n }\n data = [_data];\n\n let joinData = prevList\n .filter((v: MetaListType) => v.type === TypeEnum.joinData)\n // @ts-ignore\n .filter((v: MetaJoin) => v && v.table2.name);\n if (joinData.length) {\n data = data.concat(\n // @ts-ignore\n joinData.map((v: MetaJoin) => {\n return {\n alias: v.table2.alias,\n tableUuid: v.table2.tableUuid,\n tableId: v.table2.id,\n table: v.table2.name,\n columns: v.columns,\n };\n }),\n );\n }\n } else {\n // @ts-ignore\n data = store.metaList[groupIndex].list\n .slice(0, index)\n .map((v: MetaListType) => {\n if (v.type === TypeEnum.data) {\n return {\n alias: v.table.alias,\n table: v.table.name,\n tableUuid: v.table.tableUuid,\n tableId: v.table.id,\n columns: v.columns,\n };\n } else if (v.type === TypeEnum.joinData) {\n return {\n alias: (v as MetaJoin).table2.alias,\n table: (v as MetaJoin).table2.name,\n tableId: (v as MetaJoin).table2.id,\n tableUuid: (v as MetaJoin).table2.tableUuid,\n columns: (v as MetaJoin).columns,\n };\n } else {\n return { table: null };\n }\n })\n .filter((v: any) => v.table);\n }\n return data;\n }\n\n function handleUpdate(e: any, i: number) {\n let newMeta = store.metaList[groupIndex].list.slice();\n let data: DataType[] = getColumns();\n let value: MetaSummarize_By = by[i];\n store.setPopup({\n visible: true,\n node: e.currentTarget,\n content: (\n <SelectJoinColumn\n data={data}\n value={value}\n theme={ColumnsPopupThemeEnum.greenGrass}\n isGroup={true}\n // @ts-ignore\n onGroup={(data: MetaSummarize_By) => {\n // @ts-ignore\n newMeta[index].by.splice(i, 1, data);\n // @ts-ignore\n newMeta[index].by = newMeta[index].by.map((v: MetaSummarize_By) => {\n const fieldAlias = `${v.alias}__${v.name}`;\n return {\n ...v,\n sql: `${v.alias}.${v.realName || v.name}`,\n fieldAlias: fieldAlias,\n };\n });\n if (value.quotes !== data.quotes) {\n newMeta = newMeta.filter((_: MetaListType, _i: number) => _i <= index);\n }\n store.setMeta(newMeta, groupIndex);\n closePopup();\n }}\n />\n ),\n });\n }\n\n function handleAdd(e: any) {\n let newMeta = store.metaList[groupIndex].list.slice();\n let data: DataType[] = getColumns();\n let value: MetaSummarize_By = {\n table: '',\n tableId: '',\n tableUuid: '',\n alias: '',\n fieldAlias: '',\n fieldUuid: '',\n name: '',\n id: '',\n sql: '',\n database_type: '',\n condition: '',\n quotes: '',\n datasourceId: '',\n datasourceName: '',\n // column: '',\n // column_id: '',\n summarizeType: MetaSummarize_Enum.BY,\n };\n store.setPopup({\n visible: true,\n node: e.currentTarget,\n content: (\n <SelectJoinColumn\n data={data}\n value={value}\n theme={ColumnsPopupThemeEnum.greenGrass}\n isGroup={true}\n // @ts-ignore\n onGroup={(data: MetaSummarize_By) => {\n // @ts-ignore\n newMeta[index].by.push(data);\n // @ts-ignore\n newMeta[index].by = newMeta[index].by.map((v: MetaSummarize_By) => {\n const fieldAlias = `${v.alias}__${v.name}`;\n return {\n ...v,\n sql: `${v.alias}.${v.realName || v.name}`,\n fieldAlias: fieldAlias,\n fieldUuid: uuidv4('field'),\n summarizeType: MetaSummarize_Enum.BY,\n };\n });\n store.setMeta(newMeta, groupIndex);\n closePopup();\n }}\n />\n ),\n });\n }\n\n function handleDel(e: any, itemId: number) {\n e.stopPropagation();\n closePopup();\n let newMeta = store.metaList[groupIndex].list.slice();\n // @ts-ignore\n newMeta[index].by = by.filter((_: MetaSummarize_By, i: number) => i !== itemId);\n newMeta = newMeta.filter((_: MetaListType, _i: number) => _i <= index);\n store.setMeta(newMeta, groupIndex);\n }\n\n function closePopup() {\n store.setPopup({ visible: false });\n }\n\n const onChangeFieldAlias = (val: string, i: number) => {\n let fieldAlias = val || '';\n Modal.confirm({\n title: __('SqlQueryBuilder.alias'), // 设置别名\n content: (\n <Input\n defaultValue={fieldAlias}\n onChange={(val) => {\n fieldAlias = val;\n }}\n ></Input>\n ),\n onOk: () => {\n let newMeta = store.metaList[groupIndex].list.slice();\n // @ts-ignore\n newMeta[index].by[i].sql = newMeta[index].by[i].sql.split('AS ')[0] + `AS ${fieldAlias}`; //修改sql\n newMeta[index].by[i].fieldAlias = fieldAlias;\n\n newMeta = changeFieldAlias(newMeta, newMeta[index].by[i]);\n\n store.setMeta(newMeta, groupIndex);\n },\n onCancel: () => {},\n });\n };\n return (\n <>\n {meta.by.map((v: any, i: number) => {\n return (\n <div className={`Sqb-TableName green-name`} key={i} onClick={(e) => handleUpdate(e, i)}>\n {v.quotes && (\n <Tooltip title={__('SqlQueryBuilder.alias')}>\n <Button\n className={':Sqb-TableName-as :Sqb-TableName green-name'}\n shape='circle'\n iconOnly\n primary\n icon={'As'}\n size='small'\n onClick={(e) => {\n e.stopPropagation();\n onChangeFieldAlias(v?.fieldAlias || '', i);\n }}\n ></Button>\n </Tooltip>\n )}\n {`${v.quotes} ${v.fieldAlias ? `as ${v.fieldAlias}` : ''}`}\n <span style={{ fontSize: 0 }} onClick={(e) => handleDel(e, i)}>\n <CloseIcon />\n </span>\n </div>\n );\n })}\n <div\n className={cx(`Sqb-TableName green-name`, { notSelected: notBySelected })}\n onClick={handleAdd}\n >\n {notBySelected ? __('summarize.selectTheColumnsForGrouping') : <AddIcon />}\n </div>\n </>\n );\n};\n\nexport default GroupBy;\n","import React from 'react';\nimport cx from 'classnames';\n\nimport { __ } from '../../../locale';\nimport { findIndex, getHelper } from '../../../utils';\nimport { TypeEnum, SQL_COLUMN_TYPE } from '../../../store/enum';\nimport { summarizeToSql } from '../../../store/helper';\nimport { Tooltip, Button, Modal, Input } from '@gingkoo/pandora';\nimport { uuidv4 } from '../../../utils/helper';\nimport {\n MetaListType,\n MetaSummarize,\n MetaSummarize_Group,\n MetaSummarize_By,\n MetaJoin,\n MetaSummarize_Enum,\n} from '../../../store/types';\nimport { DataType } from '../../dialog/select-join-column';\nimport { changeFieldAlias } from '../../../utils';\n\nimport { AddIcon, CloseIcon } from '../../icons';\nimport { SelectSummarize } from '../../dialog';\nimport { ValueType } from '../../dialog/select-summarize/index';\n\nimport { useStore } from '../../../hooks/use-provider';\n\ninterface PropsType {\n store?: any;\n meta: MetaSummarize;\n groupIndex: number;\n}\n\nconst SelectIndex = (props: PropsType) => {\n const { meta, groupIndex } = props;\n const store = useStore();\n let { group } = meta;\n let index = findIndex(store.metaList[groupIndex].list, meta);\n let notGroupSelected = !group.length;\n\n function getColumns(): DataType[] {\n let { ExistAboveGroupBy, prevList, prevGroupBy } = getHelper(\n store.metaList[groupIndex].list,\n meta,\n );\n\n let data: DataType[];\n if (ExistAboveGroupBy) {\n let _data: DataType = {\n table: (prevGroupBy as MetaSummarize).alias,\n tableId: (prevGroupBy as MetaSummarize).alias,\n tableUuid: (prevGroupBy as MetaSummarize).tableUuid || uuidv4('table'),\n alias: (prevGroupBy as MetaSummarize).alias,\n columns: [],\n };\n if (prevGroupBy?.group?.length) {\n _data.columns = _data.columns.concat(\n prevGroupBy.group.map((v: MetaSummarize_Group) => {\n return {\n name_zh: v.quotes,\n ...v,\n name: v.quotes,\n fieldUuid: uuidv4('field'),\n fieldAlias: v.fieldAlias || '',\n realName: v.sql?.split(' AS ')?.[1] || '',\n // name_zh: '',\n database_type: v?.database_type || SQL_COLUMN_TYPE.FLOAT,\n special_type: '',\n select: true,\n };\n }),\n );\n }\n if (prevGroupBy?.by?.length) {\n _data.columns = _data.columns.concat(\n prevGroupBy.by.map((v: MetaSummarize_By) => {\n return {\n name_zh: v.quotes,\n ...v,\n name: v.quotes,\n realName: v.sql?.split(' AS ')?.[1] || '',\n // name_zh: '',\n database_type: v?.database_type || SQL_COLUMN_TYPE.FLOAT,\n special_type: '',\n fieldUuid: uuidv4('field'),\n fieldAlias: v.fieldAlias || '',\n select: true,\n };\n }),\n );\n }\n data = [_data];\n\n let joinData = prevList\n .filter((v: MetaListType) => v.type === TypeEnum.joinData)\n // @ts-ignore\n .filter((v: MetaJoin) => v && v.table2.name);\n if (joinData.length) {\n data = data.concat(\n // @ts-ignore\n joinData.map((v: MetaJoin) => {\n return {\n alias: v.table2.alias,\n table: v.table2.name,\n tableUuid: v.table2.tableUuid,\n tableId: v.table2.id,\n columns: v.columns,\n };\n }),\n );\n }\n } else {\n // @ts-ignore\n data = store.metaList[groupIndex].list\n .slice(0, index)\n .map((v: MetaListType) => {\n if (v.type === TypeEnum.data) {\n return {\n alias: v.table.alias,\n table: v.table.name,\n tableUuid: v.table.tableUuid,\n tableId: v.table.id,\n columns: v.columns,\n };\n } else if (v.type === TypeEnum.joinData) {\n return {\n alias: (v as MetaJoin).table2.alias,\n table: (v as MetaJoin).table2.name,\n tableUuid: (v as MetaJoin).table2.tableUuid,\n tableId: (v as MetaJoin).table2.id,\n columns: (v as MetaJoin).columns,\n };\n } else {\n return { table: null };\n }\n })\n .filter((v: any) => v.table);\n }\n return data;\n }\n\n function handleUpdate(e: any, i: number) {\n let newMeta = store.metaList[groupIndex].list.slice();\n let data: DataType[] = getColumns();\n let value: MetaSummarize_Group = group[i];\n store.setPopup({\n visible: true,\n node: e.currentTarget,\n content: (\n <SelectSummarize\n data={data}\n value={value}\n onChange={(data: ValueType) => {\n //@ts-ignore\n newMeta[index].group.splice(i, 1, data);\n //@ts-ignore\n newMeta[index].group = newMeta[index].group.map((v: MetaSummarize_Group) => {\n const { sql, fieldAlias } = summarizeToSql(newMeta[index].group, v);\n return {\n ...v,\n //@ts-ignore\n sql: sql,\n fieldAlias: fieldAlias,\n };\n });\n if (value.quotes !== data.quotes) {\n newMeta = newMeta.filter((_: MetaListType, _i: number) => _i <= index);\n }\n store.setMeta(newMeta, groupIndex);\n closePopup();\n }}\n />\n ),\n });\n }\n\n function handleAdd(e: any) {\n let newMeta = store.metaList[groupIndex].list.slice();\n let data: DataType[] = getColumns();\n let value: MetaSummarize_Group = {\n table: '',\n tableId: '',\n tableUuid: '',\n alias: '',\n fieldAlias: '',\n fieldUuid: '',\n name: '',\n id: '',\n sql: '',\n database_type: '',\n condition: '',\n quotes: '',\n datasourceId: '',\n datasourceName: '',\n // column: '',\n // column_id: '',\n summarizeType: MetaSummarize_Enum.GROUP,\n };\n store.setPopup({\n visible: true,\n node: e.currentTarget,\n content: (\n <SelectSummarize\n data={data}\n value={value}\n onChange={(data: ValueType) => {\n // @ts-ignore\n newMeta[index].group.push(data);\n // @ts-ignore\n newMeta[index].group = newMeta[index].group.map((v: MetaSummarize_Group) => {\n const { sql, fieldAlias } = summarizeToSql(newMeta[index].group, v);\n\n return {\n ...v,\n // @ts-ignore\n sql: sql,\n fieldUuid: uuidv4('field'),\n fieldAlias: fieldAlias,\n summarizeType: MetaSummarize_Enum.GROUP,\n };\n });\n store.setMeta(newMeta, groupIndex);\n closePopup();\n }}\n />\n ),\n });\n }\n\n function handleDel(e: any, itemId: number) {\n e.stopPropagation();\n closePopup();\n let newMeta = store.metaList[groupIndex].list.slice();\n // @ts-ignore\n newMeta[index].group = group.filter((_: MetaSummarize_Group, i: number) => i !== itemId);\n newMeta = newMeta.filter((_: MetaListType, _i: number) => _i <= index);\n store.setMeta(newMeta, groupIndex);\n }\n\n function closePopup() {\n store.setPopup({ visible: false });\n }\n\n const onChangeFieldAlias = (val: string, i: number) => {\n let fieldAlias = val || '';\n Modal.confirm({\n title: __('SqlQueryBuilder.alias'), // 设置别名\n content: (\n <Input\n defaultValue={fieldAlias}\n onChange={(val) => {\n fieldAlias = val;\n }}\n ></Input>\n ),\n icon: false,\n onOk: () => {\n let newMeta = store.metaList[groupIndex].list.slice();\n // @ts-ignore\n newMeta[index].group[i].fieldAlias = fieldAlias;\n newMeta[index].group[i].sql =\n newMeta[index].group[i].sql.split('AS ')[0] + `AS ${fieldAlias}`; //修改sql\n\n newMeta = changeFieldAlias(newMeta, newMeta[index].group[i]);\n store.setMeta(newMeta, groupIndex);\n },\n onCancel: () => {},\n });\n };\n\n return (\n <>\n {meta.group.map((v: any, i: number) => {\n return (\n <div className={`Sqb-TableName green-name`} key={i} onClick={(e) => handleUpdate(e, i)}>\n {v.quotes && (\n <Tooltip title={__('SqlQueryBuilder.alias')}>\n <Button\n className={':Sqb-TableName-as :Sqb-TableName green-name'}\n shape='circle'\n iconOnly\n primary\n icon={'As'}\n size='small'\n onClick={(e) => {\n e.stopPropagation();\n onChangeFieldAlias(v?.fieldAlias || '', i);\n }}\n ></Button>\n </Tooltip>\n )}\n {`${v.quotes} ${v.fieldAlias ? `as ${v.fieldAlias}` : ''}`}\n <span style={{ fontSize: 0 }} onClick={(e) => handleDel(e, i)}>\n <CloseIcon />\n </span>\n </div>\n );\n })}\n <div\n className={cx(`Sqb-TableName green-name`, { notSelected: notGroupSelected })}\n onClick={handleAdd}\n >\n {notGroupSelected ? __('summarize.selectTheMetricsYouWantToView') : <AddIcon />}\n </div>\n </>\n );\n};\n\nexport default SelectIndex;\n","import React from 'react';\nimport cx from 'classnames';\n\nimport { __ } from '../../../locale';\nimport { MetaSummarize } from '../../../store/types';\n\nimport Wrapper from '../components/Wrapper';\nimport NextDom from '../components/meta-icon';\nimport Header from '../components/header';\nimport GroupBy from './group-by';\nimport SelectIndex from './select-index';\nimport { useStore } from '../../../hooks/use-provider';\n\ninterface PropsType {\n store?: any;\n meta: MetaSummarize;\n groupIndex: number;\n}\n\nconst Summarize = (props: PropsType) => {\n const { meta, groupIndex } = props;\n const store = useStore();\n\n return (\n <Wrapper className={cx(`Sqb-item`)}>\n <div className={cx(`Sqb-hover-parent`)}>\n <Header\n className='green-text'\n title={__('SqlQueryBuilder.summarize')}\n onClose={() => {\n store.setPopup({ visible: false });\n store.delMeta(meta, groupIndex);\n }}\n />\n <div className={cx(`Sqb-item--content`)}>\n <div className={'flex-row'}>\n <div className={`Sqb-NotebookCell green-bg`}>\n <SelectIndex meta={meta} groupIndex={groupIndex} />\n </div>\n <div className={'pass'}>{__('SqlQueryBuilder.by')}</div>\n <div className={`Sqb-NotebookCell green-bg`}>\n <GroupBy meta={meta} groupIndex={groupIndex} />\n </div>\n </div>\n </div>\n\n <NextDom meta={meta} groupIndex={groupIndex} />\n </div>\n </Wrapper>\n );\n};\n\nexport default Summarize;\n","import React from 'react';\nimport cx from 'classnames';\n\nimport { __ } from '../../locale';\nimport { findIndex, getHelper } from '../../utils';\nimport { SummarizeAlias } from '../../store/helper';\nimport { ColumnsPopupThemeEnum, TypeEnum, SortEnum, SQL_COLUMN_TYPE } from '../../store/enum';\nimport {\n MetaSort,\n MetaSort_Item,\n MetaData_ColumnsType,\n MetaSummarize,\n MetaSummarize_Group,\n MetaSummarize_By,\n MetaJoin,\n MetaListType,\n} from '../../store/types';\nimport { ColumnType, DataType } from '../dialog/select-join-column';\nimport { uuidv4 } from '../../utils/helper';\n\nimport { AddIcon, CloseIcon, UpArrowIcon, DownArrowIcon } from '../icons';\nimport { SelectJoinColumn } from '../dialog';\nimport Wrapper from './components/Wrapper';\nimport NextDom from './components/meta-icon';\nimport Header from './components/header';\n\nimport { useStore } from '../../hooks/use-provider';\n\ninterface PropsType {\n meta: MetaSort;\n groupIndex: number;\n}\n\nconst Sort = (props: PropsType) => {\n const { meta, groupIndex } = props;\n const store = useStore();\n let { sort } = meta;\n let index = findIndex(store.metaList[groupIndex].list, meta);\n\n function getColumns(): DataType[] {\n let { ExistAboveGroupBy, prevGroupBy } = getHelper(store.metaList[groupIndex].list, meta);\n\n let data: DataType[];\n if (ExistAboveGroupBy) {\n let _data: DataType = {\n table: (prevGroupBy as MetaSummarize).alias,\n tableId: (prevGroupBy as MetaSummarize).alias,\n tableUuid: (prevGroupBy as MetaSummarize).tableUuid || uuidv4('table'),\n alias: (prevGroupBy as MetaSummarize).alias,\n columns: [],\n };\n if (prevGroupBy?.group?.length) {\n _data.columns = _data.columns.concat(\n prevGroupBy.group.map((v: MetaSummarize_Group) => {\n return {\n name_zh: v.quotes,\n ...v,\n name: v.quotes,\n // name_zh: '',\n database_type: v?.database_type || SQL_COLUMN_TYPE.FLOAT,\n special_type: '',\n sql: v.sql,\n select: true,\n };\n }),\n );\n }\n if (prevGroupBy?.by?.length) {\n _data.columns = _data.columns.concat(\n prevGroupBy.by.map((v: MetaSummarize_By) => {\n return {\n name_zh: v.quotes,\n ...v,\n name: v.quotes,\n // name_zh: '',\n database_type: v?.database_type || SQL_COLUMN_TYPE.FLOAT,\n special_type: '',\n sql: v.sql,\n select: true,\n };\n }),\n );\n }\n data = [_data];\n } else {\n //@ts-ignore\n data = store.metaList[groupIndex].list\n .slice(0, index)\n .map((v: MetaListType) => {\n if (v.type === TypeEnum.data) {\n return {\n alias: v.table.alias,\n table: v.table.name,\n tableUuid: v.table.tableUuid,\n tableId: v.table.id,\n columns: v.columns,\n };\n } else if (v.type === TypeEnum.joinData) {\n return {\n alias: (v as MetaJoin).table2.alias,\n table: (v as MetaJoin).table2.name,\n tableUuid: (v as MetaJoin).table2.tableUuid,\n tableId: (v as MetaJoin).table2.id,\n columns: (v as MetaJoin).columns,\n };\n } else {\n return { table: null };\n }\n })\n .filter((v: any) => v.table);\n }\n return data;\n }\n\n function addSortColumn(e: any) {\n let node = e.currentTarget || e.target;\n let newMeta = store.metaList[groupIndex].list.slice();\n let value: ColumnType = {\n table: '',\n tableId: '',\n tableUuid: '',\n fieldUuid: '',\n fieldAlias: '',\n alias: '',\n name: '',\n id: '',\n database_type: '',\n datasourceId: '', // 数据源id\n datasourceName: '', // 数据源名\n };\n let data: DataType[] = getColumns();\n\n // ② 过滤掉已经选择的 排序参数\n let selectedSort: any = {}; // {tableAlias: [columnName, columnName]}\n //@ts-ignore\n newMeta[index].sort.forEach((v: any) => {\n if (selectedSort[v.alias]) {\n selectedSort[v.alias].push(v.name);\n } else {\n selectedSort[v.alias] = [v.name];\n }\n });\n data = data.map((v: DataType) => {\n if (v.alias in selectedSort) {\n return {\n ...v,\n columns: v.columns.filter(\n (n: MetaData_ColumnsType) => !~selectedSort[v.alias]?.indexOf(n.name),\n ),\n };\n }\n return v;\n });\n\n store.setPopup({\n visible: true,\n node,\n content: (\n <SelectJoinColumn\n data={data}\n value={value}\n theme={ColumnsPopupThemeEnum.greenGrass}\n onSelect={(record: ColumnType) => {\n let { table, name, tableId, tableUuid, id, alias, sql } = record;\n if (alias === SummarizeAlias) {\n let aliasColumns = (sql as string)?.split(' AS ')?.[1] || '';\n if (store.metaList[groupIndex].list[index - 1].type === TypeEnum.summarize) {\n //@ts-ignore\n newMeta[index].sort = [\n //@ts-ignore\n ...newMeta[index].sort,\n {\n table,\n tableId,\n tableUuid,\n id,\n alias,\n name,\n sort: SortEnum.asc,\n sql: aliasColumns,\n },\n ];\n } else {\n //@ts-ignore\n newMeta[index].sort = [\n //@ts-ignore\n ...newMeta[index].sort,\n {\n table,\n id,\n tableId,\n tableUuid,\n alias,\n name,\n sort: SortEnum.asc,\n sql: `${SummarizeAlias}.${aliasColumns}`,\n },\n ];\n }\n } else {\n //@ts-ignore\n newMeta[index].sort = [\n //@ts-ignore\n ...newMeta[index].sort,\n {\n table,\n tableId,\n tableUuid,\n id,\n alias,\n name,\n sort: SortEnum.asc,\n sql: `${alias}.${name}`,\n },\n ];\n }\n store.setMeta(newMeta, groupIndex);\n store.setPopup({ visible: false });\n }}\n />\n ),\n });\n }\n\n function handleSort(itemIndex: number) {\n let newMeta = store.metaList[groupIndex].list.slice();\n //@ts-ignore\n newMeta[index].sort = sort.map((v: any, i: number) => {\n if (i === itemIndex) {\n return {\n ...v,\n sort: v.sort === SortEnum.asc ? SortEnum.desc : SortEnum.asc,\n };\n }\n return v;\n });\n store.setMeta(newMeta, groupIndex);\n }\n\n function delSortColumn(e: any, itemIndex: number) {\n e.stopPropagation();\n let newMeta = store.metaList[groupIndex].list.slice();\n //@ts-ignore\n newMeta[index].sort = sort.filter((_: any, i: number) => i !== itemIndex);\n store.setMeta(newMeta, groupIndex);\n }\n\n return (\n <Wrapper className={cx(`Sqb-item`)}>\n <div className={cx(`Sqb-hover-parent`)}>\n <Header\n className='gray-text'\n title={__('SqlQueryBuilder.sort')}\n onClose={() => store.delMeta(meta, groupIndex)}\n />\n <div className={cx(`Sqb-item--content`)}>\n <div className={cx(`Sqb-NotebookCell gray-bg`)}>\n {sort.map((v: MetaSort_Item, i: number) => {\n return (\n <div className={`Sqb-TableName gray-name`} key={i} onClick={() => handleSort(i)}>\n {v.sort === SortEnum.asc ? <UpArrowIcon /> : <DownArrowIcon />}\n {v.name}\n <span style={{ fontSize: 0 }} onClick={(e) => delSortColumn(e, i)}>\n <CloseIcon />\n </span>\n </div>\n );\n })}\n <div className={`Sqb-TableName gray-name`} onClick={addSortColumn}>\n <AddIcon />\n </div>\n </div>\n </div>\n\n <NextDom meta={meta} groupIndex={groupIndex} />\n </div>\n </Wrapper>\n );\n};\n\nexport default Sort;\n","import React from 'react';\nimport { InputNumber } from '@gingkoo/pandora';\nimport cx from 'classnames';\n\nimport { __ } from '../../locale';\nimport { findIndex } from '../../utils';\n\nimport Wrapper from './components/Wrapper';\nimport NextDom from './components/meta-icon';\nimport Header from './components/header';\n\nimport { useStore } from '../../hooks/use-provider';\n\ninterface PropsType {\n store?: any;\n meta: any;\n groupIndex: number;\n}\n\nconst RowLimit = (props: PropsType) => {\n const { meta, groupIndex } = props;\n const store = useStore();\n let index = findIndex(store.metaList[groupIndex].list, meta);\n\n function handleChange(inputValue: any) {\n let newMeta = store.metaList[groupIndex].list.slice();\n // @ts-ignore\n newMeta[index].limit = inputValue;\n store.setMeta(newMeta, groupIndex);\n }\n return (\n <Wrapper className={cx(`Sqb-item`)}>\n <div className={cx(`Sqb-hover-parent`)}>\n <Header\n className='gray-text'\n title={__('SqlQueryBuilder.rowLimit')}\n onClose={() => store.delMeta(meta, groupIndex)}\n />\n <div className={cx(`Sqb-item--content`)}>\n <div className={cx(`Sqb-NotebookCell gray-bg`)}>\n <InputNumber\n value={meta.limit}\n min={1}\n style={{ width: 200 }}\n onChange={handleChange}\n placeholder={__('rowLimit.pleaseEnter')}\n precision={0}\n />\n </div>\n </div>\n\n <NextDom meta={meta} groupIndex={groupIndex} />\n </div>\n </Wrapper>\n );\n};\n\nexport default RowLimit;\n","import React from 'react';\nimport cx from 'classnames';\n\nimport { __ } from '../../locale';\nimport { findIndex } from '../../utils';\nimport { TypeEnum } from '../../store/enum';\nimport {\n MetaData,\n MetaData_TableType,\n MetaListType,\n MetaJoin,\n MetaSummarize,\n} from '../../store/types';\n\nimport { SelectPermissionTable } from '../dialog';\nimport { getHelper } from '../../utils';\nimport Wrapper from './components/Wrapper';\nimport NextDom from './components/meta-icon';\nimport Header from './components/header';\n\nimport { useStore } from '../../hooks/use-provider';\nimport { uuidv4 } from '../../utils/helper';\n\ninterface PropsType {\n meta: MetaData;\n groupIndex: number;\n}\n\nconst PrevResult = 'Previous results';\n\nconst PermissionTable = (props: PropsType) => {\n const { meta, groupIndex } = props;\n const store = useStore();\n let index = findIndex(store.metaList[groupIndex].list, meta);\n\n function selectTable(e: any) {\n let { ExistAboveGroupBy, prevList, prevGroupBy } = getHelper(\n store.metaList[groupIndex].list,\n meta,\n );\n\n let data: MetaData_TableType[] = [];\n if (ExistAboveGroupBy) {\n let _data: MetaData_TableType = {\n name: (prevGroupBy as MetaSummarize).alias,\n id: (prevGroupBy as MetaSummarize).alias,\n tableUuid: uuidv4('table'),\n alias: (prevGroupBy as MetaSummarize).alias,\n datasourceId: '',\n datasourceName: '',\n };\n\n data = [_data];\n\n let joinData = prevList\n .filter((v) => v.type === TypeEnum.joinData)\n .filter((v) => v && (v as MetaJoin).table2.name);\n if (joinData.length) {\n data = data.concat(\n (joinData as MetaJoin[]).map((v: MetaJoin) => {\n return {\n alias: v.table2.alias,\n name: v.table2.name,\n tableUuid: v.table2.tableUuid,\n id: v.table2.id,\n datasourceId: v.table2.datasourceId,\n datasourceName: v.table2.datasourceName,\n };\n }),\n );\n }\n } else {\n data = store.metaList[groupIndex].list\n .slice(0, index)\n .reduce((mo: MetaData_TableType[], v: MetaListType) => {\n if (v.type === TypeEnum.data) {\n mo.push({\n alias: v.table.alias,\n name: v.table.name,\n id: v.table.id,\n tableUuid: v.table.tableUuid,\n datasourceId: v.table.datasourceId,\n datasourceName: v.table.datasourceName,\n });\n } else if (v.type === TypeEnum.joinData) {\n mo.push({\n alias: (v as MetaJoin).table2.alias,\n name: (v as MetaJoin).table2.name,\n id: (v as MetaJoin).table2.id,\n tableUuid: (v as MetaJoin).table2.tableUuid,\n datasourceId: (v as MetaJoin).table2.datasourceId,\n datasourceName: (v as MetaJoin).table2.datasourceName,\n });\n }\n return mo;\n }, []);\n }\n\n store.setPopup({\n visible: true,\n node: e.currentTarget,\n content: (\n <SelectPermissionTable\n data={data}\n value={meta.table as MetaData_TableType}\n onChange={(data: MetaData_TableType) => {\n if (meta.table.datasourceId !== data.datasourceId || meta.table.name !== data.name) {\n meta.table = data;\n }\n store.setPopup({ visible: false });\n }}\n />\n ),\n });\n }\n\n let selected = Boolean(meta.table.name);\n\n return (\n <Wrapper className={`Sqb-item`}>\n <div className={`Sqb-hover-parent`}>\n <Header\n className='gray-text'\n title={__('SqlQueryBuilder.permissionTable')}\n onClose={() => store.delMeta(meta, groupIndex)}\n />\n <div className={`Sqb-item--content`}>\n <div className={`Sqb-NotebookCell gray-bg`}>\n <div\n className={cx(`Sqb-TableName`, {\n notSelected: !selected,\n })}\n onClick={selectTable}\n >\n {selected\n ? `${meta.table.datasourceName ? `${meta.table.datasourceName}.` : ''}${\n meta.table.name === 'source' ? PrevResult : meta.table.name\n }`\n : __('SqlQueryBuilder.pickPermissionTable')}\n </div>\n </div>\n </div>\n\n <NextDom meta={meta} groupIndex={groupIndex} />\n </div>\n </Wrapper>\n );\n};\n\nexport default PermissionTable;\n","import { TypeEnum } from '../../store/enum';\n\nimport TableData from './table-data';\nimport JoinData from './join-data';\nimport CustomColumn from './custom-column';\nimport Filter from './filter';\nimport Summarize from './summarize';\nimport Sort from './sort';\nimport RowLimit from './row-limit';\nimport PermissionTable from './permission-table';\n\ntype ModuleComponent = React.ComponentType<any>;\n\nexport default new Map<TypeEnum, ModuleComponent>([\n [TypeEnum.data, TableData],\n [TypeEnum.joinData, JoinData],\n [TypeEnum.customColumn, CustomColumn],\n [TypeEnum.filter, Filter],\n [TypeEnum.summarize, Summarize],\n [TypeEnum.sort, Sort],\n [TypeEnum.rowLimit, RowLimit],\n [TypeEnum.permissionTable, PermissionTable],\n]);\n","import './index.less';\n\nimport React, { useMemo, useRef, useState } from 'react';\nimport cx from 'classnames';\nimport { Button, Toast } from '@gingkoo/pandora';\n// import { toJS } from 'mobx';\nimport Styled from 'styled-components';\n\nimport { getMaxZIndexInParents } from '../../utils/helper-dom';\nimport { handleSqlStruct } from '../../store/helper';\nimport { MetaData } from '../../store/types';\nimport Union from '../modules/union';\nimport { splitByUnion } from '../../utils';\n\nimport { __ } from '../../locale';\nimport modulesMap from '../modules';\n\nimport Popup from '../popup';\nimport { useStore } from '../../hooks/use-provider';\nimport type { MetabaseProps, MetaListProps } from '../../types';\n\nconst VisualBox = Styled.div.attrs({ className: 'visual-box' })``;\n\nconst Metabase = (props: MetabaseProps) => {\n let { btnText = '', readonly = false, onOk } = props;\n const store = useStore();\n const [saveLoading, setSaveLoading] = useState(false);\n // const popupContainer = useRef();\n // store.setPopupContainer(popupContainer);\n const popupContent = useMemo(() => {\n let { visible, content } = store.popupData;\n if (!visible) return null;\n return content;\n }, [store.popupData]);\n const popupContent2 = useMemo(() => {\n let { visible, content } = store.popupData2;\n if (!visible) return null;\n return content;\n }, [store.popupData2]);\n\n const onSave = async () => {\n let intercept = false; // 是否返回\n const _metaList = splitByUnion(store.metaList);\n\n store.metaList.map((v: MetaListProps) => {\n if (v.type !== 'union' && !(v.list?.[0] as MetaData).table.name) {\n intercept = true;\n return Toast.warning(__('data.pleaseSelectDataTable'));\n }\n });\n\n if (saveLoading || intercept) return null;\n setSaveLoading(true);\n\n await onOk?.(_metaList);\n\n setSaveLoading(false);\n };\n\n let zIndex = store.popupContainer.current\n ? getMaxZIndexInParents(store.popupContainer.current)\n : null;\n\n return (\n // @ts-ignore\n <VisualBox ref={store.popupContainer}>\n <div className={'Sqb'}>\n {store.metaList.map((v: MetaListProps, index: number) => {\n if (v.type === 'union' && v.union) {\n return (\n <div className={cx(`Sqb-list`)} key={'union' + index}>\n <Union union={v.union} meta={v} groupIndex={index}></Union>\n </div>\n );\n }\n\n return (\n <div className={cx(`Sqb-list`)} key={'group' + index}>\n {v?.list?.map((meta: any) => {\n let { type: metaType, metaKey, hidden } = meta;\n if (hidden) return null;\n let Component: any = modulesMap.get(metaType);\n return <Component meta={meta} key={metaKey} groupIndex={index} />;\n })}\n </div>\n );\n })}\n {/* <div className={cx(`Sqb-list`)}>\n {store.metaList.map((meta: any) => {\n let { type: metaType, metaKey, hidden } = meta;\n if (hidden) return null;\n let Component: any = modulesMap.get(metaType);\n return <Component meta={meta} key={metaKey} />;\n })}\n </div> */}\n {!readonly && typeof onOk === 'function' ? (\n <Button\n type='primary'\n className={`:Sqb-btn`}\n loading={saveLoading}\n disabled={saveLoading}\n onClick={onSave}\n >\n {btnText || __('SqlQueryBuilder.visualize')}\n </Button>\n ) : null}\n\n {store.popupContainer.current && (\n <Popup\n container={store.popupData.container || store.popupContainer.current}\n visible={store.popupData.visible}\n node={store.popupData.node}\n closable={store.popupClosable}\n zIndex={zIndex ? String(zIndex) : null}\n hideVisible={() => {\n store.setPopup({ visible: false });\n }}\n >\n {popupContent}\n </Popup>\n )}\n {store.popupContainer.current && (\n <Popup\n container={store.popupData2.container || store.popupContainer.current}\n visible={store.popupData2.visible}\n node={store.popupData2.node}\n closable={store.popupClosable2}\n zIndex={zIndex ? String(zIndex) : null}\n hideVisible={() => {\n store.setClosable(true);\n store.setPopup2({ visible: false });\n }}\n >\n {popupContent2}\n </Popup>\n )}\n </div>\n </VisualBox>\n );\n};\n\nexport default Metabase;\n","import React, { useEffect, useRef, useState, useMemo } from 'react';\nimport { Provider } from './hooks/use-provider';\nimport useData from './hooks/use-state';\n\nexport { restoreStructure, handleSqlStruct, compressionStructure } from './store/helper';\n\nimport './locale/en';\nimport './locale/zh';\nimport { __ } from './locale';\nimport Loading from './common/Loading';\nimport Metabase from './components/metabase';\nimport type { MetabaseProps, SqlVisionBuilderRef, DatasourceType } from './types';\nimport type { MetaListType, ToolbarType } from './store/types';\nimport { reassembleByUnion } from './utils';\n\n/**\n * 规则\n * 1、主表一换 下面全部删除\n * 2、关联如果动了表或者删除了 下面的关联都删除\n * 3、关联如果动了表或者删除了 下面对应排序用到的对应的字段也删除 todo. 未完成 因为有可能关联里面选一样的表 还不知道怎么搞\n */\nconst SqlVisionBuilder = React.forwardRef<SqlVisionBuilderRef, MetabaseProps>((props, ref) => {\n let {\n loading = false,\n showFields = true,\n getTables,\n getColumns,\n tableNameTpl = '${name}',\n fieldNameTpl = '${name}',\n toolbar = ['filter', 'summarize', 'joinData', 'customColumn', 'sort', 'rowLimit'],\n value = [],\n sourceList = [],\n showSubquery = true, // 是否展示子查询\n subShowSubquery = false,\n constantList,\n } = props;\n const store = useData();\n useEffect(() => {\n getTables && store.setFetchDatasetFn(getTables);\n getColumns && store.setFetchColumnsFn(getColumns);\n }, []);\n\n useEffect(() => {\n store.setProps(props);\n }, [props]);\n\n useEffect(() => {\n const _value = reassembleByUnion(value);\n store.setPreData(_value);\n }, [value]);\n useEffect(() => {\n store.setSourceList(sourceList);\n }, [sourceList]);\n\n useEffect(() => {\n store.setShowFields(showFields);\n store.setFieldNameTpl(fieldNameTpl || '${name}');\n store.setTableNameTpl(tableNameTpl || '${name}');\n store.setToolbar(toolbar);\n store.setShowSubquery(showSubquery);\n store._setShowSubquery(subShowSubquery);\n store.setConstantList(constantList || []);\n }, [\n showFields,\n fieldNameTpl,\n tableNameTpl,\n toolbar,\n showSubquery,\n subShowSubquery,\n constantList,\n ]);\n\n React.useImperativeHandle(ref, () => ({\n // setDatasource: (list) => {\n // store.setSourceList(list);\n // },\n\n // setPreData: (data) => {\n // store.setPreData(data);\n // },\n\n reset: () => {\n store.reset();\n },\n }));\n\n // ② 表集合没有查出来前 不加载页面\n if (loading) return <Loading show={loading} msg={__('loading')} />;\n return (\n <Provider value={store}>\n <Metabase {...props} />\n </Provider>\n );\n});\n\nexport default SqlVisionBuilder;\nexport { MetabaseProps, DatasourceType, MetaListType, ToolbarType, SqlVisionBuilderRef };\n"],"names":["Context","createContext","Provider","value","children","_jsx","useStore","useContext","throttle","fn","wait","start","Date","now","timer","diff","clearTimeout","_self","window","setTimeout","bind","apply","sleep","Promise","resolve","reject","replaceTpl","inputString","values","replace","match","variableName","String","str","Math","random","toString","slice","uuidv4","prefix","a","b","uuid","join","SortEnum","TypeEnum","JoinEnum","UnionEnum","ColumnsPopupThemeEnum","SpecialType","SQL_COLUMN_TYPE","SQL_GROUP_TYPE","DataTypeEnum","EleComponentEnum","getCookie","name","arr","document","cookie","RegExp","console","log","locales","activeLocale","isEn","register","data","warn","__","SummarizeAlias","NUMBER_GROUP","FLOAT","LONG","CURRENCY","STRING","DATE_GROUP","DATE","filterToSql","record","alias","condition","val","groupSql","database_type","condition_1","condition_2","columnName","split","sql","group","indexOf","NUMBER","transformDate","dataStr","c_1","c_2","summarizeToSql","realName","index","prevList","as","field","count","forEach","v","fieldAlias","_flatArr","res","push","_recursionArr","obj","length","reverseData","reverse","layeredData","list","i","meta","type","joinData","summarize","nextMeta","nextNextMeta","nextNextNextMeta","rowLimit","sort","handleNesting","hasInnerSql","Boolean","innerSqlStruct","tableData","permissionTable","customColumn","filterData","filter","sortData","table","tableName","datasourceId","by","queryColumns","columns","select","map","joinTables","table2","joinCondition","table1","column","joinType","o","customColumns","filters","groupBy","calcColumns","groupColumns","orderInfos","limit","Number","privilegeTable","handleSqlStruct","compressionStructure","_data","JSON","parse","stringify","metaKey","d","n","s","c","name_zh","restoreStructure","special_type","e","findIndex","item","getHelper","types","curIndex","leftTypes","rightTypes","leftList","rightList","ExistAboveGroupBy","ExistBelowGroupBy","prevTypes","nextTypes","nextList","prevGroupBy","nextGroupBy","lastIndexOf","getSubColumns","metaList","tableId","tableUuid","concat","quotes","changeTableAlias","curObj","cloneDeep","newList","formulaList","formula","expression","changeFieldAlias","fieldUuid","expressions","left_fieldUuid","left_fieldAlias","right_fieldUuid","right_fieldAlias","notExists","splitByUnion","original","result","subItem","otehr","nextItem","subquery","reassembleByUnion","target","len","hasUnion","some","groupList","union","convertedSubquery","buildSqlQuery","sqlClauses","tables","joins","wheres","table2Name","alias2","Array","isArray","left","right","left_type","left_string","right_type","right_string","filterStrings","f","defaultToolbar","defaultMetaList","id","datasourceName","defaultMeta","defaultOperator","showFields","setShowFields","useState","showSubquery","setShowSubquery","_showSubquery","_setShowSubquery","toolbar","setToolbar","fieldNameTpl","setFieldNameTpl","tableNameTpl","setTableNameTpl","sourceList","setSourceList","constantList","setConstantList","_cacheSource2TableMap","set_cacheSource2TableMap","_cacheColumnsMap","set_cacheColumnsMap","_setMeta","popupData","setPopup","visible","node","content","popupData2","setPopup2","popupClosable","setClosable","popupClosable2","setClosable2","popupContainer","useRef","fetchDatasetFn","setFetchDatasetFn","current","fetchColumnsFn","setFetchColumnsFn","preProps","setProps","showMainColumn","useMemo","groupIndex","summarizeItems","onlyItem","hasGroupOrBy","showToolbar","fetchDataset","getDataset","_tables","setDataset","fetchColumns","callback","did","extra","getColumns","setColumns","_columns","setMeta","curData","groupInd","newMeta","setQuotes","left_column","left_quotes","right_column","right_quotes","setPreData","_metaList","isSubquery","newColumns","items","flatMap","validMetaKeys","num","isNaN","max","addMeta","mainTable","newMetaList","splice","delMeta","reset","loading","Loading","show","msg","_jsxs","className","getComputedTranslate","getComputedStyle","x","y","style","transform","webkitTransform","mozTransform","mat","parseFloat","getElementTop","elem","elemTop","offsetTop","pElem","offsetParent","getElementLeft","elemLeft","offsetLeft","getContainerVisibleHeight","container","rect","getBoundingClientRect","windowHeight","innerHeight","documentElement","clientHeight","bottom","top","visibleTop","visibleBottom","min","getScrollTop","scrollTop","getWindowSize","width","body","clientWidth","height","getMaxZIndexInParents","element","currentElement","maxZIndex","Infinity","zIndex","zIndexNum","parseInt","parentElement","Wrapper","opacity","setOpacity","maxHeight","setMaxHeight","couterRef","useEffect","animation","childNodes","ref","transition","overflow","CloseIcon2","viewBox","fill","role","FilterIcon","SummarizeIcon","JoinDataIcon","GroupIcon","PermissionTableIcon","CustomColumnIcon","SortIcon","RowLimitIcon","LeftJoinIcon","InnerJoinIcon","UpArrowIcon","DownArrowIcon","CloseIcon","AddIcon","TableIcon","SearchIcon","NotSelectIcon","SelectIcon","CircleIcon","LetterAaIcon","CalendarIcon","WellIcon","ForeignKeyIcon","UpArrowIcon2","DownArrowIcon2","LeftArrowIcon","DataSourceIcon","Header","props","title","onClose","Tooltip","placement","onClick","SelectList","onChange","cx","active","icon","label","List","unionAll","RowLimit","store","selectOperator","readonly","currentTarget","getTextNodeAtPosition","root","treeWalker","createTreeWalker","NodeFilter","SHOW_TEXT","textContent","FILTER_REJECT","FILTER_ACCEPT","nextNode","position","getSelectionPosition","setSelectionRange","createTextRange","selectionStart","selectionEnd","selection","getSelection","range","getRangeAt","cloneRange","startContainer","startOffset","setStart","end","setEnd","setSelectionPosition","focus","collapse","moveEnd","moveStart","startPos","endPos","removeAllRanges","Range","addRange","getCaretPosition","saveSelection","t","TOKEN","Operator","Identifier","OPERATOR","Comma","OpenParenthesis","CloseParenthesis","Plus","Minus","Star","Slash","Equal","NotEqual","LessThan","GreaterThan","LessThanEqual","Not","And","Or","tokenize","source","isWhiteSpace","cp","isDigit","isAlpha","skipWhitespaces","charCodeAt","scanOperator","ch","op","error","scanNumericLiteral","dot","exp","sign","marker","_t","_","scanStringLiteral","quote","seq","terminated","_t2","scanBracketIdentifier","bracket","_t3","_t4","isIdentifierStart","isIdentifierChar","scanIdentifier","initial","toLowerCase","main","tokens","errors","token","message","pos","char","prev","_t5","_t6","_t7","OptionsTypeEnum","SelectPopupTypeEnum","MBQL_CLAUSES","displayName","args","sum","distinct","stddev","requiresFeature","avg","share","var","median","percentile","lower","upper","substring","multiple","trim","rtrim","ltrim","abs","floor","ceil","round","sqrt","power","contains","hasOptions","between","coalesce","case","and","or","not","tokenName","clause","Object","entries","undefined","Map","mbql","EXPRESSION_TO_MBQL_NAME","getMBQLName","expressionName","get","AGGREGATION_FUNCTIONS","Set","EXPRESSION_FUNCTIONS","EXPRESSION_OPERATORS","FILTER_OPERATORS","BOOLEAN_UNARY_OPERATORS","LOGICAL_AND_OPERATOR","LOGICAL_OR_OPERATOR","FUNCTIONS","mapTokenType","createSpans","isFunction","has","lastPos","spans","kind","text","tail","TokenizedExpression","React","Component","render","startRule","TokenizedInput","defaultProps","componentDidMount","ReactDOM","findDOMNode","componentDidUpdate","addEventListener","onSelectionChange","inputNode","restore","innerHTML","ReactDOMServer","renderToStaticMarkup","activeElement","componentWillUnmount","removeEventListener","setValue","onInput","onFocus","onBlur","onKeyDown","forwardedRef","contentEditable","spellCheck","WinResetEvent","eventStack","funcId","constructor","addEvent","context","delay","removeEvent","cb","winResetEvent","Portal","forwardRef","didUpdate","getContainer","containerRef","useImperativeHandle","initRef","parentNode","removeChild","createPortal","returnDocument","outSpacing","generateTrigger","PortalComponent","Trigger","resizeObserver","resetId","createRef","bindEvent","initResizeObserver","prevProps","disconnect","targetNode","ResizeObserver","entry","observe","that","ele","closePopup","closable","hideVisible","attachParent","mountNode","appendChild","getCurrentNodePos","h","offsetHeight","innerSpacing","createElement","pointerEvents","getComponent","posKey","overflowX","overflowY","backgroundColor","boxShadow","borderRadius","stopPropagation","onMouseDown","cloneElement","key","posY","realHeight","winH","containerH","downH","topHeight","cssText","portal","SelectColumn","originList","setOriginList","filterVal","setFilterVal","toLocaleLowerCase","isAllSelect","AllSelectElement","_Fragment","onSelect","originalData","mergedColumns","find","col","onChangeFieldAlias","Modal","confirm","Input","defaultValue","onOk","onCancel","autoFocus","placeholder","Button","shape","iconOnly","primary","ghost","size","IconMap","CHAR","VARCHAR","CLOB","DOUBLE","SMALLINT","BIGINT","INTEGER","TIMESTAMP","PK","FK","OPEN_GROUP","SelectJoinColumn","_value","theme","skyBlue","isGroup","onGroup","curTable","setCurTable","curColumn","setCurColumn","tableList","setTableList","open","searchText","tableAlias","newData","tableItem","isMultiple","isSummarize","shrink","newTables","RangePicker","DatePicker","NUMBER_LIST","STRING_LIST","DATE_LIST","SelectFilterColumn","isCustom","setCondition","valType","setValType","curVal","setVal","constantName","setConstantName","setFormula","table2Selected","disabled","getQuotesName","params","getText","等于","不等于","大于","小于","介于之间","大于或等于","小于或等于","为空","不为空","包含","不包含","早于","晚于","是空的","In","无需结果","generateQuotes","firstVal","secondVal","cond","addFilter","goPrevPage","getData","columnType","toUpperCase","conditions","includes","renderFilter","conditionText","display","flexDirection","newVal","showTime","format","moment","Dropdown","trigger","droplist","ChevronODown","options","Select","allowCreate","option","Option","closePopup2","selectConstant","onRepeat","nextPage","selectTable","purple","menu","changeFormula","changeParams","_formula","formulas","leftFormula","Function","getName","InputNumber","hideControl","quickEdit","setDefaultVal","notSelected","Repeat","_condition","greenGrass","FormulaList","tip","QuotesMap","localeMap","总行数","计数","总和","平均值","不重复值的总数","累积求和","累积行数","累积计数","标准差","最小值","最大值","总的数据行数","一个字段所有数值的总和","一个字段所有数值的平均值","一个字段所有互不重复的值的总数","一个字段所有数值的标准差","一个字段的最小值","一个字段的最大值","Special","SelectSummarize","handleSelect","availableData","JoinList","marginRight","cursor","inner","SelectJoin","SelectTable","setLoading","datasource","setList","getTables","PrevResult","SelectPermissionTable","IconSIzeEnum","IconTypeMap","DisplayOrder","OrderType","OrderNewType","metaIcon","handleClick","info","SMALL","small","large","LARGE","judgeSize","nextLen","isLast","findNextIcon","nextType","available","curLocation","nextLocation","unshift","joinIndex","customIndex","filterIndex","curNewLocation","sortList","NextDom","MetaIconDom","TableData","selected","subQuerySelected","selectColumns","onChangeTableAlias","showSubQuery","subToolbar","other","oldList","_toolbar","Modal2","openModal","transparentMask","Metabase","btnText","isEqual","close","switchSubQuery","RelatedWork","FlagLocation","ExpressionsEnum","JoinData","table1Selected","columnsSelected","aliasRegExp","lens","test","_table2","selectJoin","selectJoinColumn","getAttribute","TABLE_1","reduce","mo","selectMoreJoinColumn","_ind","table_type","LEFT","TABLE_2","_position","_val","onChangeType","onChangeString","operator","left_constant","right_constant","RIGHT","FfPlus","danger","FfLine","FunctionEnum","operatorList","otherList","customTypes","FIELD","INPUT","EXPRESSION","OTHER","getTemplate","temList","img","VisualBox","Styled","div","attrs","CaseEditor","caseList","setCaseList","setName","ind","setInd","filterCase","hasCase","usable","from","handleField","_caseList","handleConstant","handleExpression","SelectFilter","handleDel","addOperator","temItem","_onClose","_onOk","itemDom","fontSize","triggerProps","clickToClose","triggerElement","color","hover","onMouseEnter","onMouseLeave","virtualListProps","threshold","src","arrow","autoWidth","minWidth","marginLeft","CustomColumn","CustomEditor","itemId","Filter_TypeEnum","MetaSummarize_Enum","Filter","notExistsColumns","handleUpdate","NOT_EXISTS","showNotExists","handleAdd","_index","_type","_filter","notExistsToolbar","_tem","filterType","addSelectType","_e","isPermanent","GroupBy","notBySelected","_i","summarizeType","BY","SelectIndex","notGroupSelected","GROUP","Summarize","Sort","addSortColumn","selectedSort","aliasColumns","asc","handleSort","itemIndex","desc","delSortColumn","handleChange","inputValue","precision","PermissionTable","saveLoading","setSaveLoading","popupContent","popupContent2","onSave","intercept","Toast","warning","Union","metaType","hidden","modulesMap","Popup","SqlVisionBuilder","subShowSubquery","useData"],"mappings":"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","x_google_ignoreList":[10]}
1
+ {"version":3,"file":"index.js","sources":["../../src/hooks/use-provider.tsx","../../src/utils/helper.ts","../../src/store/enum.ts","../../src/utils/cookies.ts","../../src/locale/index.ts","../../src/store/helper.ts","../../src/utils.ts","../../src/hooks/use-state.ts","../../src/locale/en.ts","../../src/locale/zh.ts","../../node_modules/style-inject/dist/style-inject.es.js","../../src/common/Loading/index.tsx","../../src/utils/helper-dom.ts","../../src/components/modules/components/Wrapper.tsx","../../src/components/icons.tsx","../../src/components/modules/components/header.tsx","../../src/components/dialog/select-list/index.tsx","../../src/components/modules/union.tsx","../../src/utils/selection.ts","../../src/components/dialog/custom-column/expressions/tokenizer.ts","../../src/components/dialog/custom-column/expressions/suggest.ts","../../src/components/dialog/custom-column/config.ts","../../src/components/dialog/custom-column/tokenized-expression.tsx","../../src/components/dialog/custom-column/tokenizedI-input.tsx","../../src/utils/event.ts","../../src/common/Portal/index.tsx","../../src/components/popup.tsx","../../src/components/dialog/select-column/index.tsx","../../src/components/dialog/const.ts","../../src/components/dialog/select-join-column/index.tsx","../../src/components/dialog/select-filter/index.tsx","../../src/components/dialog/select-summarize/index.tsx","../../src/components/dialog/select-join/index.tsx","../../src/components/dialog/select-table/index.tsx","../../src/components/dialog/select-permission-table/index.tsx","../../src/components/modules/components/meta-icon.tsx","../../src/components/modules/table-data.tsx","../../src/components/modules/join-data.tsx","../../src/components/dialog/custom-editor/enum.ts","../../src/components/dialog/custom-editor/utils.ts","../../src/components/dialog/custom-editor/arrow.svg","../../src/components/dialog/custom-editor/index.tsx","../../src/components/modules/custom-column.tsx","../../src/store/types.ts","../../src/components/modules/arrow.svg","../../src/components/modules/filter.tsx","../../src/components/modules/summarize/group-by.tsx","../../src/components/modules/summarize/select-index.tsx","../../src/components/modules/summarize/index.tsx","../../src/components/modules/sort.tsx","../../src/components/modules/row-limit.tsx","../../src/components/modules/permission-table.tsx","../../src/components/modules/index.ts","../../src/components/metabase/index.tsx","../../src/index.tsx"],"sourcesContent":["import React, { createContext, useContext } from 'react';\n\n// 定义 Context 类型\ninterface ContextProps {\n store?: any;\n}\n\n// 创建 Context\nconst Context = createContext<ContextProps>({});\n\n// 定义 Provider Props 类型\ninterface ProviderProps {\n value: ContextProps; // 动态传入的 value\n children: React.ReactNode;\n}\n\n// 创建 Provider 组件\nexport const Provider = ({ value, children }: ProviderProps) => {\n return <Context.Provider value={value}>{children}</Context.Provider>;\n};\n\n// 自定义 Hook 来使用 Context\nexport const useStore: any = () => {\n return useContext(Context);\n};\n","// 节流\nexport const throttle = (fn: Function, wait: number = 200): Function => {\n if (typeof fn !== 'function') return () => void 0;\n let start = Date.now();\n let timer: number;\n return function () {\n let diff = wait - (Date.now() - start);\n clearTimeout(timer);\n\n // @ts-ignore\n let _self = this;\n\n if (diff > 0) {\n timer = window.setTimeout(fn.bind(_self), diff);\n } else {\n fn.apply(_self);\n start = Date.now();\n }\n };\n};\n\n// 防抖\nexport const debounce = (fn: Function, wait: number = 200) => {\n if (typeof fn !== 'function') return () => {};\n let timer: number;\n return function () {\n // @ts-ignore\n let _self = this;\n timer !== null && clearTimeout(timer);\n timer = window.setTimeout(fn.bind(_self), wait);\n };\n};\n\n// 获取屏幕信息\nexport type ScreenType = {\n width: number;\n height: number;\n};\nexport const getScreenInfo = (): ScreenType => {\n let winHeight = 0,\n winWidth = 0;\n if (window.innerHeight) {\n winHeight = window.innerHeight;\n winWidth = window.innerWidth;\n } else if (document.documentElement && document.documentElement.clientHeight) {\n winHeight = document.documentElement.clientHeight;\n winWidth = document.documentElement.clientWidth;\n }\n return {\n width: winWidth,\n height: winHeight,\n };\n};\n\nexport const fullScreen = () => {\n var element: any = document.documentElement;\n if (element.requestFullscreen) {\n element.requestFullscreen();\n } else if (element.msRequestFullscreen) {\n element.msRequestFullscreen();\n } else if (element.mozRequestFullScreen) {\n element.mozRequestFullScreen();\n } else if (element.webkitRequestFullscreen) {\n element.webkitRequestFullscreen();\n }\n};\n\n//退出全屏\nexport const exitFullscreen = () => {\n if (document.exitFullscreen) {\n document.exitFullscreen();\n // @ts-ignore\n } else if (document.msExitFullscreen) {\n // @ts-ignore\n document.msExitFullscreen();\n // @ts-ignore\n } else if (document.mozCancelFullScreen) {\n // @ts-ignore\n document.mozCancelFullScreen();\n // @ts-ignore\n } else if (document.webkitExitFullscreen) {\n // @ts-ignore\n document.webkitExitFullscreen();\n }\n};\n\nexport const getUrlParams = () => {\n let params: any = {};\n let url = location.href;\n let index = url.lastIndexOf('?');\n if (~index) {\n url\n .slice(index + 1)\n .split('&')\n .forEach((v) => {\n let item = v.split('=');\n params[item[0]] = item[1];\n });\n }\n return params;\n};\n\nexport const sleep = (wait: number = 0) => {\n return new Promise((resolve, reject) => {\n setTimeout(() => {\n resolve(true);\n }, wait);\n });\n};\n\nexport const flatArray = (arr: any[]): any[] => {\n return [].concat.apply([], arr);\n};\nexport const mobx2Object = (mobxObj: any, defaultType: any = {}) => {\n let data;\n try {\n data = JSON.parse(JSON.stringify(mobxObj));\n } catch (e) {\n data = defaultType;\n console.log(`⭐️ ~ mobx2Object error`, e);\n }\n return data;\n};\n\nexport const replaceTpl = (inputString: string, values: { [key: string]: any }): string => {\n return inputString.replace(/\\$\\{([^}]*)\\}/g, (match, variableName) => {\n return typeof values[variableName] !== 'undefined' ? String(values[variableName]) : match;\n });\n};\n\nconst str = () =>\n ('00000000000000000' + (Math.random() * 0xffffffffffffffff).toString(16)).slice(-16);\n\nexport const uuidv4 = (prefix = '') => {\n const a = str();\n const b = str();\n const uuid = [\n a.slice(0, 8),\n a.slice(8, 12),\n '4' + a.slice(13), // version 4\n 'a' + b.slice(1, 4), // variant\n b.slice(4),\n ].join('-');\n\n return prefix ? `${prefix}_${uuid}` : uuid;\n};\n","export enum SortEnum {\n desc = 'DESC',\n asc = 'ASC',\n}\n\nexport enum TypeEnum {\n data = 'data',\n joinData = 'joinData',\n permissionTable = 'permissionTable', // 权限表\n customColumn = 'customColumn',\n filter = 'filter',\n summarize = 'summarize',\n sort = 'sort',\n rowLimit = 'rowLimit',\n union = 'union', //分组\n}\n\nexport enum JoinEnum {\n left = 'LEFT JOIN',\n right = 'RIGHT JOIN',\n inner = 'INNER JOIN',\n}\n\nexport enum UnionEnum {\n union = 'UNION',\n unionAll = 'UNION ALL',\n}\n\nexport enum ColumnsPopupThemeEnum {\n skyBlue = 'skyBlue',\n greenGrass = 'greenGrass',\n purple = 'purple',\n}\n\nexport enum SpecialType {\n PK = 'pk',\n FK = 'fk',\n}\n\nexport enum SQL_COLUMN_TYPE {\n STRING = 'STRING',\n DATE = 'DATE',\n FLOAT = 'FLOAT',\n LONG = 'LONG',\n CURRENCY = 'CURRENCY',\n}\n\n// 之前的 SQL_COLUMN_TYPE\n// export enum SQL_COLUMN_TYPE {\n// BIGINT = 'BIGINT',\n// SMALLINT = 'SMALLINT',\n// DOUBLE = 'DOUBLE',\n// INTEGER = 'INTEGER',\n// CLOB = 'CLOB',\n// CHAR = 'CHAR',\n// VARCHAR = 'VARCHAR',\n// TIMESTAMP = 'TIMESTAMP',\n// }\n\nexport enum SQL_GROUP_TYPE {\n NUMBER = 'number',\n STRING = 'string',\n DATE = 'date',\n}\n\n// 字段数据类型\nexport enum DataTypeEnum {\n float = 'float', // 小数\n string = 'string', // 字符\n date = 'date', // 日期\n long = 'long', // 整数\n currency = 'currency', // 金额\n}\n\n// 字段控件类型\nexport enum EleComponentEnum {\n text = 'text', // 文本框\n select = 'select', // 下拉框\n}\n","//获取指定名称的cookie值\nexport function getCookie(name: string) {\n // (^| )name=([^;]*)(;|$),match[0]为与整个正则表达式匹配的字符串,match[i]为正则表达式捕获数组相匹配的数组;\n var arr = document.cookie.match(new RegExp('(^| )' + name + '=([^;]*)(;|$)'));\n if (arr != null) {\n console.log(arr);\n return arr[2];\n }\n return null;\n}\n","import { getCookie } from '../utils/cookies';\n\nconst locales: {\n [key: string]: any;\n} = {};\n\nconst activeLocale = getCookie('LOCALE') || 'zh';\n\nexport const isEn = activeLocale === 'en';\n\nexport const register = (name: string, data: any) => {\n if (name in locales) {\n console.warn(`[i18n] ${name} has been registered`);\n } else {\n locales[name] = data;\n }\n};\n\nexport const __ = (name: string) => {\n if (activeLocale in locales) {\n return locales[activeLocale][name] || '';\n } else {\n console.warn(`[i18n] locale not found`);\n return '';\n }\n};\n","import {\n MetaListType,\n TableColumnsMapType,\n initColumnsType,\n MetaData,\n MetaData_TableType,\n MetaJoin,\n MetaPermissionTable,\n MetaCustom,\n MetaData_ColumnsType,\n MetaFilter,\n MetaFilter_Item,\n MetaSummarize,\n MetaSummarize_Group,\n MetaSort,\n MetaSort_Item,\n MetaLimit,\n ParamsType,\n ParamsStruct,\n LooseObject,\n} from './types';\n// import { SummarizeAlias } from './index';\nimport { TypeEnum, SQL_GROUP_TYPE, SQL_COLUMN_TYPE } from './enum';\n\nexport const SummarizeAlias = 'source';\n\nconst NUMBER_GROUP: SQL_COLUMN_TYPE[] = [\n SQL_COLUMN_TYPE.FLOAT,\n SQL_COLUMN_TYPE.LONG,\n SQL_COLUMN_TYPE.CURRENCY,\n];\nconst STRING_GROUP: SQL_COLUMN_TYPE[] = [SQL_COLUMN_TYPE.STRING];\nconst DATE_GROUP: SQL_COLUMN_TYPE[] = [SQL_COLUMN_TYPE.DATE];\n\n// 过滤器对象转sql语句\nexport const filterToSql = (record: MetaFilter_Item): string => {\n let { alias, name, condition, val, groupSql, database_type } = record;\n let [condition_1, condition_2] = val;\n let columnName: string;\n if (alias === SummarizeAlias) {\n columnName = `${alias}.${groupSql?.split(' AS ')?.[1] || ''}`;\n } else {\n columnName = `${alias}.${name}`;\n }\n let sql: string = '';\n\n let group: SQL_GROUP_TYPE = SQL_GROUP_TYPE.STRING;\n if (~NUMBER_GROUP.indexOf(database_type as SQL_COLUMN_TYPE)) {\n group = SQL_GROUP_TYPE.NUMBER;\n }\n if (~DATE_GROUP.indexOf(database_type as SQL_COLUMN_TYPE)) {\n group = SQL_GROUP_TYPE.DATE;\n }\n\n if (group === SQL_GROUP_TYPE.STRING) {\n switch (condition) {\n // string\n case '是':\n sql = `${columnName} = '${condition_1}'`;\n break;\n case '不是':\n sql = `${columnName} <> '${condition_1}'`;\n break;\n case '包含':\n sql = `(${columnName} like '%${condition_1}%')`;\n break;\n case '不包含':\n sql = `(NOT ${columnName} like '%${condition_1}%')`;\n break;\n case '为空':\n sql = `${columnName} IS NULL`;\n break;\n case '不为空':\n sql = `${columnName} IS NOT NULL`;\n break;\n case '以...开始':\n sql = `(${columnName} like '${condition_1}%')`;\n break;\n case '以...结束':\n sql = `(${columnName} like '%${condition_1}')`;\n break;\n }\n }\n if (group === SQL_GROUP_TYPE.NUMBER) {\n switch (condition) {\n // number\n case '等于':\n sql = `${columnName} = ${condition_1}`;\n break;\n case '不等于':\n sql = `${columnName} <> ${condition_1}`;\n break;\n case '大于':\n sql = `${columnName} > ${condition_1}`;\n break;\n case '小于':\n sql = `${columnName} < ${condition_1}`;\n break;\n case '介于之间':\n sql = `${columnName} BETWEEN ${condition_1} AND ${condition_2}`;\n break;\n case '大于或等于':\n sql = `${columnName} >= ${condition_1}`;\n break;\n case '小于或等于':\n sql = `${columnName} <= ${condition_1}`;\n break;\n case '为空':\n sql = `${columnName} IS NULL`;\n break;\n case '不为空':\n sql = `${columnName} IS NOT NULL`;\n break;\n }\n }\n if (group === SQL_GROUP_TYPE.DATE) {\n function transformDate(dataStr: string) {\n return dataStr.replace(/-/g, '').replace(/:/g, '').replace(' ', '') + '00';\n }\n let c_1 = transformDate(condition_1 || '');\n let c_2 = transformDate(condition_2 || '');\n switch (condition) {\n // date\n case '早于':\n sql = `${columnName} < '${c_1}'`;\n break;\n case '晚于':\n sql = `${columnName} >= '${c_1}'`;\n break;\n case '介于之间':\n sql = `(${columnName} >= '${c_1}' AND ${columnName} < '${c_2}')`;\n break;\n case '是空的':\n sql = `${columnName} IS NULL`;\n break;\n case '不是空的':\n sql = `${columnName} IS NOT NULL`;\n break;\n }\n }\n\n return sql;\n};\n\n// 聚合转sql语句\nexport const summarizeToSql = (\n arr: MetaSummarize_Group[],\n record: MetaSummarize_Group,\n): { sql: string; fieldAlias: string } => {\n let { condition, alias, name, realName = '' } = record;\n let index = arr.indexOf(record);\n let prevList = arr.slice(0, index);\n\n let sql: string = '';\n let as = '';\n let field = `${alias}.${realName || name}`;\n switch (condition) {\n case '总行数':\n case '累积行数':\n sql = 'count(*)';\n as = 'count';\n break;\n case '不重复值的总数':\n sql = `count(distinct ${field})`;\n as = 'count';\n break;\n case '累积求和':\n case '总和':\n sql = `sum(${field})`;\n as = 'sum';\n break;\n case '平均值':\n sql = `avg(${field})`;\n as = 'avg';\n break;\n case '标准差':\n sql = `stddev_pop(${field})`;\n as = 'stddev';\n break;\n case '最小值':\n sql = `min(${field})`;\n as = 'min';\n break;\n case '最大值':\n sql = `max(${field})`;\n as = 'max';\n break;\n }\n let count = 0;\n prevList.forEach((v: MetaSummarize_Group) => {\n if (\n ~['总行数', '累积行数', '不重复值的总数'].indexOf(condition) &&\n ~['总行数', '累积行数', '不重复值的总数'].indexOf(v.condition)\n ) {\n count++;\n }\n if (~['累积求和', '总和'].indexOf(condition) && ~['累积求和', '总和'].indexOf(v.condition)) {\n count++;\n }\n if (condition === '平均值' && v.condition === '平均值') {\n count++;\n }\n if (condition === '标准差' && v.condition === '标准差') {\n count++;\n }\n if (condition === '最小值' && v.condition === '最小值') {\n count++;\n }\n if (condition === '最大值' && v.condition === '最大值') {\n count++;\n }\n });\n as = as + (count ? '_' + (count + 1) : '');\n\n return {\n sql: sql,\n // + ' AS ' + as,\n fieldAlias: as,\n };\n};\n\nconst _flatArr = (data: LooseObject, arr: LooseObject[]) => {\n let { children, ...res } = data;\n arr.push(res);\n if (children) {\n _flatArr(children, arr);\n }\n};\nconst _recursionArr = (arr: LooseObject[]): LooseObject => {\n let obj = { ...arr[0] };\n if (arr.length > 1) {\n obj.children = _recursionArr(arr.slice(1));\n }\n return obj;\n};\n\n// 反转顺序 - (将原本嵌套的顺序完全反转 最内层变成最外层)别问为什么 问就是接口需要\nconst reverseData = (data: LooseObject): LooseObject => {\n let arr: LooseObject[] = [];\n _flatArr(data, arr);\n return _recursionArr(arr.reverse());\n};\n\n// 分层 - (将原本平铺的格式转成 嵌套的格式)\nconst layeredData = (list: MetaListType[]): LooseObject => {\n let res: LooseObject = {};\n\n for (var i = 0; i < list.length; i++) {\n let meta = list[i];\n // @ts-ignore\n\n if (meta.type === TypeEnum.joinData) {\n if (res[meta.type]) {\n (res[meta.type] as MetaJoin[]).push(meta);\n } else {\n res[meta.type] = [meta];\n }\n } else {\n // @ts-ignore\n res[meta.type] = meta;\n }\n\n if (meta.type === TypeEnum.summarize) {\n let nextMeta = list[i + 1];\n let nextNextMeta = list[i + 2];\n let nextNextNextMeta = list[i + 3];\n\n // 将sort 和 rowLimit 归到上一层 (虽然他们两在 summarize 后面)\n // 处理完 sort 和 rowLimit 之后 如果数组后面还有元素则进入下一层循环\n if (nextMeta) {\n if (nextMeta.type === TypeEnum.rowLimit) {\n res[nextMeta.type] = nextMeta;\n if (nextNextMeta) {\n res.children = layeredData(list.slice(i + 2));\n }\n } else if (nextMeta.type === TypeEnum.sort) {\n res[nextMeta.type] = nextMeta;\n if (nextNextMeta) {\n if (nextNextMeta.type === TypeEnum.rowLimit) {\n res[nextNextMeta.type] = nextNextMeta;\n if (nextNextNextMeta) {\n res.children = layeredData(list.slice(i + 3));\n }\n } else {\n res.children = layeredData(list.slice(i + 2));\n }\n }\n } else {\n res.children = layeredData(list.slice(i + 1));\n }\n }\n break;\n }\n }\n return res;\n};\n\n// 处理数据格式 - (这里才是真正处理成后端需要的格式 前面两步都是准备工作)\nconst handleNesting = (data: LooseObject): ParamsStruct => {\n let hasInnerSql = Boolean(data.children);\n let obj: ParamsStruct = {\n hasInnerSql,\n innerSqlStruct: hasInnerSql ? handleNesting(data.children as LooseObject) : null,\n };\n\n let tableData: MetaData | undefined = data[TypeEnum.data];\n let joinData: MetaJoin[] = data[TypeEnum.joinData] || [];\n let permissionTable: MetaPermissionTable | undefined = data[TypeEnum.permissionTable];\n let customColumn: MetaCustom | undefined = data[TypeEnum.customColumn];\n let filterData: MetaFilter | undefined = data[TypeEnum.filter];\n let summarize: MetaSummarize | undefined = data[TypeEnum.summarize];\n let sortData: MetaSort | undefined = data[TypeEnum.sort];\n let rowLimit: MetaLimit | undefined = data[TypeEnum.rowLimit];\n if (tableData) {\n obj.alias = tableData.table.alias;\n obj.tableName = tableData.table.name;\n obj.datasourceId = tableData.table.datasourceId;\n\n if (!summarize || (!summarize.group.length && !summarize.by.length)) {\n obj.queryColumns = tableData.columns\n .filter((v) => v.select)\n .map((v) => `${tableData?.table?.alias}.${v.name}`);\n }\n } else {\n if (!summarize || (!summarize.group.length && !summarize.by.length)) {\n obj.alias = SummarizeAlias;\n }\n }\n if (joinData.length) {\n obj.joinTables = joinData\n .filter((v) => v.table2.name)\n .map((v) => {\n let joinCondition: string;\n if (v.table1.alias === SummarizeAlias) {\n joinCondition = `ON ${SummarizeAlias}.${v.table1.groupSql} = ${v.table2.alias}.${v.table2.column}`;\n } else {\n joinCondition = `ON ${v.table1.alias}.${v.table1.column} = ${v.table2.alias}.${v.table2.column}`;\n }\n return {\n alias: v.table2.alias,\n tableName: v.table2.name,\n datasourceId: v.table2.datasourceId || '',\n joinCondition,\n joinType: v.joinType,\n queryColumns: v.columns.filter((o) => o.select).map((o) => `${v.table2.alias}.${o.name}`),\n };\n });\n }\n if (customColumn && customColumn.customColumn.length) {\n obj.customColumns = customColumn.customColumn.map((v) => {\n return {\n alias: v.name,\n // formula: v.formula.replace(/\\[.*?\\]/g, (column: string): string => {\n // let str = column.substr(1, column.length - 2);\n // if (~str.indexOf('->')) {\n // let _str = str.replace(/ /g, '').split('->');\n // return `${_str[0]}.${_str[1]}`;\n // }\n // return str;\n // }),\n };\n });\n }\n if (filterData && filterData.filter.length) {\n obj.filters = 'WHERE ' + filterData.filter.map((v) => filterToSql(v)).join(' AND ');\n if (permissionTable) {\n obj.filters += ` @{_DATA_I_PRIV_COND:${permissionTable.table.alias}}`;\n }\n }\n\n if (summarize && (summarize.group.length || summarize.by.length)) {\n obj.groupBy = {\n calcColumns: [],\n groupColumns: [],\n };\n let queryColumns: string[] = [];\n if (summarize.group.length) {\n obj.groupBy.calcColumns = summarize.group.map((v) => {\n return v.sql;\n });\n queryColumns = [...obj.groupBy.calcColumns];\n }\n if (summarize.by.length) {\n obj.groupBy.groupColumns = summarize.by.map((v) => {\n queryColumns.push(`${v.sql}`);\n return `${v.alias}.${v.realName || v.name}`;\n });\n }\n\n obj.queryColumns = queryColumns;\n\n if (!tableData) {\n obj.alias = summarize.alias;\n }\n }\n if (sortData && sortData.sort.length) {\n obj.orderInfos = `ORDER BY ${sortData.sort\n .map((v: MetaSort_Item) => `${v.sql} ${v.sort}`)\n .join(', ')}`;\n }\n if (rowLimit) {\n obj.limit = Number(rowLimit.limit);\n }\n if (permissionTable) {\n obj.privilegeTable = `@{_DATA_I_PRIV_COND:${permissionTable.table.alias}}`;\n }\n return obj;\n};\n\nexport const handleSqlStruct = (list: MetaListType[]) =>\n handleNesting(reverseData(layeredData(list)));\n\n// 压缩结构\nexport const compressionStructure = (data: MetaListType[]): string => {\n let _data = JSON.parse(JSON.stringify(data)).map((v: MetaListType) => {\n let { metaKey, ...record } = v;\n if (record.type === TypeEnum.data || record.type === TypeEnum.joinData) {\n return {\n ...record,\n columns: record.columns.map((o) => {\n return {\n d: o.database_type,\n n: o.name,\n s: o.select,\n c: o.name_zh,\n };\n }),\n };\n } else {\n return record;\n }\n });\n return JSON.stringify(_data);\n};\n\nexport const restoreStructure = (data: string): MetaListType[] => {\n try {\n let _data = JSON.parse(data) as any[];\n let list = _data.map((v, i: number) => {\n let metaKey = i + 1;\n if (v.type === TypeEnum.data || v.type === TypeEnum.joinData) {\n return {\n metaKey,\n ...v,\n columns: v.columns.map((o: any) => {\n return {\n database_type: o.d,\n name: o.n,\n select: o.s,\n special_type: '',\n name_zh: o.c,\n };\n }),\n };\n } else {\n return {\n metaKey,\n ...v,\n };\n }\n });\n return list as MetaListType[];\n } catch (e) {\n return [];\n }\n};\n","import { __ } from './locale';\nimport { TypeEnum, SQL_COLUMN_TYPE } from './store/enum';\nimport {\n MetaListType,\n MetaSummarize,\n MetaJoin,\n MetaData,\n MetaFilter,\n MetaCustom,\n MetaSummarize_Group,\n MetaSummarize_By,\n MetaData_TableType,\n MetaData_ColumnsType,\n MetaSummarize_Enum,\n} from './store/types';\nimport { SummarizeAlias, summarizeToSql } from './store/helper';\n\nimport { uuidv4 } from './utils/helper';\nimport { DataType, ColumnType } from './components/dialog/select-join-column';\nimport cloneDeep from 'lodash/cloneDeep';\n\nexport const findIndex = <T>(arr: T[], item: T): number => {\n return arr.indexOf(item);\n};\n\ninterface HelperResultType {\n ExistAboveGroupBy: boolean; // 当前元素上面是否存在 聚合\n ExistBelowGroupBy: boolean; // 当前元素下面是否存在 聚合\n prevTypes: TypeEnum[]; // 当前元素和上面最近的聚合 中间的types列表\n nextTypes: TypeEnum[]; // 当前元素和下面最近的聚合 中间的types列表\n prevList: MetaListType[]; // 同 prevTypes 但是放的是 meta[]\n nextList: MetaListType[]; // 同 nextTypes 但是放的是 meta[]\n prevGroupBy: MetaSummarize | undefined; // 上一个最近 聚合数据\n nextGroupBy: MetaSummarize | undefined; // 下一个最近 聚合数据\n}\n\nexport const getHelper = (list: MetaListType[], item: MetaListType): HelperResultType => {\n let types: TypeEnum[] = list.map((v) => v.type);\n let curIndex = list.indexOf(item);\n let leftTypes = types.slice(0, curIndex); // 当前元素上面的所有元素 (不包含自己)\n let rightTypes = types.slice(curIndex + 1); // 当前元素下面的所有元素 (不包含自己)\n let leftList = list.slice(0, curIndex);\n let rightList = list.slice(curIndex + 1);\n\n let ExistAboveGroupBy: boolean = false;\n let ExistBelowGroupBy: boolean = false;\n let prevTypes: TypeEnum[] = [];\n let nextTypes: TypeEnum[] = [];\n let prevList: MetaListType[] = [];\n let nextList: MetaListType[] = [];\n let prevGroupBy: MetaSummarize | undefined;\n let nextGroupBy: MetaSummarize | undefined;\n\n if (~leftTypes.indexOf(TypeEnum.summarize)) {\n ExistAboveGroupBy = true;\n let i = leftTypes.lastIndexOf(TypeEnum.summarize);\n prevTypes = leftTypes.slice(i + 1);\n prevList = leftList.slice(i + 1);\n prevGroupBy = list[i] as MetaSummarize;\n }\n\n if (~rightTypes.indexOf(TypeEnum.summarize)) {\n ExistBelowGroupBy = true;\n let i = rightTypes.indexOf(TypeEnum.summarize);\n nextTypes = rightTypes.slice(0, i);\n nextList = rightList.slice(0, i);\n nextGroupBy = list[curIndex + i + 1] as MetaSummarize;\n }\n return {\n ExistAboveGroupBy,\n ExistBelowGroupBy,\n prevTypes,\n nextTypes,\n prevList,\n nextList,\n prevGroupBy,\n nextGroupBy,\n };\n};\n\n// 获取子查询的字段\nexport const getSubColumns = (metaList: any): DataType[] => {\n let obj: MetaCustom = {\n metaKey: -1,\n type: TypeEnum.customColumn,\n customColumn: [\n {\n name: '', // 用户起的别名\n // formula: '', // 公式}];\n },\n ],\n };\n let { ExistAboveGroupBy, prevList, prevGroupBy } = getHelper([...metaList, obj], obj);\n\n let data: DataType[];\n if (ExistAboveGroupBy) {\n let _data: DataType = {\n table: (prevGroupBy as MetaSummarize).alias,\n tableId: (prevGroupBy as MetaSummarize).alias,\n tableUuid: uuidv4('table'),\n alias: (prevGroupBy as MetaSummarize).alias,\n columns: [],\n };\n if (prevGroupBy?.group?.length) {\n _data.columns = _data.columns.concat(\n prevGroupBy.group.map((v: MetaSummarize_Group) => {\n return {\n name_zh: v.quotes,\n ...v,\n name: v.fieldAlias || v.name,\n fieldAlias: '',\n // fieldUuid: uuidv4('field'),\n realName: v.sql?.split(' AS ')?.[1] || '',\n // name_zh: '',\n database_type: v?.database_type || SQL_COLUMN_TYPE.FLOAT,\n special_type: '',\n select: true,\n };\n }),\n );\n }\n if (prevGroupBy?.by?.length) {\n _data.columns = _data.columns.concat(\n prevGroupBy.by.map((v: MetaSummarize_By) => {\n return {\n name_zh: v.quotes,\n ...v,\n name: v.fieldAlias || v.name,\n fieldAlias: '',\n // fieldUuid: uuidv4('field'),\n realName: v.sql?.split(' AS ')?.[1] || '',\n // name_zh: '',\n database_type: v?.database_type || SQL_COLUMN_TYPE.FLOAT,\n special_type: '',\n select: true,\n };\n }),\n );\n }\n data = [_data];\n\n let joinData = prevList\n .filter((v: MetaListType) => v.type === TypeEnum.joinData)\n // @ts-ignore\n .filter((v: MetaJoin) => v && v.table2.name);\n if (joinData.length) {\n data = data.concat(\n // @ts-ignore\n joinData.map((v: MetaJoin) => {\n const columns = v.columns.map((column) => {\n return {\n ...column,\n name: column.fieldAlias || column.name,\n fieldAlias: '',\n // fieldUuid: uuidv4('field'),\n };\n });\n return { alias: v.table2.alias, table: v.table2.name, columns: columns };\n }),\n );\n }\n } else {\n // @ts-ignore\n data = metaList\n .slice()\n .map((v: MetaListType) => {\n if (v.type === TypeEnum.data) {\n const columns = v.columns\n .map((column) => {\n return {\n ...column,\n name: column.fieldAlias || column.name,\n fieldAlias: '',\n // fieldUuid: uuidv4('field'),\n };\n })\n .filter((item) => item.select);\n return { alias: v.table.alias, table: v.table.name, columns: columns };\n } else if (v.type === TypeEnum.joinData) {\n const columns = v.columns\n .map((column) => {\n return {\n ...column,\n name: column.fieldAlias || column.name,\n fieldAlias: '',\n // fieldUuid: uuidv4('field'),\n };\n })\n .filter((item) => item.select);\n return {\n alias: (v as MetaJoin).table2.alias,\n table: (v as MetaJoin).table2.name,\n columns: columns,\n };\n } else if (v.type === TypeEnum.customColumn) {\n const { customColumn } = v;\n const columns = customColumn.map((v) => {\n return {\n database_type: SQL_COLUMN_TYPE.STRING,\n name_zh: v.name,\n name: v.name,\n select: true,\n fieldAlias: '',\n // fieldUuid: uuidv4('field'),\n };\n });\n return {\n columns: columns,\n alias: '',\n table: __('SqlQueryBuilder.customColumn'),\n };\n } else {\n return { table: null };\n }\n })\n .filter((v: any) => v.table);\n }\n return data;\n};\n\n// data = 'data',\n// joinData = 'joinData',\n// permissionTable = 'permissionTable', // 权限表\n// customColumn = 'customColumn',\n// filter = 'filter',\n// summarize = 'summarize',\n// sort = 'sort',\n// rowLimit = 'rowLimit',\nexport const changeTableAlias = (\n list: MetaListType[] | [],\n curObj: MetaData_TableType,\n): MetaListType[] => {\n const { tableUuid, alias } = cloneDeep(curObj);\n\n const newList = cloneDeep(list);\n return (\n newList?.map((v: MetaListType) => {\n if (v.type === TypeEnum.data) {\n if (v.table.tableUuid === tableUuid) {\n v.table.alias = alias;\n }\n }\n if (v.type === TypeEnum.joinData) {\n if (v.table1.tableUuid === tableUuid) {\n v.table1.alias = alias;\n }\n if (v.table2.tableUuid === tableUuid) {\n v.table2.alias = alias;\n }\n }\n if (v.type === TypeEnum.customColumn) {\n v.customColumn.map((item) => {\n item.formulaList?.map((formula) => {\n if (formula.expression && formula.expression.tableUuid === tableUuid) {\n formula.expression.alias = alias;\n }\n });\n });\n }\n if (v.type === TypeEnum.permissionTable) {\n if (v.table.tableUuid === tableUuid) {\n v.table.alias = alias;\n }\n }\n if (v.type === TypeEnum.rowLimit) {\n }\n if (v.type === TypeEnum.sort) {\n v.sort.map((sort) => {\n if (sort.alias === SummarizeAlias) {\n } else {\n if (sort.tableUuid === tableUuid) {\n sort.alias = alias;\n sort.sql = `${alias}.${sort.name}`;\n }\n }\n });\n }\n if (v.type === TypeEnum.summarize) {\n v.group.map((group) => {\n if (group.tableUuid === tableUuid) {\n group.alias = alias;\n group.sql = summarizeToSql(v.group, group).sql;\n }\n });\n v.by.map((by) => {\n if (by.tableUuid === tableUuid) {\n by.alias = alias;\n by.sql = `${by.alias}.${by.realName || by.name}`;\n }\n });\n }\n\n if (v.type === TypeEnum.filter) {\n v.filter.map((item) => {\n if (item.tableUuid === tableUuid) {\n // if (item.alias === SummarizeAlias) {\n // //有groupBy 特殊处理\n // const { prevGroupBy } = getHelper(list, v);\n\n // let groupBy: any =\n // prevGroupBy?.by.filter((v) => v.fieldUuid === item.fieldUuid)[0] ||\n // prevGroupBy?.group.filter((v) => v.fieldUuid === item.fieldUuid)[0] ||\n // null;\n // groupBy.alias = alias;\n\n // const sql = groupBy.sql;\n\n // if (groupBy) {\n // item.sql = sql;\n // item.groupSql = sql;\n // }\n // }\n\n item.alias = alias;\n item.sql = '';\n }\n if (item.table2 && item.table2.tableUuid === tableUuid) {\n // if (item.table2.alias === SummarizeAlias) {\n // //有groupBy 特殊处理\n // const { prevGroupBy } = getHelper(list, v);\n\n // let groupBy: any =\n // prevGroupBy?.by.filter((v) => v.fieldUuid === item.table2?.fieldUuid)[0] ||\n // prevGroupBy?.group.filter((v) => v.fieldUuid === item.table2?.fieldUuid)[0] ||\n // null;\n // groupBy.alias = alias;\n\n // const sql = groupBy.sql;\n\n // if (groupBy) {\n // item.table2.sql = sql;\n // item.table2.groupSql = sql;\n // }\n // }\n\n item.table2.alias = alias;\n // item.table2.sql = '';\n }\n // if (item.subquery) {\n // item.subquery = changeTableAlias(item.subquery || [], curObj);\n // }\n });\n }\n // if ((v as MetaData | MetaJoin).subquery) {\n // (v as MetaData | MetaJoin).subquery = changeTableAlias(\n // (v as MetaData | MetaJoin).subquery || [],\n // curObj,\n // );\n // }\n return v;\n }) || []\n );\n};\nexport const changeFieldAlias = (\n list: MetaListType[],\n curObj: MetaData_ColumnsType,\n): MetaListType[] => {\n const { fieldUuid, fieldAlias } = cloneDeep(curObj);\n\n const newList = cloneDeep(list);\n return (\n newList?.map((v: MetaListType) => {\n if (v.type === TypeEnum.data) {\n }\n if (v.type === TypeEnum.joinData) {\n if (v.table1.fieldUuid === fieldUuid) {\n v.table1.fieldAlias = fieldAlias;\n }\n if (v.table2.fieldUuid === fieldUuid) {\n v.table2.fieldAlias = fieldAlias;\n }\n v.expressions.map((column) => {\n if (column.left_fieldUuid === fieldUuid) {\n column.left_fieldAlias = fieldAlias;\n }\n if (column.right_fieldUuid === fieldUuid) {\n column.right_fieldAlias = fieldAlias;\n }\n });\n // if (v.table1.tableUuid === tableUuid) {\n // v.table1.alias = alias;\n // }\n }\n if (v.type === TypeEnum.customColumn) {\n v.customColumn.map((item) => {\n item.formulaList?.map((formula) => {\n if (formula.expression && formula.expression.fieldUuid === fieldUuid) {\n formula.expression.fieldAlias = fieldAlias;\n }\n });\n });\n }\n // if (v.type === TypeEnum.permissionTable) {\n // if (v.table.tableUuid === tableUuid) {\n // v.table.alias = alias;\n // }\n // }\n if (v.type === TypeEnum.rowLimit) {\n }\n // if (v.type === TypeEnum.sort) {\n // v.sort.map((sort) => {\n // if (sort.alias === SummarizeAlias) {\n // } else {\n // if (sort.tableUuid === tableUuid) {\n // sort.alias = alias;\n // sort.sql = `${alias}.${sort.name}`;\n // }\n // }\n // });\n // }\n if (v.type === TypeEnum.summarize) {\n v.group.map((group) => {\n if (group.fieldUuid === fieldUuid) {\n group.fieldAlias = fieldAlias;\n group.sql = summarizeToSql(v.group, group).sql;\n }\n });\n v.by.map((by) => {\n if (by.fieldUuid === fieldUuid) {\n by.fieldAlias = fieldAlias;\n by.sql = `${by.alias}.${by.realName || by.name}`;\n }\n });\n }\n\n if (v.type === TypeEnum.filter) {\n v.filter.map((item) => {\n if (item.fieldUuid === fieldUuid) {\n item.fieldAlias = fieldAlias;\n\n if (item.alias === SummarizeAlias) {\n //有groupBy 特殊处理\n const { prevGroupBy } = getHelper(list, v);\n\n let groupBy: any =\n prevGroupBy?.by.filter((v) => v.fieldUuid === item.fieldUuid)[0] ||\n prevGroupBy?.group.filter((v) => v.fieldUuid === item.fieldUuid)[0] ||\n null;\n\n if (groupBy) {\n groupBy.fieldAlias = fieldAlias;\n const sql = groupBy.sql;\n item.sql = sql;\n item.groupSql = sql;\n }\n }\n }\n if (item.table2 && item.table2.fieldUuid === fieldUuid) {\n item.table2.fieldAlias = fieldAlias;\n\n // if (item.table2.alias === SummarizeAlias) {\n // //有groupBy 特殊处理\n // const { prevGroupBy } = getHelper(list, v);\n\n // let groupBy: any =\n // prevGroupBy?.by.filter((v) => v.fieldUuid === item.table2?.fieldUuid)[0] ||\n // prevGroupBy?.group.filter((v) => v.fieldUuid === item.table2?.fieldUuid)[0] ||\n // null;\n // groupBy.fieldAlias = fieldAlias;\n\n // const sql = groupBy.sql;\n\n // if (groupBy) {\n // item.table2.sql = sql;\n // item.table2.groupSql = sql;\n // }\n // }\n }\n if (item.notExists) {\n item.notExists = changeFieldAlias(item.notExists || [], curObj);\n }\n });\n }\n return { ...v };\n }) || []\n );\n};\n\nexport function splitByUnion(data: any) {\n if (!data) return [];\n const original = cloneDeep(data);\n\n const result = [];\n let i = 0;\n\n while (i < original.length) {\n const item = original[i];\n\n if (item.type === 'group') {\n // group.list 中每一项原样推入结果\n for (const subItem of item.list) {\n result.push(subItem);\n }\n i++;\n } else if (item.type === 'union') {\n const { list, ...otehr } = item;\n // 查找下一个 group,并将其 list 转成 subquery\n const nextItem = original[i + 1];\n if (nextItem && nextItem.type === 'group') {\n result.push({\n ...otehr,\n subquery: nextItem.list.map((subItem: MetaListType) => subItem),\n });\n i += 2;\n } else {\n result.push({\n ...otehr,\n subquery: [],\n });\n i++;\n }\n }\n }\n\n return result;\n}\n\nexport function reassembleByUnion(target: any[] = []): any[] {\n if (!target) return [];\n const result = [];\n let i = 0;\n const len = target.length;\n\n // 如果没有任何 union,直接放入一个 group.list\n const hasUnion = target.some((item) => item.type === 'union');\n if (!hasUnion) {\n return [\n {\n type: 'group',\n name: 'default',\n list: [...target],\n },\n ];\n }\n\n // 否则正常处理\n while (i < len) {\n const item = target[i];\n\n if (item.type !== 'union') {\n // 收集连续非 union 的 item,统一放入一个 group.list\n const groupList = [];\n\n while (i < len && target[i].type !== 'union') {\n groupList.push(target[i]);\n i++;\n }\n\n result.push({\n type: 'group',\n name: 'default',\n list: groupList,\n });\n } else {\n // 处理 union\n result.push({\n type: 'union',\n name: 'union',\n union: item.union ?? 'UNION',\n list: [],\n });\n\n const subquery = item.subquery || [];\n const convertedSubquery = reassembleByUnion(subquery);\n result.push(...convertedSubquery);\n\n i++; // 跳过当前 union\n }\n }\n\n return result;\n}\n// export const buildSqlQuery = (data?: MetaListType[]): string => {\n// if (!data || data.length === 0) return '';\n\n// let sqlClauses: string[] = ['not exitis ( '];\n\n// data.forEach((item) => {\n// if (item.type === TypeEnum.data) {\n// const meta = item as MetaData;\n// const tableName = meta.table.name;\n// const alias = meta.table.alias ? `AS ${meta.table.alias}` : '';\n// const dataSource = meta.table.datasourceName;\n\n// sqlClauses.push(`SELECT 1 FROM ${dataSource}.${tableName} ${alias}`);\n// }\n\n// if (item.type === TypeEnum.joinData) {\n// const meta = item as MetaJoin;\n// const table1 = meta.table1.alias ? meta.table1.alias : meta.table1.name;\n// const table2 = `${meta.table2.datasourceName}.${meta.table2.name}`;\n// const alias2 = meta.table2.alias ? meta.table2.alias : '';\n// joins.push(`LEFT JOIN ${table2} ${alias2} ON ${table1}.${meta.columns[0]?.name} = ${alias2}.${meta.columns[0]?.name}`);\n// }\n\n// if (item.type === TypeEnum.filter) {\n// const filterStrings = (item as MetaFilter).filter.map((f) => f.quotes).filter(Boolean); // 排除空条件\n\n// if (filterStrings.length > 0) {\n// sqlClauses.push(`WHERE ${filterStrings.join(' AND ')}`);\n// }\n// }\n// });\n\n// // 简单拼接 SQL 片段\n// return sqlClauses.join(' ') + ' )' + ';';\n// };\nexport const buildSqlQuery = (data?: MetaListType[]): string => {\n if (!data || data.length === 0) return '';\n\n let sqlClauses: string[] = ['NOT EXISTS ('];\n let tables: string[] = [];\n let joins: string[] = [];\n let wheres: string[] = [];\n\n data.forEach((item) => {\n if (item.type === TypeEnum.data) {\n const meta = item as MetaData;\n const tableName = `${meta.table.name}`;\n const alias = meta.table.alias ? ` AS ${meta.table.alias}` : '';\n tables.push(`${tableName}${alias}`);\n }\n\n if (item.type === TypeEnum.joinData) {\n const meta = item as MetaJoin;\n const table2Name = `${meta.table2.name}`;\n const alias2 = meta.table2.alias ? ` AS ${meta.table2.alias}` : '';\n\n const table2 = `${meta.table2.alias || meta.table2.name}`;\n const table1 = `${meta.table1.alias || meta.table1.name}`;\n joins.push(\n `LEFT JOIN ${table2Name}${alias2} ON ${table1}.${meta.table1.fieldAlias} = ${table2}.${meta.table2.fieldAlias}`,\n );\n if (Array.isArray(item.expressions) && item.expressions.length > 0) {\n item.expressions.forEach((expression) => {\n let left = '',\n right = '';\n if (expression.left_type === 'field') {\n left = `${table1}.${expression.left_fieldAlias}`;\n } else {\n left = expression.left_string;\n }\n if (expression.right_type === 'field') {\n right = `${table2}.${expression.right_fieldAlias}`;\n } else {\n right = expression.right_string;\n }\n joins.push(`AND ${left} = ${right}`);\n });\n }\n }\n\n if (item.type === TypeEnum.filter) {\n const filterStrings = (item as MetaFilter).filter.map((f) => f.quotes).filter(Boolean);\n if (filterStrings.length > 0) {\n wheres.push(...filterStrings);\n }\n }\n });\n\n // 构建子查询\n if (tables.length > 0) {\n sqlClauses.push(`SELECT 1 FROM ${tables[0]}`);\n if (joins.length > 0) {\n sqlClauses.push(joins.join(' '));\n }\n if (wheres.length > 0) {\n sqlClauses.push(`WHERE ${wheres.join(' AND ')}`);\n }\n }\n\n sqlClauses.push(')');\n\n return sqlClauses.join(' ') + ';';\n};\n","import { useEffect, useState, useRef, useMemo, useCallback } from 'react';\nimport { uuidv4 } from '../utils/helper';\nimport { TypeEnum, JoinEnum, UnionEnum } from '../store/enum';\nimport { ToolbarType, MetaJoin_TalbeType } from '../store/types';\nimport type {\n MetaListType,\n TableColumnsMapType,\n initColumnsType,\n MetaData,\n TableType,\n MetaData_TableType,\n MetaJoin,\n MetaData_ColumnsType,\n MetaSummarize,\n PopupData,\n} from '../store/types';\nimport type { DatasourceType, MetaListProps, OptionItem } from '../types';\nimport { getSubColumns, getHelper } from '../utils';\nimport cloneDeep from 'lodash/cloneDeep';\n\nlet metaKey: number = 1;\n\nexport interface TableFieldsType {\n dataId: string; // id\n [name: string]: any;\n}\nexport const SummarizeAlias = 'source';\n\nconst useStore = (): any => {\n const defaultToolbar: ToolbarType[] = [\n 'filter',\n 'summarize',\n 'joinData',\n 'customColumn',\n 'sort',\n 'rowLimit',\n ];\n const defaultMetaList: MetaListType[] = [\n {\n metaKey,\n type: TypeEnum.data,\n table: {\n name: '',\n id: '',\n alias: '',\n datasourceId: '',\n datasourceName: '',\n tableUuid: uuidv4('table'),\n },\n columns: [],\n },\n ];\n const defaultMeta: MetaListProps[] = [\n {\n type: 'group',\n name: 'default',\n list: defaultMetaList,\n },\n ];\n const defaultOperator: MetaListProps = {\n type: 'union',\n name: 'union',\n union: UnionEnum.union,\n list: [],\n };\n const [showFields, setShowFields] = useState<boolean>(true); //显示字段\n const [showSubquery, setShowSubquery] = useState<boolean>(false); //子查询\n const [_showSubquery, _setShowSubquery] = useState<boolean>(false); //子查询(内部)\n const [toolbar, setToolbar] = useState<ToolbarType[]>(defaultToolbar); //工具列表\n const [fieldNameTpl, setFieldNameTpl] = useState<string>('${name}'); //显示字段\n const [tableNameTpl, setTableNameTpl] = useState<string>('${name}'); //显示字段\n const [sourceList, setSourceList] = useState<DatasourceType[]>([]); //数据源列表\n const [constantList, setConstantList] = useState<OptionItem[]>([]); //常量列表\n const [ignoreGroupByType, setIgnoreGroupByType] = useState<boolean>(false); // 忽略groupBy类型\n\n const [_cacheSource2TableMap, set_cacheSource2TableMap] = useState<{\n [datasourceId: string]: TableType[];\n }>({}); //数据源id 对应数据集列表\n const [_cacheColumnsMap, set_cacheColumnsMap] = useState<TableColumnsMapType>({}); //数据源id 对应数据集列表\n const [metaList, _setMeta] = useState<MetaListProps[]>(defaultMeta); //数据源id 对应数据集列表\n const [popupData, setPopup] = useState<PopupData>({\n visible: false,\n node: null,\n content: null,\n }); //弹窗\n const [popupData2, setPopup2] = useState<PopupData>({\n visible: false,\n node: null,\n content: null,\n }); //弹窗\n const [popupClosable, setClosable] = useState<boolean>(true); //是否可关闭 如果弹框里面再弹框 则不可关闭\n const [popupClosable2, setClosable2] = useState<boolean>(true); //是否可关闭 如果弹框里面再弹框 则不可关闭\n\n // 外层ref\n const popupContainer: any = useRef();\n // const [fetchDatasetFn, setFetchDatasetFn] = useState<(id: string) => Promise<any>>(\n // async () => {},\n // ); //fn\n const fetchDatasetFn: any = useRef();\n\n const setFetchDatasetFn = (fn: (id: string) => Promise<any>) => {\n fetchDatasetFn.current = fn;\n };\n const fetchColumnsFn: any = useRef();\n const setFetchColumnsFn = (\n fn: (table: { name: string; [key: string]: any }, id: string) => Promise<any>,\n ) => {\n fetchColumnsFn.current = fn;\n };\n const preProps: any = useRef();\n const setProps = (val: any) => {\n preProps.current = val;\n };\n\n // 是否显示主表后面的字段按钮 (如果下面 没有聚合,或者选了聚合但是聚合里面没有选值的时候显示 主表字段按钮)\n const showMainColumn = useMemo(() => {\n return metaList?.map((item, groupIndex) => {\n // 过滤出所有汇总类型的项\n const summarizeItems = item.list.filter(\n (v) => v.type === TypeEnum.summarize,\n ) as MetaSummarize[];\n\n // 如果没有汇总项,默认显示主列\n if (summarizeItems.length === 0) {\n return true;\n }\n\n // 如果只有一个汇总项,并且 group 和 by 都为空,则也显示主列\n const onlyItem = summarizeItems[0];\n const hasGroupOrBy =\n (Array.isArray(onlyItem.group) && onlyItem.group.length > 0) ||\n (Array.isArray(onlyItem.by) && onlyItem.by.length > 0);\n\n return !hasGroupOrBy;\n });\n }, [metaList]);\n // const showMainColumn = useMemo(() => {\n // let summarizeList = metaList.filter((v) => v.type === TypeEnum.summarize);\n // if (\n // !summarizeList.length ||\n // (summarizeList.length === 1 &&\n // !(summarizeList[0] as MetaSummarize).group.length &&\n // !(summarizeList[0] as MetaSummarize).by.length)\n // ) {\n // return true;\n // }\n // return false;\n // }, [metaList]);\n\n const showToolbar = (name: ToolbarType) => {\n return !!~toolbar.indexOf(name);\n };\n\n const fetchDataset = async (datasourceId: string): Promise<any> => {\n let tables = getDataset(datasourceId);\n if (tables.length) return tables;\n\n let _tables = await fetchDatasetFn.current(datasourceId);\n setDataset(datasourceId, _tables);\n return _tables;\n };\n // 根据数据源id查询集合列表\n // fetchDataset():\n // 查询表字段\n const fetchColumns = async (\n table: MetaJoin_TalbeType | MetaData_TableType,\n datasourceId: string,\n callback: (record: MetaData_ColumnsType[]) => void,\n ): Promise<any> => {\n let {\n alias = '',\n datasourceName,\n datasourceId: did,\n // @ts-ignore\n column,\n // @ts-ignore\n groupSql,\n ...extra\n } = table;\n\n let tableName = table.name;\n\n let columns: initColumnsType[] = getColumns(tableName);\n if (!columns.length) {\n columns = await fetchColumnsFn.current(extra, datasourceId);\n setColumns(tableName, columns);\n }\n const _columns = columns?.map((v) => {\n return { ...v, fieldUuid: v.fieldAlias || uuidv4('field') };\n });\n typeof callback === 'function' && callback(_columns);\n };\n\n const setMeta = (curData: MetaListType[], groupInd: number) => {\n let newMeta: MetaListProps[] = metaList.slice();\n newMeta[groupInd].list = curData;\n _setMeta(newMeta);\n };\n // 回显\n\n // 设置column\n const setQuotes = (newMeta: any) => {\n newMeta.table1 = {\n ...newMeta.table1,\n fieldAlias: newMeta.table1.fieldAlias || newMeta.table1.column,\n fieldUuid: newMeta.table1.fieldUuid || uuidv4('field'),\n quotes: newMeta.table1.quotes || newMeta.table1.column,\n tableUuid: newMeta.table1.tableUuid || uuidv4('table'),\n };\n newMeta.table2 = {\n ...newMeta.table2,\n fieldAlias: newMeta.table2.fieldAlias || newMeta.table2.column,\n fieldUuid: newMeta.table2.fieldUuid || uuidv4('field'),\n quotes: newMeta.table2.quotes || newMeta.table2.column,\n tableUuid: newMeta.table2.tableUuid || uuidv4('table'),\n };\n newMeta.expressions = newMeta.expressions?.map((v: any) => {\n return {\n ...v,\n left_fieldAlias: v.left_fieldAlias || v.left_column,\n left_fieldUuid: v.left_fieldUuid || uuidv4('field'),\n left_quotes: v.left_quotes || v.left_column,\n right_fieldAlias: v.right_fieldAlias || v.right_column,\n right_fieldUuid: v.right_fieldUuid || uuidv4('field'),\n right_quotes: v.right_quotes || v.right_column,\n };\n });\n return newMeta;\n };\n const setPreData = (data: MetaListProps[]) => {\n if (data.length) {\n let _metaList = data?.map((item, groupIndex) => {\n let newList = item.list?.map((v: any, i) => {\n let newMeta: MetaListType[] = item.list;\n if (v.table) {\n v.table.tableUuid = v.table.tableUuid || uuidv4('table');\n }\n if (v.type === TypeEnum.joinData) {\n newMeta[i] = setQuotes(newMeta[i]);\n }\n // 设置右侧column\n if (v.table2?.datasourceId && v.columns.length < 1) {\n fetchColumns(\n (newMeta[i] as MetaJoin).table2,\n (newMeta[i] as MetaJoin).table2.datasourceId,\n (columns: MetaData_ColumnsType[] = []) => {\n if (v.isSubquery) {\n let newColumns: any = [];\n const items = getSubColumns(v.subquery);\n newColumns = items?.flatMap((item) => item.columns);\n (newMeta[i] as MetaJoin).columns = newColumns || [];\n } else {\n (newMeta[i] as MetaJoin).columns = columns || [];\n }\n\n setMeta(newMeta, groupIndex);\n },\n );\n return { ...v };\n }\n // 设置column\n if (v.table?.datasourceId && v.columns.length < 1) {\n fetchColumns(\n (newMeta[i] as MetaData).table,\n (newMeta[i] as MetaData).table.datasourceId,\n (columns: MetaData_ColumnsType[] = []) => {\n if (v.isSubquery) {\n let newColumns: any = [];\n const items = getSubColumns(v.subquery);\n newColumns = items.flatMap((item) => item.columns);\n (newMeta[i] as MetaJoin).columns = newColumns || [];\n } else {\n (newMeta[i] as MetaData).columns = columns || [];\n }\n // if (v.type === TypeEnum.joinData) {\n // newMeta[i] = setQuotes(newMeta[i]);\n // }\n\n setMeta(newMeta, groupIndex);\n },\n );\n return { ...v };\n }\n return { ...v };\n });\n return {\n name: item.name || 'default',\n list: newList.length < 1 ? defaultMetaList : newList,\n type: item.type || 'group',\n union: item.union,\n };\n });\n\n const validMetaKeys = _metaList\n .flatMap((group) => group.list)\n .map((v) => Number(v.metaKey))\n .filter((num) => !isNaN(num));\n\n metaKey = validMetaKeys.length > 0 ? Math.max(...validMetaKeys) : 0;\n _setMeta(_metaList);\n } else {\n _setMeta(defaultMeta);\n }\n };\n\n const addMeta = (type: string, index: number, groupIndex: number) => {\n let newMeta: MetaListType[] = metaList[groupIndex].list.slice();\n let item: MetaListType;\n let mainTable: MetaData = newMeta[0] as MetaData;\n metaKey += 1;\n\n if (type === TypeEnum.joinData) {\n let table1 = {\n id: '',\n name: '',\n alias: '',\n tableUuid: '',\n datasourceId: '',\n datasourceName: '',\n fieldAlias: '',\n fieldUuid: '',\n };\n if (index === 1) {\n table1 = {\n ...mainTable.table,\n name: mainTable.table.name,\n alias: mainTable.table.alias,\n datasourceId: mainTable.table.datasourceId,\n datasourceName: mainTable.table.datasourceName,\n fieldAlias: '',\n fieldUuid: '',\n };\n }\n item = {\n metaKey,\n type: TypeEnum.joinData,\n joinType: JoinEnum.left,\n table1,\n table2: {\n name: '',\n id: '',\n alias: '',\n tableUuid: '',\n datasourceId: '',\n datasourceName: '',\n fieldAlias: '',\n fieldUuid: '',\n },\n columns: [],\n expressions: [],\n };\n }\n\n if (type === TypeEnum.customColumn) {\n item = { metaKey, type: TypeEnum.customColumn, customColumn: [] };\n }\n\n if (type === TypeEnum.filter) {\n item = { metaKey, type: TypeEnum.filter, filter: [] };\n }\n\n if (type === TypeEnum.summarize) {\n item = {\n metaKey,\n type: TypeEnum.summarize,\n alias: SummarizeAlias,\n group: [],\n by: [],\n tableUuid: '',\n };\n }\n\n if (type === TypeEnum.sort) {\n item = { metaKey, type: TypeEnum.sort, sort: [] };\n }\n\n if (type === TypeEnum.rowLimit) {\n item = { metaKey, type: TypeEnum.rowLimit, limit: '' };\n }\n\n if (type === TypeEnum.permissionTable) {\n item = {\n metaKey,\n type: TypeEnum.permissionTable,\n table: {\n name: '',\n id: '',\n alias: '',\n tableUuid: '',\n datasourceId: '',\n datasourceName: '',\n },\n };\n }\n if (type === TypeEnum.union) {\n // 添加分组\n let newMetaList: MetaListProps[] = metaList.slice();\n newMetaList.splice(groupIndex + 1, 0, defaultOperator, ...defaultMeta);\n _setMeta(newMetaList);\n return;\n }\n\n // @ts-ignore\n newMeta.splice(index, 0, item);\n setMeta(newMeta, groupIndex);\n };\n\n const delMeta = (meta: any, groupIndex: number): void => {\n if (meta.type === 'group') {\n let newMeta = metaList.slice();\n // 删除分组\n newMeta.splice(groupIndex, 1);\n // 删除分组后面一个组\n if (newMeta[groupIndex]) {\n newMeta.splice(groupIndex, 1);\n }\n _setMeta(newMeta);\n return;\n }\n // TIPS 自定义列删除了后面都得删除 暂时不删除 因为过滤器和组合包括自定义列都没用到自定义列\n let index = metaList[groupIndex].list.indexOf(meta);\n let newMeta = metaList[groupIndex].list.slice();\n\n if (meta.type === TypeEnum.joinData) {\n if ((meta as MetaJoin).table2.name) {\n let _metaList = newMeta.filter((v: MetaListType, i: number) => i < index);\n setMeta(_metaList, groupIndex);\n\n return void 0;\n }\n }\n if (meta.type === TypeEnum.summarize) {\n if ((meta as MetaSummarize).by.length || (meta as MetaSummarize).group.length) {\n let _metaList = newMeta.filter((v: MetaListType, i: number) => i < index);\n setMeta(_metaList, groupIndex);\n return void 0;\n }\n }\n if (meta.type === 'union') {\n // 删除分组,连带后面一个组也要删除\n let newMeta: MetaListProps[] = metaList.slice();\n newMeta.splice(groupIndex, 2);\n _setMeta(newMeta);\n return;\n }\n\n let _metaList = newMeta.filter((v) => v !== meta);\n setMeta(_metaList, groupIndex);\n };\n\n const setColumns = (tableId: string, columns: initColumnsType[]) => {\n const _columns = columns?.map((v) => {\n return {\n ...v,\n fieldUuid: v.fieldUuid || uuidv4('field'),\n };\n });\n const map = { ..._cacheColumnsMap };\n map[tableId] = _columns;\n\n set_cacheColumnsMap(map);\n };\n\n const getColumns = (tableId: string) => {\n return _cacheColumnsMap[tableId] || [];\n };\n\n const setDataset = (datasourceId: string, tables: TableType[]) => {\n const map = { ..._cacheSource2TableMap };\n map[datasourceId] = tables;\n set_cacheSource2TableMap(map);\n };\n\n const getDataset = (datasourceId: string) => {\n return _cacheSource2TableMap[datasourceId] || [];\n };\n\n const reset = () => {\n // setSourceList([]);\n _setMeta(defaultMeta);\n // setToolbar(defaultToolbar);\n set_cacheSource2TableMap({});\n set_cacheColumnsMap({});\n };\n return {\n showFields,\n setShowFields,\n toolbar,\n setToolbar,\n fieldNameTpl,\n setFieldNameTpl,\n tableNameTpl,\n setTableNameTpl,\n sourceList,\n setSourceList,\n _cacheSource2TableMap,\n set_cacheSource2TableMap,\n _cacheColumnsMap,\n set_cacheColumnsMap,\n metaList,\n setMeta,\n _setMeta,\n popupData,\n setPopup,\n popupData2,\n setPopup2,\n popupClosable,\n setClosable,\n popupClosable2,\n setClosable2,\n fetchDatasetFn: fetchDatasetFn.current,\n setFetchDatasetFn,\n fetchColumnsFn: fetchColumnsFn.current,\n setFetchColumnsFn,\n showMainColumn,\n showToolbar,\n fetchDataset,\n fetchColumns,\n setPreData,\n addMeta,\n delMeta,\n setColumns,\n getColumns,\n setDataset,\n getDataset,\n reset,\n setProps,\n preProps: preProps.current,\n showSubquery,\n setShowSubquery,\n _showSubquery,\n _setShowSubquery,\n constantList,\n setConstantList,\n popupContainer,\n ignoreGroupByType,\n setIgnoreGroupByType,\n };\n};\nexport default useStore;\n","import { register } from './index';\n\nexport default register('en', {\n 'data.pleaseSelectDataTable': 'please select data table',\n 'data.calculatingNow': 'calculating now...',\n loading: 'loading',\n 'data.search': 'search...',\n 'data.del': 'delete',\n 'data.saveFailed': 'save failed',\n 'data.savedSuccessfully': 'saved successfully',\n 'data.deletedSuccessfully': 'deleted successfully',\n 'SqlQueryBuilder.data': 'Data',\n 'SqlQueryBuilder.union': 'Merge Result Set',\n 'SqlQueryBuilder.joinData': 'Join Data',\n 'SqlQueryBuilder.permissionTable': 'Permission Table',\n 'SqlQueryBuilder.filter': 'Filter',\n 'SqlQueryBuilder.summarize': 'Summarize',\n 'SqlQueryBuilder.sort': 'Sort',\n 'SqlQueryBuilder.rowLimit': 'Row Limit',\n 'SqlQueryBuilder.columns': 'columns',\n 'SqlQueryBuilder.tipsLimit': 'Tips Limit',\n 'SqlQueryBuilder.customColumn': 'Custom Column',\n 'SqlQueryBuilder.by': 'by',\n 'SqlQueryBuilder.basicMetrics': 'basicMetrics',\n 'SqlQueryBuilder.countOfRows': 'countOfRows',\n 'SqlQueryBuilder.sumOf': 'sumOf',\n 'SqlQueryBuilder.averageOf': 'averageOf',\n 'SqlQueryBuilder.numberOfDistinctValuesOf': 'numberOfDistinctValuesOf',\n 'SqlQueryBuilder.cumulativeSumOf': 'cumulativeSumOf',\n 'SqlQueryBuilder.cumulativeCountOfRows': 'cumulativeCountOfRows',\n 'SqlQueryBuilder.standardDeviationOf': 'standardDeviationOf',\n 'SqlQueryBuilder.minimumOf': 'minimumOf',\n 'SqlQueryBuilder.maximumOf': 'maximumOf',\n 'SqlQueryBuilder.customExpression': 'customExpression',\n 'SqlQueryBuilder.pickTable': 'Select data table...',\n 'SqlQueryBuilder.pickConstant': 'Select constant...',\n 'SqlQueryBuilder.input': 'Input',\n 'SqlQueryBuilder.switchSubQuery': 'Open subquery',\n 'SqlQueryBuilder.setSubQuery': 'Set Subquery...',\n 'SqlQueryBuilder.subquery': 'Subquery',\n 'SqlQueryBuilder.confirm': 'Confirm',\n 'SqlQueryBuilder.add': 'Add',\n 'SqlQueryBuilder.del': 'Delete',\n 'SqlQueryBuilder.switch': 'Switch input type',\n 'SqlQueryBuilder.pleaseEnter': 'please enter',\n 'SqlQueryBuilder.pickPermissionTable': 'Select permission table...',\n 'SqlQueryBuilder.visualize': 'visualize',\n 'SqlQueryBuilder.selectColumnAll': 'select all',\n 'SqlQueryBuilder.alias': 'alias',\n 'SqlQueryBuilder.aliasCannotEmpty': 'Alias cannot be empty',\n 'customColumn.operator': 'operator',\n 'customColumn.field': 'field',\n 'customColumn.constant': 'constant',\n 'customColumn.str': 'string',\n 'customColumn.other': 'other',\n 'customColumn.update': 'update',\n 'customColumn.complete': 'complete',\n 'customColumn.fieldFormula': 'field formula',\n 'customColumn.giveItAName': 'give it a name',\n 'customColumn.cancel': 'cancel',\n 'customColumn.somethingAwesomeToDocument': 'something awesome to document',\n 'customColumn.expression': 'expression',\n 'customColumn.selectField': 'select columns',\n 'customColumn.selectOperator': 'select operator',\n 'customColumn.selectExpression': 'select expression',\n 'customColumn.selectOtherSyntax': 'select other syntax',\n 'customColumn.selectCustomInput': 'select custom input',\n 'filter.addFilter': 'add filter',\n 'filter.confirm': 'Confirm',\n 'filter.pleaseEnter': 'please enter',\n 'filter.enterANumber': 'enter a number',\n 'filter.minute': 'minute',\n 'filter.hour': 'hour',\n 'filter.day': 'day',\n 'filter.week': 'week',\n 'filter.month': 'month',\n 'filter.year': 'year',\n 'filter.equal': 'equal',\n 'filter.notEqual': 'not equal',\n 'filter.greaterThan': 'greater than',\n 'filter.lessThan': 'less than',\n 'filter.inBetween': 'in between',\n 'filter.greaterThanOrEqualTo': 'greater than or equal to',\n 'filter.lessThanOrEqualTo': 'less than or equal to',\n 'filter.empty': 'empty',\n 'filter.notEmpty': 'not empty',\n 'filter.is': 'is',\n 'filter.isNo': 'is no',\n 'filter.contain': 'contain',\n 'filter.notInclude': 'not include',\n 'filter.startWith': 'start with',\n 'filter.within': 'IN',\n 'filter.withnotin': 'NOT IN',\n 'filter.notresults': 'not results',\n 'filter.endWith': 'end with',\n 'filter.earlierThan': 'earlier than',\n 'filter.laterThan': 'later than',\n 'filter.isEmpty': 'is empty',\n 'filter.addFiltersToNarrowDownYourAnswers': 'add filters to narrow down your answers',\n 'joinData.automaticGrouping': 'automatic grouping',\n 'joinData.byTheHour': '[[timestamp]]by the hour',\n 'joinData.search': 'search...',\n 'summarize.basicIndicators': 'basic indicators',\n 'summarize.selectTheColumnsForGrouping': 'select columns for grouping',\n 'summarize.selectTheMetricsYouWantToView': 'select the metrics you want to view',\n 'summarize.totalNumberOfRows': 'total number of rows',\n 'summarize.count': 'count',\n 'summarize.sum': 'sum',\n 'summarize.sumOf': 'sum, of',\n 'summarize.average': 'average',\n 'summarize.onAverageOf': 'on average, of',\n 'summarize.totalNumberOfUniqueValues': 'total number of unique values',\n 'summarize.non-repeatingValueOf': 'non-repeating value, of',\n 'summarize.cumulativeSummation': 'cumulative summation',\n 'summarize.cumulativeSumOf': 'cumulative sum, of',\n 'summarize.cumulativeNumberOfRows': 'cumulative number of rows',\n 'summarize.cumulativeCount': 'cumulative count',\n 'summarize.standardDeviation': 'standard deviation',\n 'summarize.standardDeviationOf': 'standard deviation, of',\n 'summarize.minimumCalue': 'minimum value',\n 'summarize.theSmallestYes': 'the smallest, yes',\n 'summarize.maximumCalue': 'maximum value',\n 'summarize.biggestYes': 'biggest, yes',\n 'summarize.totalNumberOfRowsOfData': 'total number of rows of data',\n 'summarize.theSumOfAllValuesInAField': 'the sum of all values in a field',\n 'summarize.theAverageOfAllValuesInAfield': 'the average of all values in a field',\n 'summarize.theTotalNumberOfUniqueValuesInAfield': 'the total number of unique values in a field',\n 'summarize.theSumOfAllTheValuesInAcolumnForExample':\n 'the sum of all the values in a column. For example, the total income of x over a period of time',\n 'summarize.additiveStatisticsOfTheNumberOfRows':\n 'additive statistics of the number of rows. For example; total sales over a period of x',\n 'summarize.theStandardDeviationOfAllValuesInAfield':\n 'the standard deviation of all values in a field',\n 'summarize.theMinimumValueOfAfield': 'the minimum value of a field',\n 'summarize.TheMaximumValueOfAfield': 'the maximum value of a field',\n\n 'rowLimit.pleaseEnter': 'please enter',\n 'result.TheSQLStatementForThisQuery': 'The SQL statement for this query',\n 'result.closePanel': 'close panel',\n 'result.maximizePanelSize': 'maximize panel size',\n 'result.restorePanelSize': 'restore panel size',\n 'result.showSql': 'show sql',\n 'result.save': 'save',\n 'result.executeSql': 'execute sql',\n 'result.reExecute': 're-execute',\n 'result.inProgress': 'in progress',\n 'result.yourResultsWillAppearHere': 'your results will appear here',\n 'result.queryResult': 'query result',\n 'result.fieldOperations': 'field operations',\n});\n","import { register } from './index';\n\nexport default register('zh', {\n 'data.pleaseSelectDataTable': '请选择数据表',\n 'data.calculatingNow': '正在计算...',\n loading: '加载中',\n 'data.search': '查找...',\n 'data.del': '删除',\n 'data.saveFailed': '保存失败',\n 'data.savedSuccessfully': '保存成功',\n 'data.deletedSuccessfully': '删除成功',\n 'SqlQueryBuilder.data': '数据',\n 'SqlQueryBuilder.union': '合并结果集',\n 'SqlQueryBuilder.joinData': '关联',\n 'SqlQueryBuilder.permissionTable': '权限表',\n 'SqlQueryBuilder.filter': '过滤器',\n 'SqlQueryBuilder.summarize': '聚合',\n 'SqlQueryBuilder.sort': '排序',\n 'SqlQueryBuilder.rowLimit': '行限制',\n 'SqlQueryBuilder.columns': '字段',\n 'SqlQueryBuilder.tipsLimit': '输入限制条件',\n 'SqlQueryBuilder.customColumn': '自定义列',\n 'SqlQueryBuilder.by': '通过',\n 'SqlQueryBuilder.basicMetrics': '基础指标',\n 'SqlQueryBuilder.countOfRows': '总行数',\n 'SqlQueryBuilder.sumOf': '总和',\n 'SqlQueryBuilder.averageOf': '平均值',\n 'SqlQueryBuilder.numberOfDistinctValuesOf': '不重复值的总数',\n 'SqlQueryBuilder.cumulativeSumOf': '累计求和',\n 'SqlQueryBuilder.cumulativeCountOfRows': '累计行数',\n 'SqlQueryBuilder.standardDeviationOf': '标准差',\n 'SqlQueryBuilder.minimumOf': '最小值',\n 'SqlQueryBuilder.maximumOf': '最大值',\n 'SqlQueryBuilder.customExpression': '自定义表达方式',\n 'SqlQueryBuilder.pickTable': '选择数据表...',\n 'SqlQueryBuilder.pickConstant': '选择常量...',\n 'SqlQueryBuilder.input': '输入框',\n 'SqlQueryBuilder.switchSubQuery': '切换子查询',\n 'SqlQueryBuilder.setSubQuery': '设置子查询...',\n 'SqlQueryBuilder.subquery': '子查询',\n 'SqlQueryBuilder.confirm': '确认',\n 'SqlQueryBuilder.add': '添加',\n 'SqlQueryBuilder.del': '删除',\n 'SqlQueryBuilder.switch': '切换输入类型',\n 'SqlQueryBuilder.pleaseEnter': '请输入',\n 'SqlQueryBuilder.pickPermissionTable': '选择权限数据表...',\n 'SqlQueryBuilder.visualize': '可视化',\n 'SqlQueryBuilder.selectColumnAll': '全选',\n 'SqlQueryBuilder.alias': '别名',\n 'SqlQueryBuilder.aliasCannotEmpty': '别名不能为空',\n 'customColumn.operator': '运算符',\n 'customColumn.field': '字段',\n 'customColumn.constant': '常量',\n 'customColumn.str': '字符串',\n 'customColumn.other': '其他',\n 'customColumn.update': '更新',\n 'customColumn.complete': '完成',\n 'customColumn.fieldFormula': '字段公式',\n 'customColumn.giveItAName': '给它一个名字吧',\n 'customColumn.cancel': '取消',\n 'customColumn.somethingAwesomeToDocument': '一些超棒的、值得记录的东西',\n 'customColumn.expression': '表达式',\n 'customColumn.selectField': '选择列',\n 'customColumn.selectOperator': '选择运算符',\n 'customColumn.selectExpression': '选择表达式',\n 'customColumn.selectOtherSyntax': '选择其他语法',\n 'customColumn.selectCustomInput': '选择自定义输入框',\n 'filter.addFilter': '添加过滤器',\n 'filter.confirm': '确认',\n 'filter.pleaseEnter': '请输入',\n 'filter.enterANumber': '输入一个数字',\n 'filter.minute': '分',\n 'filter.hour': '时',\n 'filter.day': '天',\n 'filter.week': '周',\n 'filter.month': '月',\n 'filter.year': '年',\n 'filter.equal': '等于',\n 'filter.notEqual': '不等于',\n 'filter.greaterThan': '大于',\n 'filter.lessThan': '小于',\n 'filter.inBetween': '介于之间',\n 'filter.greaterThanOrEqualTo': '大于或等于',\n 'filter.lessThanOrEqualTo': '小于或等于',\n 'filter.empty': '为空',\n 'filter.notEmpty': '不为空',\n 'filter.is': '是',\n 'filter.isNo': '不是',\n 'filter.contain': '包含',\n 'filter.notInclude': '不包含',\n 'filter.startWith': '以...开始',\n 'filter.within': 'IN',\n 'filter.withnotin': 'NOT IN',\n 'filter.notresults': '无需结果',\n\n 'filter.endWith': '以...结束',\n 'filter.earlierThan': '早于',\n 'filter.laterThan': '晚于',\n 'filter.isEmpty': '是空的',\n 'filter.addFiltersToNarrowDownYourAnswers': '添加筛选条件来缩小你的答案范围',\n 'joinData.automaticGrouping': '自动分组',\n 'joinData.byTheHour': '[[时间戳]]按小时计数',\n 'joinData.search': '查找...',\n 'summarize.basicIndicators': '基础指标',\n 'summarize.selectTheColumnsForGrouping': '选择分组的列',\n 'summarize.selectTheMetricsYouWantToView': '选择你要查看的指标',\n 'summarize.totalNumberOfRows': '总行数',\n 'summarize.count': '计数',\n 'summarize.sum': '总和',\n 'summarize.sumOf': '求和 的',\n 'summarize.average': '平均值',\n 'summarize.onAverageOf': '平均 的',\n 'summarize.totalNumberOfUniqueValues': '不重复值的总数',\n 'summarize.non-repeatingValueOf': '不重复的值 的',\n 'summarize.cumulativeSummation': '累积求和',\n 'summarize.cumulativeSumOf': '累积和 的',\n 'summarize.cumulativeNumberOfRows': '累积行数',\n 'summarize.cumulativeCount': '累积计数',\n 'summarize.standardDeviation': '标准差',\n 'summarize.standardDeviationOf': '标准偏差 的',\n 'summarize.minimumCalue': '最小值',\n 'summarize.theSmallestYes': '最小 的',\n 'summarize.maximumCalue': '最大值',\n 'summarize.biggestYes': '最大 的',\n 'summarize.totalNumberOfRowsOfData': '总的数据行数',\n 'summarize.theSumOfAllValuesInAField': '一个字段所有数值的总和',\n 'summarize.theAverageOfAllValuesInAfield': '一个字段所有数值的平均值',\n 'summarize.theTotalNumberOfUniqueValuesInAfield': '一个字段所有互不重复的值的总数',\n 'summarize.theSumOfAllTheValuesInAcolumnForExample':\n '一个列的所有值的加和。如:x一段时间内的总收入',\n 'summarize.additiveStatisticsOfTheNumberOfRows': '行数的加法统计。如;x段时间内的销售总额',\n 'summarize.theStandardDeviationOfAllValuesInAfield': '一个字段所有数值的标准差',\n 'summarize.theMinimumValueOfAfield': '一个字段的最小值',\n 'summarize.TheMaximumValueOfAfield': '一个字段的最大值',\n 'rowLimit.pleaseEnter': '请输入',\n 'result.TheSQLStatementForThisQuery': '这个查询的SQL语句',\n 'result.closePanel': '关闭面板',\n 'result.maximizePanelSize': '最大化面板大小',\n 'result.restorePanelSize': '恢复面板大小',\n 'result.showSql': '显示sql',\n 'result.save': '保存',\n 'result.executeSql': '执行sql',\n 'result.reExecute': '重新执行',\n 'result.inProgress': '执行中',\n 'result.yourResultsWillAppearHere': '您的结果将会在这出现',\n 'result.queryResult': '查询结果',\n 'result.fieldOperations': '字段操作',\n});\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import './index.less';\nimport React from 'react';\n\nconst Loading = ({ show, msg = '正在计算...' }: { show: boolean; msg?: string }) => {\n if (!show) return null;\n return (\n <div className='loading-container'>\n <div>\n <div className='LoadingSpinner'></div>\n </div>\n <h2 className='loading-message'>{msg}</h2>\n </div>\n );\n};\n\nexport default Loading;\n","// 获取元素translate x y值\nexport const getComputedTranslate = (obj: any): { x: number; y: number } => {\n if (!window.getComputedStyle) return { x: 0, y: 0 };\n var style: any = getComputedStyle(obj),\n transform = style.transform || style.webkitTransform || style.mozTransform;\n var mat = transform.match(/^matrix3d\\((.+)\\)$/);\n if (mat) {\n return {\n x: parseFloat(mat[1].split(', ')[12]),\n y: parseFloat(mat[1].split(', ')[13]),\n };\n }\n mat = transform.match(/^matrix\\((.+)\\)$/);\n if (mat) {\n return {\n x: parseFloat(mat[1].split(', ')[4]),\n y: parseFloat(mat[1].split(', ')[5]),\n };\n }\n return { x: 0, y: 0 };\n};\n\n// 获取元素距离浏览器顶部的距离\nexport const getElementTop = (elem?: HTMLElement): number => {\n if (!elem) return 0;\n let elemTop: number = elem.offsetTop;\n let pElem: any = elem.offsetParent;\n while (pElem != null) {\n elemTop += pElem.offsetTop;\n if (pElem.style.transform) {\n elemTop += getComputedTranslate(pElem).y;\n }\n pElem = pElem.offsetParent;\n }\n return elemTop;\n};\n\n// 获取元素距离浏览器顶部的距离\nexport const getElementLeft = (elem?: HTMLElement): number => {\n if (!elem) return 0;\n let elemLeft = elem.offsetLeft;\n let pElem: any = elem.offsetParent;\n while (pElem != null) {\n elemLeft += pElem.offsetLeft;\n if (pElem.style.transform) {\n elemLeft += getComputedTranslate(pElem).x;\n }\n pElem = pElem.offsetParent;\n }\n return elemLeft;\n};\n\n// 获取元素可见范围内高度\nexport const getContainerVisibleHeight = (container?: HTMLElement): number => {\n if (!container) return 0;\n const rect = container.getBoundingClientRect();\n const windowHeight = window.innerHeight || document.documentElement.clientHeight;\n\n // 元素顶部在视口上方 -> 不可见\n if (rect.bottom < 0) return 0;\n\n // 元素底部在视口下方 -> 不可见\n if (rect.top > windowHeight) return 0;\n\n // 可见区域的 top 和 bottom\n const visibleTop = Math.max(rect.top, 0);\n const visibleBottom = Math.min(rect.bottom, windowHeight);\n\n // 可见高度\n return visibleBottom - visibleTop;\n};\n\nexport const getScrollTop = (elem?: HTMLElement) => {\n return elem?.scrollTop || document.documentElement.scrollTop;\n};\n\n// 浏览器可视宽高\nexport const getWindowSize = () => {\n return {\n width: document.body.clientWidth,\n height: document.body.clientHeight,\n };\n};\n\n// 获取元素父级最大的 z-index\nexport const getMaxZIndexInParents = (element: any) => {\n let currentElement = element;\n let maxZIndex = -Infinity;\n\n // 遍历当前元素及其所有父级元素\n while (currentElement && currentElement !== document.body) {\n // 获取当前元素的 z-index\n const zIndex = window.getComputedStyle(currentElement).zIndex;\n\n // 如果 z-index 是数字且比当前最大值大,则更新\n if (zIndex !== 'auto') {\n const zIndexNum = parseInt(zIndex, 10);\n if (!isNaN(zIndexNum) && zIndexNum > maxZIndex) {\n maxZIndex = zIndexNum;\n }\n }\n\n // 移动到父级元素\n currentElement = currentElement.parentElement;\n }\n\n // 如果没有显式设置的 z-index,返回 'auto' 或默认值\n return maxZIndex !== -Infinity ? maxZIndex : 'auto';\n};\n","import React, { useState, useRef, useEffect } from 'react';\nimport { sleep } from '../../../utils/helper';\n\ninterface WrapperType {\n children: React.ReactElement;\n className: string;\n}\n\nconst Wrapper = ({ children, className }: WrapperType) => {\n const [opacity, setOpacity] = useState(0);\n const [maxHeight, setMaxHeight] = useState<number | string>(0);\n const couterRef: any = useRef();\n useEffect(() => {\n animation();\n }, []);\n\n async function animation() {\n await sleep(10);\n setOpacity(1);\n couterRef.current?.childNodes?.length &&\n setMaxHeight(couterRef.current.childNodes[0].clientHeight + 16);\n await sleep(500);\n setMaxHeight('auto');\n }\n\n return (\n <div\n className={className}\n ref={couterRef}\n style={{ transition: 'all .3s ease 0s', opacity, height: maxHeight, overflow: 'hidden' }}\n >\n {children}\n </div>\n );\n};\n\nexport default Wrapper;\n","import React from 'react';\n\ntype IconProps = {\n width?: number;\n height?: number;\n style?: object;\n};\n\nexport const CloseIcon2 = (reset: any) => (\n <svg viewBox='0 0 32 32' {...reset} fill='currentcolor' role='img' aria-label='close icon'>\n <path d='M4 8 L8 4 L16 12 L24 4 L28 8 L20 16 L28 24 L24 28 L16 20 L8 28 L4 24 L12 16 z '></path>\n </svg>\n);\n\nexport const FilterIcon = ({ width = 18, height = 18 }: IconProps) => (\n <svg\n viewBox='0 0 32 32'\n width={width}\n height={height}\n fill='currentcolor'\n role='img'\n aria-label='filter icon'\n >\n <path d='M3.556 4h24.888a3.556 3.556 0 1 1 0 7.111H3.556a3.556 3.556 0 1 1 0-7.111zm4 11.556h16.888a2.222 2.222 0 1 1 0 4.444H7.556a2.222 2.222 0 0 1 0-4.444zM12 24.444h8a2.222 2.222 0 0 1 0 4.445h-8a2.222 2.222 0 0 1 0-4.445z'></path>\n </svg>\n);\n\nexport const SummarizeIcon = ({ width = 18, height = 18 }: IconProps) => (\n <svg\n viewBox='0 0 32 32'\n width={width}\n height={height}\n fill='currentcolor'\n role='img'\n aria-label='sum icon'\n >\n <path d='M3 27.41l1.984 4.422L27.895 32l.04-5.33-17.086-.125 8.296-9.457-.08-3.602L11.25 5.33H27.43V0H5.003L3.08 4.51l10.448 10.9z'></path>\n </svg>\n);\n\nexport const JoinDataIcon = ({ width = 18, height = 18 }: IconProps) => (\n <svg\n viewBox='0 0 32 32'\n width={width}\n height={height}\n fill='currentcolor'\n role='img'\n aria-label='join_left_outer icon'\n >\n <path d='M17.077 7.148A10.285 10.285 0 0 1 21.818 6C27.441 6 32 10.477 32 16s-4.559 10-10.182 10c-2.038 0-3.936-.588-5.528-1.6l.454-.31c.283-.194.555-.4.816-.617a8.842 8.842 0 0 0 4.258 1.083c4.832 0 8.738-3.836 8.738-8.556 0-4.72-3.906-8.556-8.738-8.556a8.865 8.865 0 0 0-3.546.733 10.65 10.65 0 0 0-1.195-1.03zM15.71 24.399A10.268 10.268 0 0 1 10.182 26C4.559 26 0 21.523 0 16S4.559 6 10.182 6c1.712 0 3.325.415 4.74 1.148-2.643 1.957-4.241 5.022-4.241 8.352 0 3.468 1.733 6.649 4.575 8.59l.454.31zM16 8c2.418 1.651 4 4.395 4 7.5 0 3.105-1.582 5.849-4 7.5-2.418-1.651-4-4.395-4-7.5 0-3.105 1.582-5.849 4-7.5z'></path>\n </svg>\n);\nexport const GroupIcon = ({ width = 18, height = 18 }: IconProps) => (\n <svg\n viewBox='0 0 1024 1024'\n width={width}\n height={height}\n fill='currentcolor'\n role='img'\n aria-label='add_group icon'\n >\n <path d='M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z'></path>\n <path d='M192 474h672q8 0 8 8v60q0 8-8 8H160q-8 0-8-8v-60q0-8 8-8z'></path>\n </svg>\n);\n\nexport const PermissionTableIcon = ({ width = 18, height = 18 }: IconProps) => (\n <svg\n viewBox='0 0 1024 1024'\n width={width}\n height={height}\n fill='currentcolor'\n role='img'\n aria-label='permission_table icon'\n >\n <path d='M768 416.914c43.886-43.885 43.886-109.714 0-153.6C724.114 219.43 650.971 219.43 607.086 256s-43.886 109.714 0 153.6S724.114 460.8 768 416.914z m-109.714-51.2c-14.629-14.628-14.629-36.571 0-51.2 14.628-14.628 36.571-14.628 51.2 0 14.628 14.629 14.628 36.572 0 51.2s-36.572 14.629-51.2 0z m-512 563.2c-14.629 14.629-36.572 14.629-51.2 0s-14.629-36.571 0-51.2l387.657-387.657-14.629-21.943C409.6 365.714 424.23 241.371 504.686 153.6c102.4-102.4 263.314-102.4 358.4 0s102.4 263.314 0 358.4c-80.457 87.771-204.8 102.4-307.2 43.886l-21.943-14.629-160.914 160.914 80.457 80.458c14.628 14.628 36.571 14.628 51.2 0 14.628-14.629 14.628-36.572 0-51.2l-21.943-29.258 65.828-65.828c124.343 58.514 277.943 36.571 373.029-65.829 131.657-131.657 131.657-336.457 0-468.114s-336.457-124.343-468.114 0C358.4 204.8 329.143 351.086 387.657 475.429L36.571 826.514c-43.885 43.886-43.885 109.715 0 153.6 43.886 43.886 109.715 43.886 153.6 0l80.458-80.457-51.2-43.886-73.143 73.143z m307.2-51.2L321.829 746.057l-51.2 58.514L402.286 936.23c14.628 14.628 36.571 14.628 51.2 0 14.628-21.943 14.628-43.886 0-58.515z'></path>\n </svg>\n);\n\nexport const CustomColumnIcon = ({ width = 18, height = 18 }: IconProps) => (\n <svg\n viewBox='0 0 32 32'\n width={width}\n height={height}\n fill='currentcolor'\n role='img'\n aria-label='add_data icon'\n >\n <path d='M0 8h5.926v6.208H0V8zm7.704 0h5.926v6.208H7.704V8zM0 16.07h5.926v6.209H0V16.07zm7.704 0h5.926v6.209H7.704V16.07zm7.703 0h5.926v6.209h-5.926V16.07zM0 24.142h5.926v6.208H0v-6.208zm7.704 0h5.926v6.208H7.704v-6.208zm7.703 0h5.926v6.208h-5.926v-6.208zM23.08 8.08V3h4.064v5.08h5.08v4.063h-5.08v5.08h-4.064v-5.08H18V8.079h5.08z'></path>\n </svg>\n);\n\nexport const SortIcon = ({ width = 18, height = 18 }: IconProps) => (\n <svg\n viewBox='0 0 32 32'\n width={width}\n height={height}\n fill='currentcolor'\n role='img'\n aria-label='smartscalar icon'\n >\n <path d='M9.806 9.347v13.016h-2.79V9.593L3.502 14.12a1.405 1.405 0 0 1-1.957.254 1.372 1.372 0 0 1-.256-1.937L7.418 4.54a1.404 1.404 0 0 1 2.219.008l6.08 7.953a1.372 1.372 0 0 1-.27 1.935c-.615.46-1.49.34-1.955-.268l-3.686-4.82zM24.806 23.016V13h-2.79v9.77l-3.514-4.527a1.405 1.405 0 0 0-1.957-.254 1.372 1.372 0 0 0-.256 1.937l6.129 7.897c.56.723 1.663.72 2.219-.008l6.08-7.953a1.372 1.372 0 0 0-.27-1.935 1.405 1.405 0 0 0-1.955.268l-3.686 4.82z'></path>\n </svg>\n);\n\nexport const RowLimitIcon = ({ width = 18, height = 18 }: IconProps) => (\n <svg\n viewBox='0 0 32 32'\n width={width}\n height={height}\n fill='currentcolor'\n role='img'\n aria-label='list icon'\n >\n <path d='M3 8 A3 3 0 0 0 9 8 A3 3 0 0 0 3 8 M12 6 L28 6 L28 10 L12 10z M3 16 A3 3 0 0 0 9 16 A3 3 0 0 0 3 16 M12 14 L28 14 L28 18 L12 18z M3 24 A3 3 0 0 0 9 24 A3 3 0 0 0 3 24 M12 22 L28 22 L28 26 L12 26z'></path>\n </svg>\n);\n\nexport const LeftJoinIcon = ({ width = 32, height = 32, style }: IconProps) => (\n <svg\n viewBox='0 0 32 32'\n width={width}\n height={height}\n fill='currentcolor'\n role='img'\n aria-label='join_right_outer icon'\n style={style}\n >\n <path d='M17.077 7.148A10.285 10.285 0 0 1 21.818 6C27.441 6 32 10.477 32 16s-4.559 10-10.182 10c-2.038 0-3.936-.588-5.528-1.6l.454-.31c.283-.194.555-.4.816-.617a8.842 8.842 0 0 0 4.258 1.083c4.832 0 8.738-3.836 8.738-8.556 0-4.72-3.906-8.556-8.738-8.556a8.865 8.865 0 0 0-3.546.733 10.65 10.65 0 0 0-1.195-1.03zM15.71 24.399A10.268 10.268 0 0 1 10.182 26C4.559 26 0 21.523 0 16S4.559 6 10.182 6c1.712 0 3.325.415 4.74 1.148-2.643 1.957-4.241 5.022-4.241 8.352 0 3.468 1.733 6.649 4.575 8.59l.454.31zM16 8c2.418 1.651 4 4.395 4 7.5 0 3.105-1.582 5.849-4 7.5-2.418-1.651-4-4.395-4-7.5 0-3.105 1.582-5.849 4-7.5z'></path>\n </svg>\n);\n\nexport const InnerJoinIcon = ({ width = 32, height = 32, style }: IconProps) => (\n <svg\n viewBox='0 0 32 32'\n width={width}\n height={height}\n fill='currentcolor'\n role='img'\n aria-label='join_inner icon'\n style={style}\n >\n <path d='M14.923 7.148c-.427.315-.826.66-1.195 1.03a8.865 8.865 0 0 0-3.546-.734C5.35 7.444 1.444 11.28 1.444 16c0 4.72 3.906 8.556 8.738 8.556 1.547 0 2.999-.393 4.258-1.083.26.217.533.423.816.616l.454.31A10.268 10.268 0 0 1 10.182 26C4.559 26 0 21.523 0 16S4.559 6 10.182 6c1.712 0 3.325.415 4.74 1.148zm1.879 0c.434.315.84.66 1.217 1.03a9.172 9.172 0 0 1 3.611-.734c4.921 0 8.9 3.836 8.9 8.556 0 4.72-3.979 8.556-8.9 8.556a9.137 9.137 0 0 1-4.337-1.083c-.265.217-.543.423-.83.616L16 24.4A10.6 10.6 0 0 0 21.63 26C27.357 26 32 21.523 32 16S27.357 6 21.63 6c-1.743 0-3.386.415-4.828 1.148zM16 8c2.418 1.651 4 4.395 4 7.5 0 3.105-1.582 5.849-4 7.5-2.418-1.651-4-4.395-4-7.5 0-3.105 1.582-5.849 4-7.5z'></path>\n </svg>\n);\n\nexport const UpArrowIcon = ({ width = 16, height = 17 }: IconProps) => (\n <svg\n className='sort-arrow'\n viewBox='0 0 32 34'\n width={width}\n height={height}\n fill='currentcolor'\n role='img'\n aria-label='arrow_up icon'\n >\n <path d='M16 34.23a2.5 2.5 0 002.5-2.5V9.036l8.732 8.732a2.5 2.5 0 003.405.122l.13-.122a2.5 2.5 0 000-3.536l-13-13a2.5 2.5 0 00-3.535 0l-13 13a2.5 2.5 0 103.536 3.536L13.5 9.036V31.73a2.5 2.5 0 002.336 2.495z'></path>\n </svg>\n);\n\nexport const DownArrowIcon = ({ width = 16, height = 17 }: IconProps) => (\n <svg\n className='sort-arrow'\n viewBox='0 0 32 34'\n width={width}\n height={height}\n fill='currentcolor'\n role='img'\n aria-label='arrow_down icon'\n >\n <path d='M16 .5A2.5 2.5 0 0118.5 3v22.694l8.732-8.732a2.5 2.5 0 013.405-.122l.13.122a2.5 2.5 0 010 3.536l-13 13a2.5 2.5 0 01-3.535 0l-13-13a2.5 2.5 0 113.536-3.536l8.732 8.732V3A2.5 2.5 0 0115.836.505z'></path>\n </svg>\n);\n\nexport const CloseIcon = ({ width = 16, height = 16 }: IconProps) => (\n <svg\n className='closeIcon'\n viewBox='0 0 32 32'\n width={width}\n height={height}\n fill='currentcolor'\n role='img'\n aria-label='close icon'\n >\n <path d='M4 8 L8 4 L16 12 L24 4 L28 8 L20 16 L28 24 L24 28 L16 20 L8 28 L4 24 L12 16 z '></path>\n </svg>\n);\n\nexport const AddIcon = ({ width = 16, height = 16 }: IconProps) => (\n <svg\n viewBox='0 0 32 32'\n width={width}\n height={height}\n fill='currentcolor'\n role='img'\n aria-label='add icon'\n >\n <path d='M12.4285714,12.4285714 L12.4285714,0 L19.5714286,0 L19.5714286,12.4285714 L32,12.4285714 L32,19.5714286 L19.5714286,19.5714286 L19.5714286,32 L12.4285714,32 L12.4285714,19.5714286 L0,19.5714286 L0,12.4285714 L12.4285714,12.4285714 Z'></path>\n </svg>\n);\n\nexport const TableIcon = ({ width = 18, height = 18 }: IconProps) => (\n <svg\n viewBox='0 0 32 32'\n width={width}\n height={height}\n fill='currentcolor'\n role='img'\n aria-label='table2 icon'\n >\n <path d='M1.6 0h28.8A1.6 1.6 0 0 1 32 1.6v28.8a1.6 1.6 0 0 1-1.6 1.6H1.6A1.6 1.6 0 0 1 0 30.4V1.6A1.6 1.6 0 0 1 1.6 0zm1.6 3.2v6.4h6.4V3.2H3.2zm9.6 0v6.4h16V3.2h-16zm-9.6 9.6v6.4h6.4v-6.4H3.2zm9.6 0v6.4h16v-6.4h-16zm-9.6 9.6v6.4h6.4v-6.4H3.2zm9.6 0v6.4h16v-6.4h-16z'></path>\n </svg>\n);\n\nexport const SearchIcon = ({ width = 16, height = 16 }: IconProps) => (\n <svg\n viewBox='0 0 32 32'\n width={width}\n height={height}\n fill='currentcolor'\n role='img'\n aria-label='search icon'\n >\n <path d='M22.805 25.734c-5.582 4.178-13.543 3.718-18.632-1.37-5.58-5.581-5.595-14.615-.031-20.179 5.563-5.563 14.597-5.55 20.178.031 5.068 5.068 5.545 12.985 1.422 18.563l5.661 5.661a2.08 2.08 0 0 1 .003 2.949 2.085 2.085 0 0 1-2.95-.003l-5.651-5.652zm-1.486-4.371c3.895-3.895 3.885-10.218-.021-14.125-3.906-3.906-10.23-3.916-14.125-.021-3.894 3.894-3.885 10.218.022 14.124 3.906 3.907 10.23 3.916 14.124.022z'></path>\n </svg>\n);\n\nexport const NotSelectIcon = () => (\n <svg\n viewBox='0 0 32 32'\n width='12'\n height='12'\n fill='currentcolor'\n role='img'\n aria-label='dash icon'\n >\n <path d='M0 13h32v6.61H0z'></path>\n </svg>\n);\n\nexport const SelectIcon = () => (\n <svg\n viewBox='0 0 32 32'\n width='12'\n height='12'\n fill='currentcolor'\n role='img'\n aria-label='check icon'\n >\n <path d='M1 14 L5 10 L13 18 L27 4 L31 8 L13 26 z '></path>\n </svg>\n);\n\nexport const CircleIcon = () => (\n <svg\n viewBox='0 0 32 32'\n width='18'\n height='18'\n fill='currentcolor'\n role='img'\n aria-label='unknown icon'\n >\n <path d='M16.5,26.5 C22.0228475,26.5 26.5,22.0228475 26.5,16.5 C26.5,10.9771525 22.0228475,6.5 16.5,6.5 C10.9771525,6.5 6.5,10.9771525 6.5,16.5 C6.5,22.0228475 10.9771525,26.5 16.5,26.5 L16.5,26.5 Z M16.5,23.5 C12.6340068,23.5 9.5,20.3659932 9.5,16.5 C9.5,12.6340068 12.6340068,9.5 16.5,9.5 C20.3659932,9.5 23.5,12.6340068 23.5,16.5 C23.5,20.3659932 20.3659932,23.5 16.5,23.5 L16.5,23.5 Z'></path>\n </svg>\n);\nexport const LetterAaIcon = () => (\n <svg\n viewBox='0 0 24 24'\n width='18'\n height='18'\n fill='currentcolor'\n role='img'\n aria-label='string icon'\n >\n <path d='M14.022,18 L11.533,18 C11.2543319,18 11.0247509,17.935084 10.84425,17.80525 C10.6637491,17.675416 10.538667,17.5091677 10.469,17.3065 L9.652,14.8935 L4.389,14.8935 L3.572,17.3065 C3.50866635,17.4838342 3.38516758,17.6437493 3.2015,17.78625 C3.01783241,17.9287507 2.79300133,18 2.527,18 L0.019,18 L5.377,4.1585 L8.664,4.1585 L14.022,18 Z M5.13,12.7085 L8.911,12.7085 L7.638,8.918 C7.55566626,8.67733213 7.45908389,8.3939183 7.34825,8.06775 C7.23741611,7.7415817 7.12816721,7.3885019 7.0205,7.0085 C6.91916616,7.39483527 6.8146672,7.75266502 6.707,8.082 C6.5993328,8.41133498 6.49800047,8.69633213 6.403,8.937 L5.13,12.7085 Z M21.945,18 C21.6663319,18 21.4557507,17.9620004 21.31325,17.886 C21.1707493,17.8099996 21.0520005,17.6516679 20.957,17.411 L20.748,16.8695 C20.5009988,17.078501 20.2635011,17.2621659 20.0355,17.4205 C19.8074989,17.5788341 19.5715846,17.7134161 19.32775,17.82425 C19.0839154,17.9350839 18.8242514,18.0174164 18.54875,18.07125 C18.2732486,18.1250836 17.9676683,18.152 17.632,18.152 C17.1823311,18.152 16.7738352,18.0934173 16.4065,17.97625 C16.0391648,17.8590827 15.7272513,17.6865011 15.47075,17.4585 C15.2142487,17.2304989 15.016334,16.947085 14.877,16.60825 C14.737666,16.269415 14.668,15.8783355 14.668,15.435 C14.668,15.0866649 14.7566658,14.7288352 14.934,14.3615 C15.1113342,13.9941648 15.4184978,13.6600848 15.8555,13.35925 C16.2925022,13.0584152 16.8814963,12.8066677 17.6225,12.604 C18.3635037,12.4013323 19.297661,12.2873335 20.425,12.262 L20.425,11.844 C20.425,11.2676638 20.3062512,10.8512513 20.06875,10.59475 C19.8312488,10.3382487 19.4940022,10.21 19.057,10.21 C18.7086649,10.21 18.4236678,10.2479996 18.202,10.324 C17.9803322,10.4000004 17.7824175,10.4854995 17.60825,10.5805 C17.4340825,10.6755005 17.2646675,10.7609996 17.1,10.837 C16.9353325,10.9130004 16.7390011,10.951 16.511,10.951 C16.3083323,10.951 16.1357507,10.9019172 15.99325,10.80375 C15.8507493,10.7055828 15.7383337,10.5836674 15.656,10.438 L15.124,9.5165 C15.7193363,8.99083071 16.3795797,8.59975128 17.10475,8.34325 C17.8299203,8.08674872 18.6073292,7.9585 19.437,7.9585 C20.0323363,7.9585 20.5690809,8.05508237 21.04725,8.24825 C21.5254191,8.44141763 21.9307483,8.71058161 22.26325,9.05575 C22.5957517,9.40091839 22.8506658,9.81099763 23.028,10.286 C23.2053342,10.7610024 23.294,11.2803305 23.294,11.844 L23.294,18 L21.945,18 Z M18.563,16.2045 C18.9430019,16.2045 19.2754986,16.1380007 19.5605,16.005 C19.8455014,15.8719993 20.1336652,15.6566682 20.425,15.359 L20.425,13.991 C19.8359971,14.0163335 19.3515019,14.0669996 18.9715,14.143 C18.5914981,14.2190004 18.2906678,14.3139994 18.069,14.428 C17.8473322,14.5420006 17.6937504,14.6718326 17.60825,14.8175 C17.5227496,14.9631674 17.48,15.1214991 17.48,15.2925 C17.48,15.6281683 17.5718324,15.8640827 17.7555,16.00025 C17.9391676,16.1364173 18.2083316,16.2045 18.563,16.2045 L18.563,16.2045 Z'></path>\n </svg>\n);\nexport const CalendarIcon = () => (\n <svg\n viewBox='0 0 24 24'\n width='18'\n height='18'\n fill='currentcolor'\n role='img'\n aria-label='calendar icon'\n >\n <path d='M21,2 L21,0 L18,0 L18,2 L6,2 L6,0 L3,0 L3,2 L2.99109042,2 C1.34177063,2 0,3.34314575 0,5 L0,6.99502651 L0,20.009947 C0,22.2157067 1.78640758,24 3.99005301,24 L20.009947,24 C22.2157067,24 24,22.2135924 24,20.009947 L24,6.99502651 L24,5 C24,3.34651712 22.6608432,2 21.0089096,2 L21,2 L21,2 Z M22,8 L22,20.009947 C22,21.1099173 21.1102431,22 20.009947,22 L3.99005301,22 C2.89008272,22 2,21.1102431 2,20.009947 L2,8 L22,8 L22,8 Z M6,12 L10,12 L10,16 L6,16 L6,12 Z'></path>\n </svg>\n);\nexport const WellIcon = () => (\n <svg\n viewBox='0 0 24 24'\n width='18'\n height='18'\n fill='currentcolor'\n role='img'\n aria-label='int icon'\n >\n <path d='M15.141,15.512 L14.294,20 L13.051,20 C12.8309989,20 12.6403341,19.9120009 12.479,19.736 C12.3176659,19.5599991 12.237,19.343668 12.237,19.087 C12.237,19.0503332 12.2388333,19.0155002 12.2425,18.9825 C12.2461667,18.9494998 12.2516666,18.9146668 12.259,18.878 L12.908,15.512 L10.653,15.512 L10.015,19.01 C9.94899967,19.3620018 9.79866784,19.6149992 9.564,19.769 C9.32933216,19.9230008 9.06900143,20 8.783,20 L7.584,20 L8.42,15.512 L7.155,15.512 C6.92033216,15.512 6.74066729,15.4551672 6.616,15.3415 C6.49133271,15.2278328 6.429,15.0390013 6.429,14.775 C6.429,14.6723328 6.43999989,14.5550007 6.462,14.423 L6.605,13.554 L8.695,13.554 L9.267,10.518 L6.913,10.518 L7.122,9.385 C7.17333359,9.10633194 7.28699912,8.89916734 7.463,8.7635 C7.63900088,8.62783266 7.92499802,8.56 8.321,8.56 L9.542,8.56 L10.224,5.018 C10.282667,4.7246652 10.4183323,4.49733414 10.631,4.336 C10.8436677,4.17466586 11.0929986,4.094 11.379,4.094 L12.611,4.094 L11.775,8.56 L14.019,8.56 L14.866,4.094 L16.076,4.094 C16.3326679,4.094 16.5416659,4.1673326 16.703,4.314 C16.8643341,4.4606674 16.945,4.64766553 16.945,4.875 C16.945,4.9483337 16.9413334,5.00333315 16.934,5.04 L16.252,8.56 L18.485,8.56 L18.276,9.693 C18.2246664,9.97166806 18.1091676,10.1788327 17.9295,10.3145 C17.7498324,10.4501673 17.4656686,10.518 17.077,10.518 L15.977,10.518 L15.416,13.554 L16.978,13.554 C17.2126678,13.554 17.3904994,13.6108328 17.5115,13.7245 C17.6325006,13.8381672 17.693,14.0306653 17.693,14.302 C17.693,14.4046672 17.6820001,14.5219993 17.66,14.654 L17.528,15.512 L15.141,15.512 Z M10.928,13.554 L13.183,13.554 L13.744,10.518 L11.5,10.518 L10.928,13.554 Z'></path>\n </svg>\n);\nexport const ForeignKeyIcon = () => (\n <svg\n viewBox='0 0 16 19.7647'\n width='18'\n height='18'\n fill='currentcolor'\n role='img'\n aria-label='connections icon'\n >\n <path d='M5.37815706,11.5570815 C5.55061975,11.1918363 5.64705882,10.783651 5.64705882,10.3529412 C5.64705882,9.93118218 5.55458641,9.53102128 5.38881053,9.1716274 L11.1846365,4.82475792 C11.6952189,5.33295842 12.3991637,5.64705882 13.1764706,5.64705882 C14.7358628,5.64705882 16,4.38292165 16,2.82352941 C16,1.26413718 14.7358628,0 13.1764706,0 C11.6170784,0 10.3529412,1.26413718 10.3529412,2.82352941 C10.3529412,3.2452884 10.4454136,3.64544931 10.6111895,4.00484319 L10.6111895,4.00484319 L4.81536351,8.35171266 C4.3047811,7.84351217 3.60083629,7.52941176 2.82352941,7.52941176 C1.26413718,7.52941176 0,8.79354894 0,10.3529412 C0,11.9123334 1.26413718,13.1764706 2.82352941,13.1764706 C3.59147157,13.1764706 4.28780867,12.8698929 4.79682555,12.3724528 L10.510616,16.0085013 C10.408473,16.3004758 10.3529412,16.6143411 10.3529412,16.9411765 C10.3529412,18.5005687 11.6170784,19.7647059 13.1764706,19.7647059 C14.7358628,19.7647059 16,18.5005687 16,16.9411765 C16,15.3817842 14.7358628,14.1176471 13.1764706,14.1176471 C12.3029783,14.1176471 11.5221273,14.5142917 11.0042049,15.1372938 L5.37815706,11.5570815 Z'></path>\n </svg>\n);\nexport const UpArrowIcon2 = () => (\n <svg\n viewBox='0 0 32 32'\n width='12'\n height='12'\n fill='currentcolor'\n role='img'\n aria-label='chevronup icon'\n >\n <path d='M1 20 L16 6 L31 20 L27 24 L16 14 L5 24 z'></path>\n </svg>\n);\nexport const DownArrowIcon2 = () => (\n <svg\n viewBox='0 0 32 32'\n width='12'\n height='12'\n fill='currentcolor'\n role='img'\n aria-label='chevrondown icon'\n >\n <path d='M1 12 L16 26 L31 12 L27 8 L16 18 L5 8 z '></path>\n </svg>\n);\nexport const LeftArrowIcon = () => (\n <svg\n viewBox='0 0 32 32'\n width='16'\n height='16'\n fill='currentcolor'\n role='img'\n aria-label='chevronleft icon'\n >\n <path d='M20 1 L24 5 L14 16 L24 27 L20 31 L6 16 z'></path>\n </svg>\n);\nexport const RightArrowIcon = () => (\n <svg\n viewBox='0 0 32 32'\n width='16'\n height='16'\n fill='currentcolor'\n role='img'\n aria-label='chevronright icon'\n >\n <path d='M12 1 L26 16 L12 31 L8 27 L18 16 L8 5 z '></path>\n </svg>\n);\n\nexport const DataSourceIcon = () => (\n <svg\n viewBox='0 0 32 32'\n width='18'\n height='18'\n fill='currentcolor'\n role='img'\n aria-label='database icon'\n >\n <path d='M0 9.32V4.054S1.584 0 15.657 0C29.731 0 31.89 3.669 31.89 4.054v5.24s-1.445 4.125-15.424 4.125S0 10.138 0 9.32zm.305 12.93s2.044 3.692 15.727 3.692 15.63-3.72 15.63-3.72.338.099.338.632v5S30.463 32 15.964 32C1.465 32 .041 27.817.041 27.817V22.9c0-.582.264-.65.264-.65zm0-9.368s2.044 3.692 15.727 3.692 15.63-3.72 15.63-3.72.338.099.338.632v5.001s-1.537 4.145-16.036 4.145C1.465 22.632.041 18.45.041 18.45v-4.918c0-.583.264-.65.264-.65z'></path>\n </svg>\n);\n","import React from 'react';\nimport { Tooltip } from '@gingkoo/pandora';\nimport { CloseIcon2 } from '../../icons';\nimport { __ } from '../../../locale';\n\ninterface HeaderProps {\n title: string;\n className?: string;\n onClose?: Function;\n}\n\nconst Header = (props: HeaderProps) => {\n return (\n <div className={`Sqb-item--text ${props.className || ''}`}>\n {props.title}\n {props.onClose && (\n <Tooltip placement='top' title={__('data.del')}>\n <CloseIcon2 className={`Sqb-item-close`} onClick={props.onClose} />\n </Tooltip>\n )}\n </div>\n );\n};\n\nexport default Header;\n","/**\n * 弹窗选择列表组件\n * @description 用于在弹窗中选择列表项,支持自定义图标和\n */\nimport React from 'react';\nimport './index.less';\nimport cx from 'classnames';\nimport { OptionItem } from '../../../types';\ninterface PropsType {\n className?: string;\n value?: any;\n list: OptionItem[];\n onChange: (type: any) => void;\n}\nconst SelectList = ({ value = '', onChange = () => {}, list = [], className = '' }: PropsType) => {\n return (\n <div className={cx(`Sqb-SelectColumns--box `, className)}>\n <div className={'p-2'}>\n {list.map((v, i) => {\n return (\n <div\n key={v.value}\n className={cx(`Sqb-List-item p-2`, {\n active: value === v.value,\n 'mb-2': i !== list.length - 1,\n })}\n onClick={() => {\n onChange(v.value);\n }}\n >\n {v.icon}\n {v.label}\n </div>\n );\n })}\n </div>\n </div>\n );\n};\n\nexport default SelectList;\n","import React from 'react';\nimport cx from 'classnames';\n\nimport { __ } from '../../locale';\nimport { findIndex } from '../../utils';\n\nimport Wrapper from './components/Wrapper';\nimport NextDom from './components/meta-icon';\nimport Header from './components/header';\nimport SelectList from '../dialog/select-list';\nimport { UnionEnum } from '../../store/enum';\n\nimport { useStore } from '../../hooks/use-provider';\n\ninterface PropsType {\n store?: any;\n meta: any;\n union: UnionEnum;\n groupIndex: number;\n}\n\nconst List = [\n {\n value: UnionEnum.union,\n label: 'UNION',\n },\n {\n value: UnionEnum.unionAll,\n label: 'UNION ALL',\n },\n];\n\nconst RowLimit = (props: PropsType) => {\n const { meta, union, groupIndex } = props;\n const store = useStore();\n\n function selectOperator(e: any) {\n !meta.readonly &&\n store.setPopup({\n visible: true,\n node: e.currentTarget,\n content: (\n <SelectList\n list={List}\n value={union}\n onChange={(type: UnionEnum) => {\n let newMeta = store.metaList.slice();\n newMeta[groupIndex].union = type;\n store._setMeta(newMeta);\n store.setPopup({ visible: false });\n }}\n />\n ),\n });\n }\n return (\n <Wrapper className={cx(`Sqb-item`)}>\n <div className={cx(`Sqb-hover-parent`)}>\n <Header\n title={__('SqlQueryBuilder.union')}\n onClose={() => store.delMeta(meta, groupIndex)}\n />\n <div className={cx(`Sqb-item--content`)}>\n <div className={cx(`Sqb-NotebookCell`)}>\n <div className={`Sqb-TableName`} onClick={(e) => selectOperator(e)}>\n {union}\n </div>\n </div>\n </div>\n </div>\n </Wrapper>\n );\n};\n\nexport default RowLimit;\n","function getTextNodeAtPosition(root: any, index: number) {\n try {\n const treeWalker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, (elem) => {\n if (index > (elem as any).textContent.length) {\n index -= (elem as any).textContent.length;\n return NodeFilter.FILTER_REJECT;\n }\n return NodeFilter.FILTER_ACCEPT;\n });\n const c = treeWalker.nextNode();\n return {\n node: c ? c : root,\n position: c ? index : 0,\n };\n } catch (e) {\n return {\n node: root,\n position: 0,\n };\n }\n}\n\nexport function getSelectionPosition(element: any): RangeType {\n // input, textarea, IE\n if (element.setSelectionRange || element.createTextRange) {\n return [element.selectionStart, element.selectionEnd];\n } else {\n // contenteditable\n try {\n const selection: Selection | null = window.getSelection();\n // Clone the Range otherwise setStart/setEnd will mutate the actual selection in Chrome 58+ and Firefox!\n const range = (selection as Selection).getRangeAt(0).cloneRange();\n const { startContainer, startOffset } = range;\n range.setStart(element, 0);\n const end = range.toString().length;\n range.setEnd(startContainer, startOffset);\n const start = range.toString().length;\n\n return [start, end];\n } catch (e) {\n return [0, 0];\n }\n }\n}\n\nexport function setSelectionPosition(element: any, [start, end]: RangeType) {\n // input, textarea\n if (element.setSelectionRange) {\n element.focus();\n element.setSelectionRange(start, end);\n } else if (element.createTextRange) {\n // IE\n const range = element.createTextRange();\n range.collapse(true);\n range.moveEnd('character', end);\n range.moveStart('character', start);\n range.select();\n } else {\n // contenteditable\n try {\n const selection = window.getSelection();\n const startPos = getTextNodeAtPosition(element, start);\n const endPos = getTextNodeAtPosition(element, end);\n (selection as Selection).removeAllRanges();\n const range = new Range();\n range.setStart(startPos.node, startPos.position);\n range.setEnd(endPos.node, endPos.position);\n (selection as Selection).addRange(range);\n } catch (e) {\n element && element.focus();\n }\n }\n}\n\nexport function getCaretPosition(element: any) {\n return getSelectionPosition(element)[1];\n}\n\nexport function saveSelection(element: any) {\n const range = getSelectionPosition(element);\n return () => setSelectionPosition(element, range);\n}\n\nexport function setCaretPosition(element: any, position: number) {\n setSelectionPosition(element, [position, position]);\n}\n\ntype RangeType = [number, number];\n","// @ts-nocheck\n\nconst t = (msg) => msg;\n\nexport const TOKEN = {\n Operator: 1,\n Number: 2,\n String: 3,\n Identifier: 4,\n};\n\nexport const OPERATOR = {\n Comma: ',',\n OpenParenthesis: '(',\n CloseParenthesis: ')',\n Plus: '+',\n Minus: '-',\n Star: '*',\n Slash: '/',\n Equal: '=',\n NotEqual: '!=',\n LessThan: '<',\n GreaterThan: '>',\n LessThanEqual: '<=',\n GreaterThanEqual: '>=',\n Not: 'not',\n And: 'and',\n Or: 'or',\n};\n\nexport function tokenize(expression) {\n const source = expression;\n const length = expression.length;\n let index = 0;\n\n const isWhiteSpace = (cp) =>\n cp === 0x0009 || // tab\n cp === 0x000a || // line feed\n cp === 0x000b || // vertical tab\n cp === 0x000c || // form feed\n cp === 0x000d || // carriage return\n cp === 0x0020 || // space\n cp === 0x0085 || // next line\n cp === 0x00a0 || // non-breking space\n cp === 0x1680 || // ogham space\n cp === 0x2000 || // en quad\n cp === 0x2001 || // em quad\n cp === 0x2002 || // en space\n cp === 0x2003 || // em space\n cp === 0x2004 || // third em space\n cp === 0x2005 || // fourth em space\n cp === 0x2006 || // sixth em space\n cp === 0x2007 || // figure space\n cp === 0x2008 || // punctuation space\n cp === 0x2009 || // thin space\n cp === 0x200a || // hair space\n cp === 0x2028 || // line separator\n cp === 0x2029 || // paragraph separator\n cp === 0x202f || // no break narrow space\n cp === 0x205f || // four-eighteenths em space\n cp === 0x3000; // cjk language space\n\n const isDigit = (cp) => cp >= 0x30 && cp <= 0x39; // 0..9\n\n const isAlpha = (cp) =>\n (cp >= 0x41 && cp <= 0x5a) || // A..Z\n (cp >= 0x61 && cp <= 0x7a); // a..z\n\n const skipWhitespaces = () => {\n while (index < length) {\n const cp = source.charCodeAt(index);\n if (!isWhiteSpace(cp)) {\n break;\n }\n ++index;\n }\n };\n\n const scanOperator = () => {\n const start = index;\n const ch = source[start];\n\n switch (ch) {\n case OPERATOR.OpenParenthesis:\n case OPERATOR.CloseParenthesis:\n case OPERATOR.Comma:\n case OPERATOR.Plus:\n case OPERATOR.Minus:\n case OPERATOR.Star:\n case OPERATOR.Slash:\n case OPERATOR.Equal:\n ++index;\n break;\n\n case OPERATOR.LessThan:\n case OPERATOR.GreaterThan:\n ++index;\n if (source[index] === OPERATOR.Equal) {\n // OPERATOR.LessThanEqual (<=) or\n // OPERATOR.GreaterThanEqual (>=)\n ++index;\n }\n break;\n\n case '!':\n if (source[start + 1] === OPERATOR.Equal) {\n // OPERATOR.NotEqual (!=)\n index += 2;\n }\n break;\n\n default:\n break;\n }\n if (index === start) {\n return null;\n }\n const type = TOKEN.Operator;\n const end = index;\n const op = source.slice(start, end);\n const error = null;\n return { type, op, start, end, error };\n };\n\n const scanNumericLiteral = () => {\n const start = index;\n while (index < length) {\n const cp = source.charCodeAt(index);\n if (!isDigit(cp)) {\n break;\n }\n ++index;\n }\n if (index <= start) {\n return null;\n }\n const dot = source[index];\n if (dot === '.') {\n ++index;\n while (index < length) {\n const cp = source.charCodeAt(index);\n if (!isDigit(cp)) {\n break;\n }\n ++index;\n }\n }\n const exp = source[index];\n if (exp === 'e' || exp === 'E') {\n ++index;\n const sign = source[index];\n if (sign === '+' || sign === '-') {\n ++index;\n }\n const marker = index;\n while (index < length) {\n const cp = source.charCodeAt(index);\n if (!isDigit(cp)) {\n break;\n }\n ++index;\n }\n if (index <= marker) {\n const type = TOKEN.Number;\n const end = index;\n const error = t`Missing exponent`;\n return { type, start, end, error };\n }\n }\n const type = TOKEN.Number;\n const end = index;\n const error = null;\n return { type, start, end, error };\n };\n\n const scanStringLiteral = () => {\n const start = index;\n const quote = source[start];\n if (quote !== \"'\" && quote !== '\"') {\n return null;\n }\n ++index;\n let value = '';\n while (index < length) {\n const ch = source[index++];\n if (ch === quote) {\n break;\n } else if (ch === '\\\\') {\n const seq = source[index++];\n if (seq) {\n switch (seq) {\n case 'b':\n value += '\\b';\n break;\n case 'f':\n value += '\\f';\n break;\n case 'n':\n value += '\\n';\n break;\n case 'r':\n value += '\\r';\n break;\n case 't':\n value += '\\t';\n break;\n case 'v':\n value += '\\x0b';\n break;\n default:\n value += seq;\n break;\n }\n }\n } else {\n value += ch;\n }\n }\n const type = TOKEN.String;\n const end = index;\n const terminated = quote === source[end - 1];\n const error = terminated ? null : t`Missing closing quotes`;\n return { type, value, start, end, error };\n };\n\n const scanBracketIdentifier = () => {\n const start = index;\n const bracket = source[start];\n if (bracket !== '[') {\n return null;\n }\n ++index;\n while (index < length) {\n const ch = source[index++];\n if (ch === ']') {\n break;\n } else if (ch === '[') {\n const type = TOKEN.Identifier;\n const end = index;\n const error = t`Bracket identifier in another bracket identifier`;\n return { type, start, end, error };\n } else if (ch === '\\\\') {\n // ignore the next char, even if it's [ or ]\n index++;\n }\n }\n const type = TOKEN.Identifier;\n const end = index;\n const terminated = source[end - 1] === ']';\n const error = terminated ? null : t`Missing a closing bracket`;\n return { type, start, end, error };\n };\n\n const isIdentifierStart = (cp) => isAlpha(cp) || cp === 0x5f; // underscore;\n\n const isIdentifierChar = (cp) =>\n isAlpha(cp) ||\n isDigit(cp) ||\n cp === 0x2e || // dot\n cp === 0x5f; // underscore\n\n const scanIdentifier = () => {\n const start = index;\n const initial = source.charCodeAt(start);\n if (!isIdentifierStart(initial)) {\n return null;\n }\n\n while (index < length) {\n const cp = source.charCodeAt(index);\n if (!isIdentifierChar(cp)) {\n break;\n }\n ++index;\n }\n const end = index;\n if (index === start) {\n return null;\n }\n const id = source.slice(start, end).toLowerCase();\n if (id === OPERATOR.Not || id === OPERATOR.And || id === OPERATOR.Or) {\n const type = TOKEN.Operator;\n const op = id;\n const error = null;\n return { type, op, start, end, error };\n }\n const type = TOKEN.Identifier;\n const error = null;\n return { type, start, end, error };\n };\n\n const main = () => {\n const tokens = [],\n errors = [];\n while (index < length) {\n skipWhitespaces();\n let token = scanOperator();\n if (!token) {\n token = scanNumericLiteral();\n }\n if (!token) {\n token = scanStringLiteral();\n }\n if (!token) {\n token = scanIdentifier();\n }\n if (!token) {\n token = scanBracketIdentifier();\n }\n if (token) {\n const { error, ...t } = token;\n tokens.push(t);\n if (error) {\n const message = error;\n const pos = t.start;\n errors.push({ message, pos });\n }\n } else {\n const char = source[index];\n if (!char) {\n break;\n }\n const pos = index;\n if (char === ']') {\n const prev = tokens[tokens.length - 1];\n const ref =\n prev && prev.type === TOKEN.Identifier ? source.slice(prev.start, prev.end) : null;\n const message = ref\n ? t`Missing an opening bracket for ${ref}`\n : t`Missing an opening bracket`;\n errors.push({ message, pos });\n } else {\n const message = t`Invalid character: ${char}`;\n errors.push({ message, pos });\n }\n ++index;\n }\n }\n return { tokens, errors };\n };\n\n return main();\n}\n","import _ from 'underscore';\n\nimport { tokenize, TOKEN, OPERATOR as OP } from './tokenizer';\nimport { functions } from '../../../../sql-formula';\nimport { MetaData_ColumnsType } from '../../../../store/types';\nimport { __ } from '../../../../locale';\nimport { ListProps } from '../dialog/select-list';\n\nexport enum OptionsTypeEnum {\n FUNCTION = 'function',\n FIELD = 'field',\n OPERATOR = 'operator',\n OTHER = 'other',\n}\n\nexport enum SelectPopupTypeEnum {\n FUNCTION_DESC = 'function_desc', // 弹函数描述提示框\n SELECT_LIST = 'select_list', // 弹select下拉框\n EMPTY = 'empty', // 不弹框\n}\n\ntype SelectPopup = {\n type: SelectPopupTypeEnum.SELECT_LIST;\n data: ListProps[];\n};\n\ntype FunctionPopup = {\n type: SelectPopupTypeEnum.FUNCTION_DESC;\n functionName: string;\n};\n\ntype VoidPopup = {\n type: SelectPopupTypeEnum.EMPTY;\n};\n\nexport type ChoosePopupResultType = SelectPopup | FunctionPopup | VoidPopup;\n\ninterface ChoosePopupType {\n source: string;\n targetOffset: number;\n fields: MetaData_ColumnsType[];\n}\n\nconst Operator = ['*', '+', '-', '/'];\n\nclass Suggest {\n /**\n * 主要是看光标前面是什么\n * 1、主动识别的有\n * 1)字段\n * ① 光标在[]中间 筛选只能在表字段列表筛选 如果没有匹配 则不显示弹框\n * ② 光标在]后面 显示运算符\n * ③ 光标在[前面 不用理\n * 2)字符串\n * ① 光标在字符串中间 筛选 函数、表字段\n * ② 光标在字符串后面 如果有匹配同上面① 如果没匹配 则不显示弹框\n * ③ 光标在字符串前面 不用理\n * 3)函数\n * ① 点函数名 筛选 函数、表字段\n * ② 函数括号里面 如果光标前面是(,或者后面是)提示函数详情\n * ③ 在)后面,显示运算符\n * ④ 在函数名前面 不用理会\n * 4)括号\n * ① 光标在(后面 显示所有函数、表字段\n * ① 光标在)后面 显示运算符弹框\n * ② 光标在(前面 或者在)前面 都不用理会\n * 5)运算符\n * ① 光标在前面显示运算符弹框\n * ② 光标在后面显示所有函数、表字段\n * 6)起点\n * ① 显示所有函数、表字段\n *\n * 2、不识别的有\n * 1)\"aaa\" 双引号字符串里面的 都不提示\n * 2)1234 数字里面\n * 3)前面包含特殊符号 ! @ ...\n *\n */\n // [ID] + power([ID], 2) * ([ID] - [ID]) + 123 + aaa\n choosePopup({ source, targetOffset, fields }: ChoosePopupType): ChoosePopupResultType {\n const partialSource = source.slice(0, targetOffset);\n // matchPrefix 只匹配 字符串 如:字段[id]、函数abs、字符串 aaa 其他都返回null,如果字符串外面“有双引号” 也是null\n const matchPrefix = partialMatch(partialSource);\n const _fields = fields.map((v) => v.name);\n\n // ① 没有匹配到 或者匹配到字段的\n if (!matchPrefix || _.last(matchPrefix) === ']') {\n const functionDisplayName = enclosingFunction(partialSource);\n // 匹配到在函数里面\n if (functionDisplayName) {\n return {\n type: SelectPopupTypeEnum.FUNCTION_DESC,\n functionName: functionDisplayName,\n };\n }\n\n // 匹配到是字段后面\n if (matchPrefix && _.last(matchPrefix) === ']') {\n return {\n type: SelectPopupTypeEnum.SELECT_LIST,\n data: [\n { name: __('customColumn.operator'), type: OptionsTypeEnum.OPERATOR, list: Operator },\n ],\n };\n }\n // 没有匹配到\n if (!matchPrefix) {\n let _partialSource = partialSource.replace(/\\s/g, '');\n let prevStr = _partialSource.substr(-1);\n if (_partialSource.length && !~Operator.indexOf(prevStr)) {\n return {\n type: SelectPopupTypeEnum.SELECT_LIST,\n data: [\n { name: __('customColumn.operator'), type: OptionsTypeEnum.OPERATOR, list: Operator },\n ],\n };\n } else {\n return {\n type: SelectPopupTypeEnum.SELECT_LIST,\n data: [\n { name: __('customColumn.field'), type: OptionsTypeEnum.FIELD, list: _fields },\n { name: 'FUNCTIONS', type: OptionsTypeEnum.FUNCTION, list: Object.keys(functions) },\n { name: __('customColumn.other'), type: OptionsTypeEnum.OTHER, list: ['('] },\n ],\n };\n }\n }\n }\n\n let fieldList = _fields.filter((v) => v.includes(matchPrefix));\n let funcList = Object.keys(functions).filter((v) => v.includes(matchPrefix));\n\n // ② 匹配到前面是字符串\n if (_.first(matchPrefix) !== '[') {\n let data = [];\n fieldList.length &&\n data.push({ name: __('customColumn.field'), type: OptionsTypeEnum.FIELD, list: fieldList });\n funcList.length &&\n data.push({ name: 'FUNCTIONS', type: OptionsTypeEnum.FUNCTION, list: funcList });\n if (data.length) {\n return {\n type: SelectPopupTypeEnum.SELECT_LIST,\n data,\n };\n }\n }\n\n fieldList = _fields.filter((v) => v.includes(matchPrefix.substr(1)));\n // ③ 匹配到前面是字段\n if (_.first(matchPrefix) === '[') {\n if (fieldList.length) {\n return {\n type: SelectPopupTypeEnum.SELECT_LIST,\n data: [{ name: __('customColumn.field'), type: OptionsTypeEnum.FIELD, list: fieldList }],\n };\n }\n }\n\n return { type: SelectPopupTypeEnum.EMPTY };\n }\n}\n\nexport default new Suggest();\n\nexport function partialMatch(expression: string) {\n const { tokens } = tokenize(expression);\n const lastToken = _.last(tokens);\n if (lastToken && lastToken.type === TOKEN.Identifier) {\n if (lastToken.end === expression.length) {\n return expression.slice(lastToken.start, lastToken.end);\n }\n }\n\n return null;\n}\n\nexport function enclosingFunction(expression: string) {\n const { tokens } = tokenize(expression);\n\n const isOpen = (t: any) => t.op === OP.OpenParenthesis;\n const isClose = (t: any) => t.op === OP.CloseParenthesis;\n\n let parenCount = 0;\n for (let i = tokens.length - 1; i > 0; --i) {\n const token = tokens[i];\n if (isClose(token)) {\n --parenCount;\n } else if (isOpen(token)) {\n ++parenCount;\n if (parenCount === 1) {\n const prev = tokens[i - 1];\n if (prev.type === TOKEN.Identifier) {\n return expression.slice(prev.start, prev.end);\n }\n }\n }\n }\n\n return null;\n}\n","// @ts-nocheck\nexport const DISPLAY_QUOTES = {\n identifierQuoteDefault: '',\n literalQuoteDefault: '',\n};\n\nexport const EDITOR_QUOTES = {\n // specifies where different quoting is used:\n characters: {\n '[': 'identifier',\n \"'\": 'literal',\n '\"': 'literal',\n },\n // specifies the default quoting style:\n literalQuoteDefault: '\"',\n identifierQuoteDefault: '[',\n // always quote identifiers even if they have non-word characters or conflict with reserved words\n identifierAlwaysQuoted: true,\n};\n\n// export const EDITOR_QUOTES = {\n// characters: {\n// \"'\": \"literal\",\n// '\"': \"identifier\",\n// },\n// literalQuoteDefault: \"'\",\n// identifierQuoteDefault: '\"',\n// identifierAlwaysQuoted: false,\n// };\n\nexport const EDITOR_FK_SYMBOLS = {\n // specifies which symbols can be used to delimit foreign/joined fields\n symbols: ['.', ' → '],\n // specifies the default/canonical symbol\n default: ' → ',\n};\n\n// copied relevant parts from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence\nexport const OPERATOR_PRECEDENCE = {\n not: 17,\n '*': 15,\n '/': 15,\n '+': 14,\n '-': 14,\n and: 6,\n or: 5,\n};\n\nexport const EXPRESSION_TYPES = ['expression', 'aggregation', 'boolean', 'string', 'number'];\n\nexport const EXPRESSION_SUBTYPES = {\n // can't currently add \"boolean\" as a subtype of expression due to conflict between segments and fields\n expression: new Set(['string', 'number']),\n};\n\nexport const isExpressionType = (typeA, typeB) =>\n typeA === typeB || (EXPRESSION_SUBTYPES[typeB] && EXPRESSION_SUBTYPES[typeB].has(typeA)) || false;\n\nexport function getFunctionArgType(clause, index) {\n return clause.multiple ? clause.args[0] : clause.args[index];\n}\n\nexport const MBQL_CLAUSES = {\n // aggregation functions\n count: { displayName: `Count`, type: 'aggregation', args: [] },\n 'cum-count': {\n displayName: `CumulativeCount`,\n type: 'aggregation',\n args: [],\n },\n sum: { displayName: `Sum`, type: 'aggregation', args: ['number'] },\n 'cum-sum': {\n displayName: `CumulativeSum`,\n type: 'aggregation',\n args: ['number'],\n },\n distinct: { displayName: `Distinct`, type: 'aggregation', args: ['number'] },\n stddev: {\n displayName: `StandardDeviation`,\n type: 'aggregation',\n args: ['number'],\n requiresFeature: 'standard-deviation-aggregations',\n },\n avg: { displayName: `Average`, type: 'aggregation', args: ['number'] },\n min: { displayName: `Min`, type: 'aggregation', args: ['number'] },\n max: { displayName: `Max`, type: 'aggregation', args: ['number'] },\n share: { displayName: `Share`, type: 'aggregation', args: ['boolean'] },\n 'count-where': {\n displayName: `CountIf`,\n type: 'aggregation',\n args: ['boolean'],\n },\n 'sum-where': {\n displayName: `SumIf`,\n type: 'aggregation',\n args: ['number', 'boolean'],\n },\n var: {\n displayName: `Variance`,\n type: 'aggregation',\n args: ['number'],\n requiresFeature: 'standard-deviation-aggregations',\n },\n median: {\n displayName: `Median`,\n type: 'aggregation',\n args: ['number'],\n requiresFeature: 'percentile-aggregations',\n },\n percentile: {\n displayName: `Percentile`,\n type: 'aggregation',\n args: ['number', 'number'],\n requiresFeature: 'percentile-aggregations',\n },\n // string functions\n lower: { displayName: `lower`, type: 'string', args: ['string'] },\n upper: { displayName: `upper`, type: 'string', args: ['string'] },\n substring: {\n displayName: `substring`,\n type: 'string',\n args: ['string', 'number', 'number'],\n },\n 'regex-match-first': {\n displayName: `regexextract`,\n type: 'string',\n args: ['string', 'string'],\n requiresFeature: 'regex',\n },\n concat: {\n displayName: `concat`,\n type: 'string',\n args: ['expression'],\n multiple: true,\n },\n replace: {\n displayName: `replace`,\n type: 'string',\n args: ['string', 'string', 'string'],\n },\n length: { displayName: `length`, type: 'number', args: ['string'] },\n trim: { displayName: `trim`, type: 'string', args: ['string'] },\n rtrim: { displayName: `rtrim`, type: 'string', args: ['string'] },\n ltrim: { displayName: `ltrim`, type: 'string', args: ['string'] },\n // numeric functions\n abs: {\n displayName: `abs`,\n type: 'number',\n args: ['number'],\n requiresFeature: 'expressions',\n },\n floor: {\n displayName: `floor`,\n type: 'number',\n args: ['number'],\n requiresFeature: 'expressions',\n },\n ceil: {\n displayName: `ceil`,\n type: 'number',\n args: ['number'],\n requiresFeature: 'expressions',\n },\n round: {\n displayName: `round`,\n type: 'number',\n args: ['number'],\n requiresFeature: 'expressions',\n },\n sqrt: {\n displayName: `sqrt`,\n type: 'number',\n args: ['number'],\n requiresFeature: 'advanced-math-expressions',\n },\n power: {\n displayName: `power`,\n type: 'number',\n args: ['number', 'number'],\n requiresFeature: 'advanced-math-expressions',\n },\n log: {\n displayName: `log`,\n type: 'number',\n args: ['number'],\n requiresFeature: 'advanced-math-expressions',\n },\n exp: {\n displayName: `exp`,\n type: 'number',\n args: ['number'],\n requiresFeature: 'advanced-math-expressions',\n },\n // boolean functions\n contains: {\n displayName: `contains`,\n type: 'boolean',\n args: ['string', 'string'],\n hasOptions: true,\n },\n 'starts-with': {\n displayName: `startsWith`,\n type: 'boolean',\n args: ['string', 'string'],\n hasOptions: true,\n },\n 'ends-with': {\n displayName: `endsWith`,\n type: 'boolean',\n args: ['string', 'string'],\n hasOptions: true,\n },\n between: {\n displayName: `between`,\n type: 'boolean',\n args: ['expression', 'expression', 'expression'],\n },\n 'time-interval': {\n displayName: `interval`,\n type: 'boolean',\n args: ['expression', 'number', 'string'],\n },\n 'is-null': {\n displayName: `isnull`,\n type: 'boolean',\n args: ['expression'],\n },\n 'is-empty': {\n displayName: `isempty`,\n type: 'boolean',\n args: ['expression'],\n },\n // other expression functions\n coalesce: {\n displayName: `coalesce`,\n type: 'expression',\n args: ['expression', 'expression'],\n multiple: true,\n },\n case: {\n displayName: `case`,\n type: 'expression',\n args: ['expression', 'expression'], // ideally we'd alternate boolean/expression\n multiple: true,\n },\n // boolean operators\n and: { displayName: `AND`, type: 'boolean', args: ['boolean', 'boolean'] },\n or: { displayName: `OR`, type: 'boolean', args: ['boolean', 'boolean'] },\n not: { displayName: `NOT`, type: 'boolean', args: ['boolean'] },\n // numeric operators\n '*': {\n displayName: '*',\n tokenName: 'Multi',\n type: 'number',\n args: ['number', 'number'],\n },\n '/': {\n displayName: '/',\n tokenName: 'Div',\n type: 'number',\n args: ['number', 'number'],\n },\n '-': {\n displayName: '-',\n tokenName: 'Minus',\n type: 'number',\n args: ['number', 'number'],\n },\n '+': {\n displayName: '+',\n tokenName: 'Plus',\n type: 'number',\n args: ['number', 'number'],\n },\n // comparison operators\n '!=': {\n displayName: '!=',\n tokenName: 'NotEqual',\n type: 'boolean',\n args: ['expression', 'expression'],\n },\n '<=': {\n displayName: '<=',\n tokenName: 'LessThanEqual',\n type: 'boolean',\n args: ['expression', 'expression'],\n },\n '>=': {\n displayName: '>=',\n tokenName: 'GreaterThanEqual',\n type: 'boolean',\n args: ['expression', 'expression'],\n },\n '<': {\n displayName: '<',\n tokenName: 'LessThan',\n type: 'boolean',\n args: ['expression', 'expression'],\n },\n '>': {\n displayName: '>',\n tokenName: 'GreaterThan',\n type: 'boolean',\n args: ['expression', 'expression'],\n },\n '=': {\n displayName: '=',\n tokenName: 'Equal',\n type: 'boolean',\n args: ['expression', 'expression'],\n },\n};\n\nfor (const [name, clause] of Object.entries(MBQL_CLAUSES)) {\n if (clause.name !== undefined && clause.name !== name) {\n console.warn('Mismatched name for MBQL_CLAUSES ' + name);\n }\n clause.name = name;\n}\n\n// Reserved token names\nconst MBQL_TO_EXPRESSION_NAME = new Map(\n Object.entries(MBQL_CLAUSES).map(([mbql, { displayName }]) => [mbql, displayName]),\n);\nconst EXPRESSION_TO_MBQL_NAME = new Map(\n Object.entries(MBQL_CLAUSES).map(([mbql, { displayName }]) => [\n // case-insensitive\n displayName.toLowerCase(),\n mbql,\n ]),\n);\nexport function getExpressionName(mbqlName) {\n return MBQL_TO_EXPRESSION_NAME.get(mbqlName);\n}\nexport function getMBQLName(expressionName) {\n // case-insensitive\n return EXPRESSION_TO_MBQL_NAME.get(expressionName.toLowerCase());\n}\n\nexport const AGGREGATION_FUNCTIONS = new Set([\n // count-where/sum-where must come before count/sum\n 'count-where',\n 'sum-where',\n 'count',\n 'cum-count',\n 'sum',\n 'cum-sum',\n 'distinct',\n 'stddev',\n 'avg',\n 'min',\n 'max',\n 'share',\n 'var',\n 'median',\n 'percentile',\n]);\n\nexport const EXPRESSION_FUNCTIONS = new Set([\n // string\n 'lower',\n 'upper',\n 'substring',\n 'regex-match-first',\n 'concat',\n 'replace',\n 'trim',\n 'rtrim',\n 'ltrim',\n 'length',\n // number\n 'abs',\n 'floor',\n 'ceil',\n 'round',\n 'sqrt',\n 'power',\n 'log',\n 'exp',\n // boolean\n 'contains',\n 'ends-with',\n 'starts-with',\n 'between',\n 'time-interval',\n 'is-null',\n 'is-empty',\n // other\n 'coalesce',\n]);\n\nexport const EXPRESSION_OPERATORS = new Set(['+', '-', '*', '/']);\nexport const FILTER_OPERATORS = new Set(['!=', '<=', '>=', '<', '>', '=']);\n\nexport const BOOLEAN_UNARY_OPERATORS = new Set(['not']);\nexport const LOGICAL_AND_OPERATOR = new Set(['and']);\nexport const LOGICAL_OR_OPERATOR = new Set(['or']);\n\nexport const FUNCTIONS = new Set([...EXPRESSION_FUNCTIONS, ...AGGREGATION_FUNCTIONS]);\n\nexport const OPERATORS = new Set([\n ...EXPRESSION_OPERATORS,\n ...FILTER_OPERATORS,\n ...BOOLEAN_UNARY_OPERATORS,\n ...LOGICAL_AND_OPERATOR,\n ...LOGICAL_OR_OPERATOR,\n]);\n\n// \"standard\" filters, can be edited using UI\nexport const STANDARD_FILTERS = new Set([\n '!=',\n '<=',\n '>=',\n '<',\n '>',\n '=',\n 'contains',\n 'does-not-contain',\n 'ends-with',\n 'starts-with',\n 'between',\n 'time-interval',\n 'is-null',\n 'not-null',\n 'is-empty',\n 'not-empty',\n 'inside',\n]);\n\n// \"standard\" aggregations, can be edited using UI\nexport const STANDARD_AGGREGATIONS = new Set([\n 'count',\n 'cum-count',\n 'sum',\n 'cum-sum',\n 'distinct',\n 'stddev',\n 'avg',\n 'min',\n 'max',\n]);\n","/* eslint-disable react/prop-types */\nimport React from 'react';\n\nimport './tokenized-expression.less';\n\nimport cx from 'classnames';\n\nimport { tokenize, TOKEN, OPERATOR } from './expressions/tokenizer';\nimport { getMBQLName, FUNCTIONS } from './config';\n\ninterface TokenType {\n type: number;\n op: string;\n}\n\nfunction mapTokenType(token: TokenType) {\n const { type, op } = token;\n switch (type) {\n case TOKEN.Operator:\n return op === OPERATOR.OpenParenthesis\n ? 'open-paren'\n : op === OPERATOR.CloseParenthesis\n ? 'close-paren'\n : 'operator';\n case TOKEN.Number:\n return 'number-literal';\n case TOKEN.String:\n return 'string-literal';\n case TOKEN.Identifier:\n // FIXME metric vs dimension vs segment\n return 'dimension';\n default:\n return 'token';\n }\n}\n\nfunction createSpans(source: string) {\n const isFunction = (name: string) =>\n name.toLowerCase() === 'case' || FUNCTIONS.has(getMBQLName(name) as string);\n const { tokens } = tokenize(source);\n let lastPos = 0;\n const spans = [];\n tokens.forEach((token) => {\n const str = source.substring(lastPos, token.start);\n if (str.length > 0) {\n spans.push({\n kind: 'whitespace',\n text: str,\n });\n }\n const text = source.substring(token.start, token.end);\n const kind = isFunction(text) ? 'function-name' : mapTokenType(token);\n spans.push({ kind, text });\n lastPos = token.end;\n });\n const tail = source.substring(lastPos);\n if (tail.length > 0) {\n spans.push({\n kind: 'whitespace',\n text: tail,\n });\n }\n return spans;\n}\n\ninterface PropsType {\n startRule: string;\n source: string;\n}\nexport default class TokenizedExpression extends React.Component<PropsType> {\n render() {\n const { source, startRule } = this.props;\n const spans = createSpans(source);\n return (\n <span className={cx(`Expression-node`, `Expression-${startRule}`)}>\n {spans.map(({ kind, text }, index) => (\n <span key={index} className={cx(`Expression-node`, `Expression-${kind}`)}>\n {text}\n </span>\n ))}\n </span>\n );\n }\n}\n","import React, { forwardRef } from 'react';\nimport ReactDOM from 'react-dom';\nimport ReactDOMServer from 'react-dom/server';\n\nimport { getCaretPosition, saveSelection, setCaretPosition } from '../../../utils/selection';\n\nimport TokenizedExpression from './tokenized-expression';\n\ninterface PropsType {\n forwardedRef?: any;\n style: object;\n className: string;\n value: string;\n onFocus: (e?: any) => any;\n onBlur: (e?: any) => any;\n onChange: (e?: any) => any;\n onKeyDown: (e?: any) => any;\n onClick: (e?: any) => any;\n}\n\nclass TokenizedInput extends React.Component<PropsType> {\n static defaultProps = {\n style: {},\n };\n\n componentDidMount() {\n (ReactDOM.findDOMNode(this) as HTMLDivElement).focus();\n this.componentDidUpdate();\n document.addEventListener('selectionchange', this.onSelectionChange, false);\n }\n\n componentDidUpdate() {\n const inputNode = ReactDOM.findDOMNode(this);\n const restore = saveSelection(inputNode);\n\n (inputNode as HTMLDivElement).innerHTML = ReactDOMServer.renderToStaticMarkup(\n <TokenizedExpression source={this.props.value || ''} startRule={'expression'} />,\n );\n if (document.activeElement === inputNode) {\n restore();\n }\n }\n\n componentWillUnmount() {\n document.removeEventListener('selectionchange', this.onSelectionChange, false);\n }\n\n onSelectionChange = (e: any) => {\n (ReactDOM.findDOMNode(this) as HTMLInputElement).selectionStart = getCaretPosition(\n ReactDOM.findDOMNode(this),\n );\n };\n\n setValue(value: string) {\n (ReactDOM.findDOMNode(this) as HTMLInputElement).value = value;\n this.props.onChange({ target: { value } });\n }\n\n onInput = (e: any) => {\n this.setValue(e.target.textContent);\n };\n\n render() {\n const { className, onFocus, onBlur, onKeyDown, onClick, style, forwardedRef } = this.props;\n return (\n <div\n ref={forwardedRef}\n className={className}\n style={{ ...style }}\n contentEditable\n spellCheck={false}\n onInput={this.onInput}\n onFocus={onFocus}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n onClick={onClick}\n />\n );\n }\n}\n\nexport default forwardRef(function TokenizedInputWithForwardedRef(\n props: Omit<PropsType, 'forwardedRef'> & { ref?: any },\n ref,\n) {\n return <TokenizedInput forwardedRef={ref} {...props} />;\n});\n","import { throttle, debounce } from './helper';\n\ntype EventStackType = {\n [propName: number]: Function;\n};\n\ninterface ResetEvent {\n eventStack: EventStackType;\n funcId: number;\n\n addEvent(a: Function, c: any): number;\n removeEvent(a: number): void;\n reset(): void;\n}\n\nclass WinResetEvent implements ResetEvent {\n eventStack: EventStackType = {};\n funcId: number = 0;\n\n constructor() {\n this.reset();\n }\n\n addEvent(fn: Function, context: any = null, delay: number = 200): number {\n this.funcId++;\n this.eventStack[this.funcId] = throttle(fn.bind(context), delay);\n return this.funcId;\n }\n\n removeEvent(funcId: number) {\n delete this.eventStack[funcId];\n }\n\n reset() {\n window.addEventListener('resize', () => {\n Object.values(this.eventStack).forEach((cb) => {\n typeof cb === 'function' && cb();\n });\n });\n }\n}\n\nexport const winResetEvent = new WinResetEvent();\n","import * as React from 'react';\nimport { useRef, useEffect, forwardRef, useImperativeHandle } from 'react';\nimport ReactDOM from 'react-dom';\n\ninterface PropsType {\n didUpdate?: Function;\n getContainer: Function;\n children?: React.ReactNode;\n}\n\nconst Portal = forwardRef((props: PropsType, ref) => {\n const { didUpdate, getContainer, children = null } = props;\n\n const containerRef: any = useRef();\n\n // Ref return nothing, only for wrapper check exist\n useImperativeHandle(ref, () => ({}));\n\n // Create container in client side with sync to avoid useEffect not get ref\n const initRef = useRef(false);\n if (!initRef.current) {\n containerRef.current = getContainer();\n initRef.current = true;\n }\n\n useEffect(() => {\n setTimeout(() => {\n didUpdate?.(props, containerRef.current);\n }, 0);\n });\n\n useEffect(() => {\n return () => {\n containerRef.current?.parentNode?.removeChild(containerRef.current);\n };\n }, []);\n\n return containerRef.current ? ReactDOM.createPortal(children, containerRef.current) : null;\n});\n\nexport default Portal;\n","import * as React from 'react';\n\nimport {\n getWindowSize,\n getScrollTop,\n getElementLeft,\n getElementTop,\n getContainerVisibleHeight,\n} from '../utils/helper-dom';\nimport { winResetEvent } from '../utils/event';\nimport Portal from '../common/Portal';\n\nfunction returnDocument(element?: any): Document {\n if (element) {\n return element.ownerDocument;\n }\n return window.document;\n}\n\nconst outSpacing = 10;\n\nexport function generateTrigger(PortalComponent: any) {\n class Trigger extends React.Component<PropsType> {\n resizeObserver: ResizeObserver | null = null; // 显式声明 resizeObserver 属性\n resetId: number = -1; // 监听窗口改变事件id 用于组件销毁的时候清除事件\n\n static defaultProps = {\n visible: false, // 是否显示\n children: null,\n };\n\n ref: any = React.createRef();\n\n constructor(props: PropsType) {\n super(props);\n }\n\n componentDidMount() {\n this.resetId = winResetEvent.addEvent(this.didUpdate, this, 300);\n this.props.container && this.props.container.addEventListener('scroll', this.didUpdate);\n this.bindEvent();\n // 延迟绑定 ResizeObserver 到 ensure the element is ready\n this.initResizeObserver();\n }\n componentDidUpdate(prevProps: PropsType) {\n // 如果 children 发生变化,重新初始化观察器\n if (prevProps.children !== this.props.children) {\n this.initResizeObserver();\n }\n }\n\n componentWillUnmount() {\n winResetEvent.removeEvent(this.resetId);\n this.props.container && this.props.container.removeEventListener('scroll', this.didUpdate);\n\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n this.resizeObserver = null;\n }\n }\n\n // children高度变化后,从新计算高度\n initResizeObserver = () => {\n const targetNode = this.ref.current;\n\n if (!targetNode) return;\n\n // 如果已经存在 ResizeObserver,先断开连接\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n\n // 初始化 ResizeObserver 并开始观察目标节点\n this.resizeObserver = new ResizeObserver((entries) => {\n entries.forEach((entry) => {\n this.didUpdate();\n });\n });\n\n this.resizeObserver.observe(targetNode);\n };\n bindEvent = () => {\n let that = this;\n returnDocument().body.addEventListener(\n 'click',\n function (e): void | false {\n let ele: any = e.target;\n\n while (ele != null) {\n if (ele === that.props.node) {\n return false;\n }\n ele = ele.parentNode;\n }\n that.closePopup();\n },\n false,\n );\n };\n\n closePopup = () => {\n this.props.visible && this.props.closable && this.props.hideVisible();\n };\n\n attachParent = (popupContainer: HTMLSpanElement) => {\n let mountNode = this.props.container || returnDocument().body;\n mountNode.appendChild(popupContainer);\n };\n\n getCurrentNodePos = () => {\n const { node, container } = this.props;\n return {\n x: getElementLeft(node) - getElementLeft(container),\n y: getElementTop(node) - getElementTop(container),\n t: getElementTop(container),\n h: node.offsetHeight,\n };\n };\n\n getContainer = () => {\n let pos = this.getCurrentNodePos();\n let { innerSpacing = 10, zIndex } = this.props;\n\n const popupContainer: HTMLSpanElement = returnDocument().createElement('span');\n popupContainer.style.position = 'absolute';\n popupContainer.style.top = '0px';\n popupContainer.style.left = '0px';\n popupContainer.style.transform = `translateX(${pos.x}px) translateY(${\n pos.y + pos.h + innerSpacing\n }px) translateZ(0px)`;\n popupContainer.style.pointerEvents = 'none';\n popupContainer.style.zIndex = zIndex || '999';\n this.attachParent(popupContainer);\n return popupContainer;\n };\n\n getComponent = () => {\n const posKey = JSON.stringify(this.getCurrentNodePos());\n return (\n <div\n ref={this.ref}\n style={{\n overflowX: 'hidden',\n overflowY: 'auto',\n backgroundColor: '#fff',\n pointerEvents: 'auto',\n transition: 'all 0.3s',\n boxShadow: '0 4px 10px rgba(0,0,0,0.13)',\n borderRadius: 6,\n }}\n onClick={(e) => this.props.closable && e.stopPropagation()}\n onMouseDown={(e) => e.stopPropagation()}\n >\n {React.cloneElement(this.props.children, {\n key: posKey,\n didUpdate: this.didUpdate,\n })}\n </div>\n );\n };\n\n didUpdate = (): void | false => {\n if (!this.props.node) return false;\n\n let { innerSpacing = 10, container } = this.props;\n let pos = this.getCurrentNodePos();\n let posY = pos.y - getScrollTop(container);\n\n if (!this.ref) return false;\n let realHeight = this.ref?.current?.childNodes?.[0]?.offsetHeight || 0;\n if (!realHeight) return false;\n let { height: winH } = getWindowSize();\n let containerH = getContainerVisibleHeight(container);\n let downH = (containerH || winH) - posY - pos.h; // 元素下面可用高度\n\n let maxHeight = 0;\n let topHeight = getScrollTop(container);\n if (downH >= posY || realHeight <= downH - innerSpacing - outSpacing) {\n // 下面比上面宽敞 或 下面足够放下所有 放下面\n maxHeight = Math.min(realHeight, downH - innerSpacing - outSpacing);\n topHeight += posY + pos.h + innerSpacing;\n } else {\n // 放上面\n maxHeight = Math.min(realHeight, posY - innerSpacing - outSpacing);\n topHeight += posY - innerSpacing - maxHeight;\n }\n this.ref.current.offsetParent.style.transform = `translateX(${pos.x}px) translateY(${topHeight}px) translateZ(0px)`;\n this.ref.current.offsetParent.style.transition = 'all 0.3s';\n this.ref.current.style.cssText += `max-height: ${maxHeight}px`;\n };\n\n render() {\n let portal = null;\n if (this.props.visible) {\n portal = (\n <PortalComponent getContainer={this.getContainer} didUpdate={this.didUpdate}>\n {this.getComponent()}\n </PortalComponent>\n );\n }\n return portal;\n }\n }\n\n return Trigger;\n}\n\nexport default generateTrigger(Portal);\n\ninterface PropsType {\n visible: boolean;\n children: any;\n hideVisible: Function;\n node: any;\n innerSpacing?: number;\n container?: HTMLDivElement;\n zIndex?: string | null;\n closable?: boolean;\n}\n","/**\n * 选择保留哪些表字段\n * 谁在用?\n * 1、数据模块\n * 2、关联模块\n */\nimport './index.less';\nimport React, { useEffect, useMemo, useState } from 'react';\nimport cloneDeep from 'lodash/cloneDeep';\nimport cx from 'classnames';\nimport { Button, Modal, Input, Tooltip } from '@gingkoo/pandora';\n\nimport { MetaData_ColumnsType } from '../../../store/types';\nimport { __ } from '../../../locale';\nimport { NotSelectIcon, SelectIcon } from '../../icons';\nimport { useStore } from '../../../hooks/use-provider';\nimport { uuidv4 } from '../../../utils/helper';\nimport { changeFieldAlias } from '../../../utils';\nimport { SearchIcon } from '../../icons';\n\ninterface PropsType {\n data: MetaData_ColumnsType[]; // 列表数据\n groupIndex: number;\n onChange: (record: MetaData_ColumnsType[]) => void; // 选中回调事件\n}\n\n// 选择表中参数\nconst SelectColumn = ({ data = [], groupIndex, onChange }: PropsType) => {\n const [columns, setColumns] = useState<MetaData_ColumnsType[]>([]);\n const [originList, setOriginList] = useState<MetaData_ColumnsType[]>(data.slice());\n const store = useStore();\n const [filterVal, setFilterVal] = useState('');\n\n useEffect(() => {\n let newList = cloneDeep(originList.slice());\n setColumns(\n newList.filter(\n (v: any) =>\n ~(v.name + (v.name_zh || '')).toLocaleLowerCase().indexOf(filterVal.toLocaleLowerCase()),\n ),\n );\n }, [filterVal, originList]);\n\n function onInput(e: any) {\n let val = e.target.value;\n setFilterVal(val);\n }\n\n const isAllSelect = useMemo(() => {\n return originList.filter((v: any) => v.select).length === originList.length;\n }, [originList]);\n\n const AllSelectElement = useMemo(() => {\n if (isAllSelect) {\n return (\n <>\n <div className='selected mr-2 flex iteams-center justify-center'>\n <SelectIcon />\n </div>\n {__('SqlQueryBuilder.selectColumnAll')}\n </>\n );\n } else {\n return (\n <>\n <div className='no-select mr-2 flex iteams-center justify-center'>\n <NotSelectIcon />\n </div>\n {__('SqlQueryBuilder.selectColumnAll')}\n </>\n );\n }\n }, [isAllSelect]);\n\n function onSelect(columns: MetaData_ColumnsType[]) {\n const originalData = cloneDeep(originList); // 原始数据\n const mergedColumns = originalData.map((item) => {\n const match = columns.find((col) => col.fieldUuid === item.fieldUuid);\n return match ? cloneDeep(match) : item; // 可选:是否需要深拷贝 match\n });\n\n setColumns(columns);\n setOriginList(mergedColumns);\n typeof onChange === 'function' && onChange(mergedColumns);\n }\n\n const onChangeFieldAlias = (val: string, i: number) => {\n let fieldAlias = val || '';\n\n Modal.confirm({\n title: __('SqlQueryBuilder.alias'), // 设置别名\n content: (\n <Input\n defaultValue={fieldAlias}\n onChange={(val) => {\n fieldAlias = val;\n }}\n ></Input>\n ),\n onOk: () => {\n let newColumns = cloneDeep(columns);\n let newMetaList = store.metaList[groupIndex].list.slice();\n\n newColumns[i].fieldAlias = fieldAlias;\n newColumns[i].fieldUuid = newColumns[i].fieldUuid || uuidv4('field');\n\n newMetaList = changeFieldAlias(newMetaList, newColumns[i]);\n store.setMeta(newMetaList, groupIndex);\n onSelect(newColumns);\n setTimeout(() => {\n store.setClosable(true);\n }, 0);\n },\n onCancel: () => {\n setTimeout(() => {\n store.setClosable(true);\n }, 0);\n },\n });\n };\n\n return (\n <div className={`Sqb-SelectColumn--box`}>\n <div className='pt-2'>\n <div\n className={cx(`SelectColumn-border mb-2 pb-2 px-2 flex items-center`, {\n // 'events-none': isAllSelect\n })}\n onClick={() => {\n let newColumns = columns.map((v: any) => ({ ...v, select: !isAllSelect }));\n onSelect(newColumns);\n }}\n >\n {AllSelectElement}\n </div>\n <div className={cx(`Sqb-SelectColumn-search m-2 rounded-lg`)}>\n <span className={'px-2'}>\n <SearchIcon />\n </span>\n <input\n type='text'\n autoFocus\n className={'p-1'}\n placeholder={__('data.search')}\n onInput={onInput}\n />\n </div>\n {Array.isArray(columns) &&\n columns.map((v, i) => {\n return (\n <div\n key={v.name}\n className='pb-2 px-2 flex items-center'\n onClick={() => {\n let newColumns = cloneDeep(columns);\n newColumns[i].select = !v.select;\n onSelect(newColumns);\n }}\n >\n {v.select ? (\n <div className='selected mr-2 flex iteams-center justify-center'>\n <SelectIcon />\n </div>\n ) : (\n <div className='no-select mr-2'></div>\n )}\n {v.name}\n {v.name_zh ? ` (${v.name_zh})` : ''}\n {v.fieldAlias ? ` as ${v.fieldAlias}` : ''}\n\n <Tooltip title={__('SqlQueryBuilder.alias')}>\n <Button\n className={':Sqb-TableName-as'}\n shape='circle'\n iconOnly\n primary={!!v.fieldAlias}\n ghost\n icon={'As'}\n size='small'\n onClick={(e) => {\n e.stopPropagation();\n store.setClosable(false);\n let newColumns = cloneDeep(columns);\n onChangeFieldAlias(newColumns[i].fieldAlias || '', i);\n }}\n ></Button>\n </Tooltip>\n </div>\n );\n })}\n </div>\n </div>\n );\n};\n\nexport default SelectColumn;\n","import { SQL_COLUMN_TYPE } from '../../store/enum';\n\nexport const NUMBER_GROUP = [SQL_COLUMN_TYPE.FLOAT, SQL_COLUMN_TYPE.LONG, SQL_COLUMN_TYPE.CURRENCY];\nexport const STRING_GROUP = [SQL_COLUMN_TYPE.STRING];\nexport const DATE_GROUP = [SQL_COLUMN_TYPE.DATE];\n","/**\n * 选择表字段当条件\n * 谁在用?\n * 1、关联模块\n * 2、过滤器模块\n * 3、聚合模块\n * 4、排序模块\n */\nimport './index.less';\nimport React, { useEffect, useState } from 'react';\nimport { Menu, Popover } from '@gingkoo/pandora';\nimport cloneDeep from 'lodash/cloneDeep';\nimport cx from 'classnames';\n\nimport { ColumnsPopupThemeEnum, SQL_GROUP_TYPE, SQL_COLUMN_TYPE } from '../../../store/enum';\nimport { SummarizeAlias } from '../../../store/helper';\nimport { MetaData_ColumnsType, MetaJoin_TalbeType } from '../../../store/types';\nimport { DatasourceType } from '../../../types';\nimport { __ } from '../../../locale';\nimport { NUMBER_GROUP, DATE_GROUP } from '../const';\n\nimport { useStore } from '../../../hooks/use-provider';\nimport { replaceTpl } from '../../../utils/helper';\n\nimport {\n SearchIcon,\n TableIcon,\n CircleIcon,\n LetterAaIcon,\n CalendarIcon,\n WellIcon,\n ForeignKeyIcon,\n UpArrowIcon2,\n DownArrowIcon2,\n RightArrowIcon,\n} from '../../icons';\n\nexport const DATE_GROUP_MAP = new Map([\n ['分', '分'],\n ['时', '时'],\n ['天', '天'],\n ['周', '周'],\n ['月', '月'],\n ['季度', '季度'],\n ['一小时内的分钟数', '一小时内的分钟数'],\n ['一天内的小时数', '一天内的小时数'],\n ['一周内的天数', '一周内的天数'],\n ['一月内的天数', '一月内的天数'],\n ['一年内的天数', '一年内的天数'],\n ['一年的星期数', '一年的星期数'],\n ['一年的月数', '一年的月数'],\n]);\n\nexport const NUMBER_GROUP_MAP = new Map([\n ['自动间隔', '自动分组'],\n ['10个刻度间隔', '10 刻度间隔'],\n ['间隔50', '50 刻度间隔'],\n ['间隔100', '100 刻度间隔'],\n ['无间隔', ''],\n]);\n\nconst IconMap: any = {\n CHAR: <LetterAaIcon />,\n VARCHAR: <LetterAaIcon />,\n CLOB: <LetterAaIcon />,\n DOUBLE: <WellIcon />,\n SMALLINT: <WellIcon />,\n BIGINT: <WellIcon />,\n INTEGER: <WellIcon />,\n TIMESTAMP: <CalendarIcon />,\n PK: <CircleIcon />,\n FK: <ForeignKeyIcon />,\n};\n\nconst OPEN_GROUP = false; // mr.chen 说不弄这块 弄个开关防止后面要用\n\nexport interface ColumnType {\n table: string; // 表名\n tableId: string; //表id\n tableUuid: string; // 表唯一标识\n fieldUuid: string;\n fieldAlias: string;\n alias: string; // 表的别名\n name: string; // 字段名\n database_type: SQL_COLUMN_TYPE | ''; // 字段类型\n sql?: string; // 聚合过来会带上sql字段\n id: string; //字段id\n datasourceId: string; // 数据源id\n datasourceName: string; // 数据源名\n quotes?: string; //展示\n // column: string;\n // column_id: string;\n table2?: Omit<MetaJoin_TalbeType, 'column' | 'column_id'> | null;\n}\n\nexport interface ColumnGroupType {\n condition: string; // 条件 聚合by过来的会有这个\n quotes: string; // 展示用户看的 组装的文字\n}\n\nexport type DataType = Partial<DatasourceType> & {\n table: string; // 表名\n tableId: string; // 表id\n tableUuid: string; // 表唯一标识\n alias: string; // 表的别名\n columns: MetaData_ColumnsType[];\n};\n\ninterface PropsType {\n data: DataType[];\n value: ColumnType & Partial<ColumnGroupType>;\n theme: ColumnsPopupThemeEnum;\n isGroup?: boolean; // isGroup 为true 则选择函数用 onGroup 否则 用 onSelect (只有聚合的by列表才会为true)\n onSelect?: (\n record: ColumnType &\n DatasourceType & {\n realName: string;\n },\n ) => void;\n onGroup?: (\n record: ColumnType &\n ColumnGroupType & {\n realName?: string;\n },\n ) => void;\n didUpdate?: Function; // 刷新弹框\n}\ntype TableListType = DataType & { open: boolean; searchText: string };\n\nconst SelectJoinColumn = ({\n data = [],\n value: _value,\n theme = ColumnsPopupThemeEnum.skyBlue,\n onSelect,\n isGroup,\n onGroup,\n didUpdate,\n}: PropsType) => {\n const store = useStore();\n const [value, setValue] = useState(_value); // 当前选择的字段\n const [curTable, setCurTable] = useState(_value.tableUuid); // 当前选择的表\n const [curColumn, setCurColumn] = useState(_value.name); // 当前选择的字段\n\n const [tableList, setTableList] = useState<TableListType[]>(\n data.map((v: DataType, i: number) => {\n let open = !i && !_value.tableUuid ? true : v.tableUuid === _value.tableUuid; // TODO.这里只判断表名相等 没有用了 因为表上面加了一层数据源 先这样吧\n return {\n ...v,\n open,\n searchText: '',\n columns: v.columns.slice(),\n };\n }),\n );\n useEffect(() => {\n setValue(_value);\n setCurTable(_value.tableUuid);\n setCurColumn(_value.name);\n }, [_value]);\n useEffect(() => {\n setTableList(\n data.map((v: DataType, i: number) => {\n let open = !i && !_value.tableUuid ? true : v.tableUuid === _value.tableUuid; // TODO.这里只判断表名相等 没有用了 因为表上面加了一层数据源 先这样吧\n return {\n ...v,\n open,\n searchText: '',\n columns: v.columns.slice(),\n };\n }),\n );\n }, [data, _value]);\n\n useEffect(() => {\n didUpdate?.();\n }, [tableList]);\n\n function onInput(val: string, tableAlias: string) {\n let newData = cloneDeep(tableList).map((v: TableListType, i: number) => {\n if (v.alias === tableAlias) {\n return {\n ...v,\n columns: data[i]?.columns.filter(\n (v: MetaData_ColumnsType) =>\n ~(v.name + (v.name_zh || '')).toLocaleLowerCase().indexOf(val.toLocaleLowerCase()),\n ),\n searchText: val,\n };\n }\n return v;\n });\n setTableList(newData);\n }\n\n const _condition = value?.condition || '';\n return (\n <div className={cx(`Sqb-SelectColumns--box ${theme}`)}>\n <div style={{ width: isGroup && OPEN_GROUP ? 400 : 300 }}>\n {tableList.map((tableItem: TableListType) => {\n let {\n alias: tableAlias,\n table,\n tableId,\n columns,\n open,\n searchText,\n datasourceId = '',\n datasourceName = '',\n tableUuid = '',\n } = tableItem;\n let isMultiple = tableList.length > 1;\n\n let isSummarize = tableAlias === SummarizeAlias;\n return (\n <div key={tableUuid || tableAlias}>\n {!isSummarize && (\n <div className={cx(`Sqb-List-section`)}>\n <div\n className={cx(`Sqb-List-title mx-4 pb-4 pt-4`, {\n shrink: isMultiple,\n active: open,\n })}\n onClick={(): void => {\n if (!isMultiple) return void 0;\n let newTables = cloneDeep(tableList);\n if (open) {\n setTableList(\n newTables.map((v: TableListType) => ({\n ...v,\n open: tableUuid === v.tableUuid ? false : v.open,\n })),\n );\n } else {\n setTableList(\n newTables.map((v: TableListType) => ({\n ...v,\n open: tableUuid === v.tableUuid || v.alias === SummarizeAlias,\n })),\n );\n }\n }}\n >\n <div className='List-item'>\n <span className={'List-item-icon'}>\n <TableIcon />\n </span>\n <div style={{ overflow: 'hidden' }}>\n <h3\n className={'List-item-title ml-2'}\n title={\n datasourceName\n ? `${datasourceName}.${tableAlias || table}`\n : tableAlias || table\n }\n >\n {datasourceName\n ? `${datasourceName}.${tableAlias || table}`\n : tableAlias || table}\n </h3>\n </div>\n {isMultiple && (\n <span className={'List-title-arrow'}>\n {open ? <UpArrowIcon2 /> : <DownArrowIcon2 />}\n </span>\n )}\n </div>\n </div>\n </div>\n )}\n\n {(open || isSummarize) && (\n <>\n {!isSummarize && (\n <div className={cx(`Sqb-List-section`)}>\n <div className={cx(`Sqb-List-search m-2 rounded-lg`)}>\n <span className={'px-2'}>\n <SearchIcon />\n </span>\n <input\n type='text'\n className={'p-2'}\n autoFocus\n value={searchText}\n placeholder={__('joinData.search')}\n onChange={() => {}}\n onInput={(e: any) => onInput(e.target.value, tableAlias)}\n />\n </div>\n </div>\n )}\n {Array.isArray(columns) &&\n columns.map((v: MetaData_ColumnsType & { sql?: string }) => {\n let { special_type, database_type, name, realName = '' } = v;\n\n let groupe: SQL_GROUP_TYPE = SQL_GROUP_TYPE.STRING;\n // @ts-ignore\n if (~NUMBER_GROUP.indexOf(database_type)) {\n groupe = SQL_GROUP_TYPE.NUMBER;\n }\n // @ts-ignore\n if (~DATE_GROUP.indexOf(database_type)) {\n groupe = SQL_GROUP_TYPE.DATE;\n }\n\n let showCondition =\n curColumn === name && curTable === tableUuid && _condition;\n return (\n <div className={cx(`Sqb-List-section`)} key={name}>\n <div\n className={cx(`Sqb-List-item mx-2`, {\n active: curColumn === name && curTable === tableUuid,\n })}\n onClick={() => {\n if (isGroup && typeof onGroup === 'function') {\n let condition = '';\n let quotes = name;\n if (OPEN_GROUP) {\n if (groupe === SQL_GROUP_TYPE.DATE) {\n condition = '月';\n }\n if (groupe === SQL_GROUP_TYPE.NUMBER) {\n condition = '自动分组';\n }\n if (condition) {\n quotes += ': ' + condition;\n }\n }\n return onGroup({\n ..._value,\n tableUuid: tableUuid || _value.tableUuid,\n ...v,\n table,\n tableId,\n alias: tableAlias,\n name,\n database_type,\n condition,\n quotes,\n realName,\n });\n }\n\n typeof onSelect === 'function' &&\n onSelect({\n ..._value,\n tableUuid: tableUuid || _value.tableUuid,\n ...v,\n table,\n tableId,\n alias: tableAlias,\n name,\n database_type,\n sql: v.sql || '',\n datasourceId,\n datasourceName,\n realName,\n });\n }}\n >\n <div className={'p-2 List-item'}>\n <span className={'List-item-icon'}>\n {IconMap[special_type || database_type] || <LetterAaIcon />}\n </span>\n <div>\n <h4 className={'List-item-title ml-2'}>\n {replaceTpl(store.fieldNameTpl, v)}\n {/* {name} */}\n </h4>\n </div>\n </div>\n {OPEN_GROUP && isGroup && groupe !== SQL_GROUP_TYPE.STRING && (\n <Popover\n placement='rt'\n onVisibleChange={(visible) => {\n if (visible) {\n setCurTable(tableUuid);\n setCurColumn(name);\n store.setClosable(false);\n } else {\n setCurTable(tableUuid);\n setCurColumn(value.name);\n setTimeout(() => store.setClosable(true), 300);\n }\n }}\n content={\n <Menu\n className='menu-list'\n selectedKeys={showCondition ? [_condition] : []}\n onClickMenuItem={(key, domEvent) => {\n domEvent.stopPropagation();\n store.setClosable(true);\n if (isGroup && typeof onGroup === 'function') {\n let condition = '';\n let quotes = name;\n if (groupe === SQL_GROUP_TYPE.DATE) {\n condition = DATE_GROUP_MAP.get(key) as string;\n }\n if (groupe === SQL_GROUP_TYPE.NUMBER) {\n condition = NUMBER_GROUP_MAP.get(key) as string;\n }\n if (condition) {\n quotes += ': ' + condition;\n }\n return onGroup({\n ..._value,\n tableUuid: tableUuid || _value.tableUuid,\n ...v,\n table,\n tableId,\n alias: tableAlias,\n name,\n database_type,\n condition: key,\n quotes,\n });\n }\n }}\n >\n {(groupe === SQL_GROUP_TYPE.NUMBER\n ? Array.from(NUMBER_GROUP_MAP.keys())\n : Array.from(DATE_GROUP_MAP.keys())\n ).map((v: string) => {\n return <Menu.Item key={v}>{v}</Menu.Item>;\n })}\n </Menu>\n }\n trigger='click'\n >\n <div className='Field-extra' onClick={(e) => e.stopPropagation()}>\n <h4>\n {groupe === SQL_GROUP_TYPE.NUMBER\n ? showCondition\n ? _condition\n : __('joinData.automatic grouping')\n : __('joinData.byTheHour')}\n </h4>\n <RightArrowIcon />\n </div>\n </Popover>\n )}\n </div>\n </div>\n );\n })}\n </>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n};\n\nexport default SelectJoinColumn;\n","/**\n * 关联模块 选择表字段\n */\nimport './index.less';\nimport React, { useEffect, useMemo, useState } from 'react';\nimport { FfPlus, FfLine, Repeat, RelatedWork, Function } from '@gingkoo/pandora-icons';\nimport {\n Menu,\n Button,\n Tooltip,\n Input,\n Modal2,\n Select,\n InputNumber,\n Dropdown,\n DatePicker,\n} from '@gingkoo/pandora';\nimport cx from 'classnames';\nimport { ChevronODown } from '@gingkoo/pandora-icons';\n\nimport moment from 'dayjs';\nimport { __, isEn } from '../../../locale';\nimport { ColumnsPopupThemeEnum, SQL_COLUMN_TYPE, SQL_GROUP_TYPE } from '../../../store/enum';\nimport { SummarizeAlias } from '../../../store/helper';\nimport { MetaFilter_Item, MetaJoin_TalbeType, Filter_Formula } from '../../../store/types';\nimport { NUMBER_GROUP, DATE_GROUP } from '../const';\nimport SelectList from '../select-list';\n\nimport { SelectJoinColumn } from '../index';\nimport { DataType, ColumnType } from '../select-join-column';\nimport { LeftArrowIcon } from '../../icons';\nimport { useStore } from '../../../hooks/use-provider';\n\nconst { RangePicker } = DatePicker;\n\nconst NUMBER_LIST = [\n '等于',\n '不等于',\n '大于',\n '小于',\n '介于之间',\n '大于或等于',\n '小于或等于',\n '为空',\n '不为空',\n 'In',\n 'Not In',\n];\nconst STRING_LIST = [\n '等于',\n '不等于',\n '包含',\n '不包含',\n '为空',\n '不为空',\n '以...开始',\n '以...结束',\n 'In',\n 'Not In',\n];\nconst DATE_LIST = [\n // '前', '下一个', '当前',\n '早于',\n '晚于',\n // '在',\n '介于之间',\n '是空的',\n '不是空的',\n];\n\ninterface PropsType {\n data: DataType[];\n value: MetaFilter_Item;\n onChange: (reocrd: MetaFilter_Item) => void;\n didUpdate?: Function; // 刷新弹框\n isCustom?: boolean; //是否是自定义 如果是自定义可以选择不要结果\n container?: any;\n}\n\nconst SelectFilterColumn = ({\n data = [],\n value,\n onChange,\n didUpdate,\n isCustom = false,\n container = null,\n}: PropsType) => {\n const [curColumn, setCurColumn] = useState<ColumnType>(value);\n const [condition, setCondition] = useState<string>(value.condition);\n const [valType, setValType] = useState<'string' | 'constant' | 'field' | ''>(\n value.valType || 'string',\n );\n const [curVal, setVal] = useState<string[]>(value.val);\n const [constantName, setConstantName] = useState<string>(value.constantName || '');\n\n const [formula, setFormula] = useState<Filter_Formula>(value.formula || {});\n const store = useStore();\n\n let table2Selected = Boolean(curColumn.table2?.name);\n\n const disabled = useMemo(() => {\n if (!condition) return true;\n\n if (~['无需结果'].indexOf(condition)) {\n return false;\n }\n if (curColumn.table2?.id && ~['等于', '不等于'].indexOf(condition)) {\n return false;\n }\n if (~['为空', '不为空', '是空的', '不是空的'].indexOf(condition)) {\n return false;\n } else if (~['前', '下一个', '介于之间'].indexOf(condition)) {\n if (curVal[0] && curVal[1]) {\n return false;\n }\n } else if (curVal.length && curVal.join(',')) {\n return false;\n }\n return true;\n }, [curVal, condition, curColumn, isCustom]);\n\n useEffect(() => {\n didUpdate?.();\n }, [condition]);\n\n const getQuotesName = (name: string) => {\n switch (formula.type) {\n case 'SUBSTR':\n // let str = formula.params?.join(',');\n return `SUBSTR(${name},${formula?.params?.[1]},${formula?.params?.[2]})`;\n\n default:\n return name;\n }\n };\n\n const getText = (v: string) => {\n return {\n 等于: 'filter.equal',\n 不等于: 'filter.notEqual',\n 大于: 'filter.greaterThan',\n 小于: 'filter.lessThan',\n 介于之间: 'filter.inBetween',\n 大于或等于: 'filter.greaterThanOrEqualTo',\n 小于或等于: 'filter.lessThanOrEqualTo',\n 为空: 'filter.empty',\n 不为空: 'filter.notEmpty',\n 包含: 'filter.contain',\n 不包含: 'filter.notInclude',\n '以...开始': 'filter.startWith',\n '以...结束': 'filter.endWith',\n 早于: 'filter.earlierThan',\n 晚于: 'filter.laterThan',\n 是空的: 'filter.isEmpty',\n In: 'filter.within',\n 'Not In': 'filter.withnotin',\n 无需结果: 'filter.notresults',\n }[v]!;\n };\n\n function generateQuotes(val: string[], curColumn: ColumnType) {\n let [firstVal = '', secondVal = ''] = val;\n let quotes = '';\n if (condition === '以...开始') {\n if (isEn) {\n quotes = getQuotesName((curColumn as ColumnType).name) + ' ' + `startWith ${firstVal}`;\n } else {\n quotes = getQuotesName((curColumn as ColumnType).name) + ' ' + `以 ${firstVal} 开始`;\n }\n } else if (condition === '以...结束') {\n if (isEn) {\n quotes = getQuotesName((curColumn as ColumnType).name) + ' ' + `endWith ${firstVal}`;\n } else {\n quotes = getQuotesName((curColumn as ColumnType).name) + ' ' + `以 ${firstVal} 结束`;\n }\n } else if (condition === '介于之间') {\n if (isEn) {\n quotes =\n getQuotesName((curColumn as ColumnType).name) +\n ' ' +\n `Between ${firstVal} and ${secondVal}`;\n } else {\n quotes =\n getQuotesName((curColumn as ColumnType).name) + ' ' + `介于${firstVal}和${secondVal}之间`;\n }\n } else if (condition === '前') {\n if (isEn) {\n quotes =\n getQuotesName((curColumn as ColumnType).name) + ' ' + `previous ${firstVal}${secondVal}`;\n } else {\n quotes =\n getQuotesName((curColumn as ColumnType).name) + ' ' + `上一个${firstVal}${secondVal}`;\n }\n } else if (condition === '下一个') {\n if (isEn) {\n quotes =\n getQuotesName((curColumn as ColumnType).name) + ' ' + `next ${firstVal}${secondVal}`;\n } else {\n quotes =\n getQuotesName((curColumn as ColumnType).name) + ' ' + `下一个${firstVal}${secondVal}`;\n }\n } else if (condition === '在') {\n if (isEn) {\n quotes = getQuotesName((curColumn as ColumnType).name) + ' is ' + firstVal;\n } else {\n quotes = getQuotesName((curColumn as ColumnType).name) + ' 是 ' + firstVal;\n }\n } else if (condition === '是空的') {\n if (isEn) {\n quotes = getQuotesName((curColumn as ColumnType).name) + ' is empty';\n } else {\n quotes = getQuotesName((curColumn as ColumnType).name) + ' 为空';\n }\n } else if (condition === '不是空的') {\n if (isEn) {\n quotes = getQuotesName((curColumn as ColumnType).name) + ' not empty';\n } else {\n quotes = getQuotesName((curColumn as ColumnType).name) + ' 不为空';\n }\n } else if (condition === '当前') {\n if (firstVal === '天') {\n if (isEn) {\n quotes = getQuotesName((curColumn as ColumnType).name) + ' ' + `today`;\n } else {\n quotes = getQuotesName((curColumn as ColumnType).name) + ' ' + `今天`;\n }\n } else {\n if (isEn) {\n quotes = getQuotesName((curColumn as ColumnType).name) + ' ' + `this is ${firstVal}`;\n } else {\n quotes = getQuotesName((curColumn as ColumnType).name) + ' ' + `这个${firstVal}`;\n }\n }\n } else if (condition === 'In') {\n let cond = __('filter.within');\n quotes = getQuotesName((curColumn as ColumnType).name) + ' ' + cond + ' ' + `(${firstVal})`;\n } else if (condition === 'Not In') {\n let cond = __('filter.withnotin');\n quotes = getQuotesName((curColumn as ColumnType).name) + ' ' + cond + ' ' + `(${firstVal})`;\n } else {\n let cond = __(\n {\n 等于: 'filter.equal',\n 不等于: 'filter.notEqual',\n 大于: 'filter.greaterThan',\n 小于: 'filter.lessThan',\n 介于之间: 'filter.inBetween',\n 大于或等于: 'filter.greaterThanOrEqualTo',\n 小于或等于: 'filter.lessThanOrEqualTo',\n 为空: 'filter.empty',\n 不为空: 'filter.notEmpty',\n 包含: 'filter.contain',\n 不包含: 'filter.notInclude',\n '以...开始': 'filter.startWith',\n '以...结束': 'filter.endWith',\n 早于: 'filter.earlierThan',\n 晚于: 'filter.laterThan',\n 是空的: 'filter.isEmpty',\n }[condition]!,\n );\n\n if (curColumn.table2?.id) {\n quotes =\n getQuotesName((curColumn as ColumnType).name) + ' ' + cond + ' ' + curColumn.table2.name;\n } else {\n quotes = getQuotesName((curColumn as ColumnType).name) + ' ' + cond + ' ' + firstVal;\n }\n }\n return quotes;\n }\n\n function addFilter(): void {\n if (disabled) return void 0;\n let quotes = generateQuotes(curVal, curColumn);\n typeof onChange === 'function' &&\n onChange({\n ...(curColumn as ColumnType),\n formula: formula,\n val: curVal, // 选择结果 如果有两个 长度就为2\n constantName: constantName, //变量字段\n valType: valType, //是否是选择字段\n condition, // 选择条件\n quotes, // 前端显示用户看的文字\n groupSql: curColumn.alias === SummarizeAlias ? curColumn.sql : '',\n });\n }\n\n function goPrevPage() {\n setCurColumn({\n table: '', // 表名\n tableId: '', // 表名\n tableUuid: '', // 表名\n fieldAlias: '',\n fieldUuid: '',\n alias: '', // 表的别名\n name: '', // 字段名\n id: '', // 字段名\n sql: '',\n datasourceId: '',\n datasourceName: '',\n database_type: '', // 字段类型\n });\n setCondition('');\n setFormula({});\n setVal([]);\n }\n\n function getData(data: ColumnType) {\n let { database_type } = data;\n let columnType: SQL_COLUMN_TYPE = database_type.toUpperCase() as SQL_COLUMN_TYPE;\n let conditions = STRING_LIST;\n let type: SQL_GROUP_TYPE = SQL_GROUP_TYPE.STRING;\n if (NUMBER_GROUP.includes(columnType)) {\n conditions = NUMBER_LIST;\n type = SQL_GROUP_TYPE.NUMBER;\n } else if (DATE_GROUP.includes(columnType)) {\n conditions = DATE_LIST;\n type = SQL_GROUP_TYPE.DATE;\n }\n if (isCustom) {\n conditions = ['无需结果', ...conditions];\n }\n return { columnType, type, conditions };\n }\n\n function renderFilter(type: SQL_GROUP_TYPE, conditionText: string) {\n let [firstVal, secondVal] = curVal;\n\n if (~['为空', '不为空', '是空的', '不是空的'].indexOf(conditionText)) {\n return null;\n } else if (conditionText === '介于之间') {\n if (type === SQL_GROUP_TYPE.NUMBER) {\n return (\n <div style={{ display: 'flex', flexDirection: 'column' }}>\n <Input\n className='input'\n placeholder={__('filter.enterANumber')}\n value={firstVal || ''}\n onInput={(e: any) => {\n let newVal = curVal.slice();\n newVal[0] = e.target.value;\n setVal(newVal);\n }}\n />\n <Input\n className='input'\n placeholder={__('filter.enterANumber')}\n value={secondVal || ''}\n onInput={(e: any) => {\n let newVal = curVal.slice();\n newVal[1] = e.target.value;\n setVal(newVal);\n }}\n />\n </div>\n );\n }\n if (type === SQL_GROUP_TYPE.DATE) {\n return (\n <div>\n <RangePicker\n showTime={{ format: 'HH:mm' }}\n format='YYYY-MM-DD HH:mm'\n className={'w_300'}\n // @ts-ignore\n value={\n firstVal ? [moment(firstVal ?? undefined), moment(secondVal ?? undefined)] : []\n }\n onChange={(val) => {\n // @ts-ignore\n val &&\n setVal([\n moment(val[0]).format('YYYY-MM-DD HH:mm'),\n moment(val[1]).format('YYYY-MM-DD HH:mm'),\n ]);\n }}\n />\n </div>\n );\n }\n } else if (conditionText === '当前') {\n return (\n <div>\n <Dropdown\n trigger={['click']}\n onChange={(key) => {\n setVal([key]);\n }}\n droplist={[\n {\n key: '天',\n label: __('filter.day'),\n },\n {\n key: '周',\n label: __('filter.week'),\n },\n {\n key: '月',\n label: __('filter.month'),\n },\n {\n key: '年',\n label: __('filter.year'),\n },\n ]}\n >\n <Button className='operator-btn' style={{ width: 300 }}>\n {firstVal} <ChevronODown />\n </Button>\n </Dropdown>\n </div>\n );\n } else if (~['前', '下一个'].indexOf(conditionText)) {\n return (\n <div className='flex w_300'>\n <Input\n className='input inline'\n placeholder={__('filter.enterANumber')}\n value={firstVal || ''}\n onInput={(e: any) => {\n let newVal = curVal.slice();\n newVal[0] = e.target.value;\n setVal(newVal);\n }}\n />\n <Dropdown\n trigger={['click']}\n droplist={[\n {\n key: '分',\n label: __('filter.minute'),\n },\n {\n key: '时',\n label: __('filter.hour'),\n },\n {\n key: '天',\n label: __('filter.day'),\n },\n {\n key: '周',\n label: __('filter.week'),\n },\n {\n key: '月',\n label: __('filter.month'),\n },\n {\n key: '年',\n label: __('filter.year'),\n },\n ]}\n onChange={(key) => {\n let newVal = curVal.slice();\n newVal[1] = key;\n setVal(newVal);\n }}\n // droplist={\n // <Menu\n // onClickMenuItem={(key) => {\n // let newVal = curVal.slice();\n // newVal[1] = key;\n // setVal(newVal);\n // }}\n // >\n // <Menu.Item key='分'>{__('filter.minute')}</Menu.Item>\n // <Menu.Item key='时'>{__('filter.hour')}</Menu.Item>\n // <Menu.Item key='天'>{__('filter.day')}</Menu.Item>\n // <Menu.Item key='周'>{__('filter.week')}</Menu.Item>\n // <Menu.Item key='月'>{__('filter.month')}</Menu.Item>\n // <Menu.Item key='年'>{__('filter.year')}</Menu.Item>\n // </Menu>\n // }\n // menu={{\n // items: [\n // {\n // key: '分',\n // label: __('filter.minute'),\n // },\n // {\n // key: '时',\n // label: __('filter.hour'),\n // },\n // {\n // key: '天',\n // label: __('filter.day'),\n // },\n // {\n // key: '周',\n // label: __('filter.week'),\n // },\n // {\n // key: '月',\n // label: __('filter.month'),\n // },\n // {\n // key: '年',\n // label: __('filter.year'),\n // },\n // ],\n // onClick: ({ key }) => {\n // let newVal = curVal.slice();\n // newVal[1] = key;\n // setVal(newVal);\n // },\n // }}\n >\n <Button className='operator-btn' style={{ width: 104 }}>\n {secondVal} <ChevronODown />\n </Button>\n </Dropdown>\n </div>\n );\n } else if (~['早于', '晚于', '在'].indexOf(conditionText)) {\n return (\n <div>\n <DatePicker\n showTime={{ format: 'HH:mm' }}\n format='YYYY-MM-DD HH:mm'\n className={'w_300'}\n value={firstVal ? moment(firstVal) : ''}\n onChange={(val) => {\n if (val) {\n setVal([moment(val).format('YYYY-MM-DD HH:mm')]);\n } else {\n setVal([]);\n }\n }}\n />\n </div>\n );\n } else if (~['In', 'Not In'].indexOf(conditionText)) {\n const options = firstVal?.split(',') || [];\n return (\n <div>\n <Select\n size='large'\n placeholder='可输入回车新增下拉选项'\n allowCreate\n multiple\n value={options}\n onChange={(val) => {\n setVal([val.join(',')]);\n }}\n >\n {options.map((option) => (\n <Select.Option key={option} value={option}>\n {option}\n </Select.Option>\n ))}\n </Select>\n </div>\n );\n } else if (\n ~[\n '等于',\n '不等于',\n '大于',\n '小于',\n '大于或等于',\n '小于或等于',\n '包含',\n '不包含',\n '以...开始',\n '以...结束',\n ].indexOf(conditionText)\n ) {\n return (\n <div>\n <Input\n className='input'\n placeholder={__('filter.pleaseEnter')}\n value={firstVal || ''}\n onInput={(e: any) => {\n let newVal = curVal.slice();\n newVal[0] = e.target.value;\n setVal(newVal);\n }}\n />\n </div>\n );\n }\n return null;\n }\n\n function closePopup2() {\n store.setPopup2({ visible: false });\n }\n\n // 选择变量\n const selectConstant = (e: any) => {\n store.setClosable(false);\n\n store.setPopup2({\n visible: true,\n node: e.currentTarget,\n container: container,\n content: (\n <SelectList\n value={valType}\n list={store.constantList || []}\n onChange={(val: any) => {\n closePopup2();\n let curObj = store.constantList.filter((v: any) => v.value === val)[0];\n\n let newVal = curVal.slice();\n newVal[0] = val;\n setVal(newVal);\n setConstantName(curObj.label);\n store.setClosable(true);\n\n // (newMeta[index] as MetaJoin).expressions[_ind][`${position}_type`] = type;\n // store.setMeta(newMeta, groupIndex);\n }}\n />\n ),\n });\n };\n const onRepeat = (e: any) => {\n store.setClosable(false);\n\n store.setPopup2({\n visible: true,\n node: e.currentTarget,\n container: container,\n content: (\n <SelectList\n value={valType}\n list={[\n { value: 'string', label: __('SqlQueryBuilder.input') },\n { value: 'constant', label: __('customColumn.constant') },\n { value: 'field', label: __('SqlQueryBuilder.columns') },\n ]}\n onChange={(type: any) => {\n closePopup2();\n setConstantName('');\n setValType(type);\n setVal([]);\n setCurColumn({ ...curColumn, table2: null });\n store.setClosable(true);\n\n // (newMeta[index] as MetaJoin).expressions[_ind][`${position}_type`] = type;\n // store.setMeta(newMeta, groupIndex);\n }}\n />\n ),\n });\n };\n\n const nextPage = !!curColumn.name;\n\n const selectTable = (e: any) => {\n store.setClosable(false);\n store.setPopup2({\n visible: true,\n node: e.currentTarget,\n container: container,\n content: (\n <SelectJoinColumn\n data={[...data]}\n value={value as MetaFilter_Item}\n theme={ColumnsPopupThemeEnum.purple}\n didUpdate={didUpdate}\n onSelect={(record: ColumnType) => {\n setCurColumn({ ...curColumn, table2: record });\n store.setPopup2({ visible: false });\n store.setClosable(true);\n }}\n />\n ),\n });\n };\n\n if (nextPage) {\n let { type, conditions } = getData(curColumn);\n const menu = conditions.map((v) => {\n return {\n key: v,\n label: __(getText(v)),\n };\n });\n\n const changeFormula = (val: string) => {\n let params = [];\n if (val === 'SUBSTR') {\n params[0] = curColumn.name;\n }\n\n setFormula({\n type: val,\n params: params,\n });\n };\n const changeParams = (val: number, i: number) => {\n const _formula = { ...formula };\n if (_formula.params) {\n _formula.params[i] = val;\n setFormula({\n ..._formula,\n });\n }\n };\n let formulas = [\n {\n key: 'SUBSTR',\n label: 'SUBSTR',\n },\n ];\n\n const leftFormula = () => {\n return (\n <div className='left-info-formula'>\n <Dropdown\n trigger={['click']}\n onChange={(key) => {\n changeFormula(key);\n }}\n droplist={formulas}\n >\n <Button className={'operator-icon'} icon={<Function />}></Button>\n </Dropdown>\n </div>\n );\n };\n const getName = (name: string) => {\n switch (formula.type) {\n case 'SUBSTR':\n return (\n <div>\n SUBSTR({name},\n <InputNumber\n className={'left-info-formula-input'}\n hideControl\n placeholder=''\n onClick={(e) => {\n e.stopPropagation();\n return false;\n }}\n size='small'\n value={formula?.params?.[1]}\n onChange={(val) => {\n changeParams(val, 1);\n }}\n />\n ,\n <InputNumber\n className={'left-info-formula-input'}\n hideControl\n quickEdit\n placeholder=''\n onClick={(e) => {\n e.stopPropagation();\n return false;\n }}\n size='small'\n value={formula?.params?.[2]}\n onChange={(val) => {\n changeParams(val, 2);\n }}\n />\n )\n </div>\n );\n default:\n return name;\n }\n };\n\n return (\n <div className='filter-page'>\n <div className='header'>\n <div className='left-info'>\n <span className='span-name' onClick={goPrevPage}>\n <LeftArrowIcon />\n {getName(curColumn.name)}\n </span>\n\n {leftFormula()}\n </div>\n <div className='right-info'>\n <Dropdown\n trigger={['click']}\n onChange={(key) => {\n setValType('string');\n setCurColumn({ ...curColumn, table2: null });\n setDefaultVal(key);\n }}\n droplist={menu}\n\n // droplist={\n // <Menu\n // onClickMenuItem={(key) => {\n // setIsField(false);\n // setCurColumn({ ...curColumn, table2: null });\n // setDefaultVal(key);\n // }}\n // >\n // {menu.map((item) => (\n // <Menu.Item key={item.key}>{item.label}</Menu.Item>\n // ))}\n // </Menu>\n // }\n\n // menu={{\n // items: menu,\n // onClick: ({ key }) => {\n // setIsField(false);\n // setCurColumn({ ...curColumn, table2: null });\n // setDefaultVal(key);\n // },\n // }}\n // dropdownRender={() => {\n // return menu;\n // }}\n >\n <Button className='operator-btn' style={{ width: 104 }}>\n {__(getText(condition))}\n <ChevronODown />\n </Button>\n </Dropdown>\n </div>\n </div>\n <div className='content'>\n {(valType === 'field' || !valType) && (\n <div\n className={cx(`Sqb-TableName purple-name`, { notSelected: !table2Selected })}\n onClick={selectTable}\n >\n {table2Selected ? `${curColumn.table2?.name}` : __('SqlQueryBuilder.pickTable')}\n </div>\n )}\n {valType === 'constant' && (\n <div\n className={cx(`Sqb-TableName purple-name`, { notSelected: !curVal[0] })}\n onClick={selectConstant}\n >\n {constantName ? `${constantName}` : __('SqlQueryBuilder.pickConstant')}\n </div>\n )}\n {valType === 'string' && <div className='content_l'>{renderFilter(type, condition)}</div>}\n {/* {isField ? (\n \n ) : (\n \n )} */}\n {~['等于', '不等于'].indexOf(condition) ? (\n <Tooltip title={__('SqlQueryBuilder.switch')}>\n <Button\n primary\n ghost\n className={'ml-2 operator-icon'}\n icon={<Repeat />}\n onClick={onRepeat}\n />\n </Tooltip>\n ) : (\n ''\n )}\n </div>\n <div className='footer'>\n <div className={cx('button--purple', { disabled })} onClick={addFilter}>\n <span>{isCustom ? __('filter.confirm') : __('filter.addFilter')}</span>\n </div>\n </div>\n </div>\n );\n }\n\n function setDefaultVal(_condition: string) {\n setCondition(_condition);\n if (~['前', '下一个'].indexOf(_condition)) {\n setVal(['30', '天']);\n } else if (~['当前'].indexOf(_condition)) {\n setVal(['天']);\n } else if (~['早于', '晚于', '在'].indexOf(_condition)) {\n setVal([moment().format('YYYY-MM-DD HH:mm')]);\n } else {\n setVal([]);\n }\n }\n\n return (\n <div>\n <SelectJoinColumn\n data={data}\n value={value as MetaFilter_Item}\n theme={ColumnsPopupThemeEnum.purple}\n didUpdate={didUpdate}\n onSelect={(record: ColumnType) => {\n setCurColumn(record);\n\n /**\n * 这里默认帮用户选好一部分数据\n * 不至于让用户每一个都自己选、\n * 比如说:条件字段 默认我们帮他选好第一个...\n */\n let { conditions } = getData(record);\n setDefaultVal(conditions[0]);\n }}\n />\n </div>\n );\n};\n\nexport default (props: PropsType) => {\n return <SelectFilterColumn {...props} />;\n};\n","/**\n * 关联模块 选择表字段\n */\nimport './index.less';\nimport React, { useState } from 'react';\nimport { Tooltip } from '@gingkoo/pandora';\nimport cx from 'classnames';\n\nimport { ColumnsPopupThemeEnum } from '../../../store/enum';\nimport { DataType, ColumnType } from '../select-join-column';\nimport { NUMBER_GROUP, DATE_GROUP } from '../const';\nimport { __ } from '../../../locale';\nimport { TableIcon, LeftArrowIcon } from '../../icons';\nimport { SelectJoinColumn } from '../index';\n\nconst theme = ColumnsPopupThemeEnum.greenGrass;\n\nconst FormulaList = [\n { name: '总行数', tip: '总的数据行数' },\n { name: '总和', tip: '一个字段所有数值的总和' },\n { name: '平均值', tip: '一个字段所有数值的平均值' },\n { name: '不重复值的总数', tip: '一个字段所有互不重复的值的总数' },\n { name: '累积求和', tip: '一个列的所有值的加和。如:x一段时间内的总收入' },\n { name: '累积行数', tip: '行数的加法统计。如;x段时间内的销售总额' },\n { name: '标准差', tip: '一个字段所有数值的标准差' },\n { name: '最小值', tip: '一个字段的最小值' },\n { name: '最大值', tip: '一个字段的最大值' },\n];\n\nconst QuotesMap = new Map([\n ['总行数', '计数'],\n ['总和', '求和 的'],\n ['平均值', '平均 的'],\n ['不重复值的总数', '不重复的值 的'],\n ['累积求和', '累积和 的'],\n ['累积行数', '累积计数'],\n ['标准差', '标准偏差 的'],\n ['最小值', '最小 的'],\n ['最大值', '最大 的'],\n]);\n\nconst localeMap: any = {\n 总行数: 'summarize.totalNumberOfRows',\n 计数: 'summarize.count',\n 总和: 'summarize.sum',\n '求和 的': 'summarize.sumOf',\n 平均值: 'summarize.average',\n '平均 的': 'summarize.onAverageOf',\n 不重复值的总数: 'summarize.totalNumberOfUniqueValues',\n '不重复的值 的': 'summarize.non-repeatingValueOf',\n 累积求和: 'summarize.cumulativeSummation',\n '累积和 的': 'summarize.cumulativeSumOf',\n 累积行数: 'summarize.cumulativeNumberOfRows',\n 累积计数: 'summarize.cumulativeCount',\n 标准差: 'summarize.standardDeviation',\n '标准偏差 的': 'summarize.standardDeviationOf',\n 最小值: 'summarize.minimumCalue',\n '最小 的': 'summarize.theSmallestYes',\n 最大值: 'summarize.maximumCalue',\n '最大 的': 'summarize.biggestYes',\n 总的数据行数: 'summarize.totalNumberOfRowsOfData',\n 一个字段所有数值的总和: 'summarize.theSumOfAllValuesInAField',\n 一个字段所有数值的平均值: 'summarize.theAverageOfAllValuesInAfield',\n 一个字段所有互不重复的值的总数: 'summarize.theTotalNumberOfUniqueValuesInAfield',\n '一个列的所有值的加和。如:x一段时间内的总收入':\n 'summarize.theSumOfAllTheValuesInAcolumnForExample',\n '行数的加法统计。如;x段时间内的销售总额': 'summarize.additiveStatisticsOfTheNumberOfRows',\n 一个字段所有数值的标准差: 'summarize.theStandardDeviationOfAllValuesInAfield',\n 一个字段的最小值: 'summarize.theMinimumValueOfAfield',\n 一个字段的最大值: 'summarize.TheMaximumValueOfAfield',\n};\n\nconst Special = ['总行数', '累积行数'];\n\nexport type ValueType = Partial<ColumnType> & {\n condition: string; // 选择条件\n quotes: string; // 前端显示用户看的文字\n};\n\ninterface PropsType {\n data: DataType[];\n value: ValueType;\n onChange: (reocrd: ValueType) => void;\n didUpdate?: Function; // 刷新弹框\n ignoreGroupByType?: boolean; // 是否忽略类型\n}\n\nconst SelectSummarize = ({ data, value, onChange, didUpdate, ignoreGroupByType }: PropsType) => {\n const [condition, setCondition] = useState<string>(value.condition);\n\n function goPrevPage() {\n setCondition('');\n }\n\n function handleSelect(condition: string, record: Partial<ColumnType>) {\n const quotes = __(localeMap[QuotesMap.get(condition)!]) + ' ' + (record?.name || '');\n onChange({\n ...record,\n condition,\n quotes,\n });\n }\n\n if (condition && !~Special.indexOf(condition)) {\n let availableData = data.slice();\n\n if (condition !== '不重复值的总数' && !ignoreGroupByType) {\n // 只能用数字类型做聚合\n availableData = data\n .map((v) => {\n return {\n ...v,\n columns: v.columns.filter(\n (o) =>\n o.database_type &&\n (NUMBER_GROUP.includes(o.database_type) ||\n ((condition === '最大值' || condition === '最小值') &&\n DATE_GROUP.includes(o.database_type))),\n ),\n };\n })\n .filter((v) => v.columns.length);\n }\n\n return (\n <div>\n <div className='back-title'>\n <div onClick={goPrevPage}>\n <LeftArrowIcon />\n <h3> {__(localeMap[condition]!)} </h3>\n </div>\n </div>\n <SelectJoinColumn\n data={availableData}\n value={value as ColumnType}\n theme={ColumnsPopupThemeEnum.greenGrass}\n didUpdate={didUpdate}\n onSelect={(record: ColumnType) => {\n handleSelect(condition, record);\n }}\n />\n </div>\n );\n }\n return (\n <div className={cx(`Sqb-SelectSummarize-group--box ${theme}`)}>\n <div style={{ width: 300 }}>\n <div>\n <div className={cx(`Sqb-List-section`)}>\n <div className={cx(`Sqb-List-title mx-4 pb-4 pt-4`)}>\n <a>\n <span className={'List-item-icon'}>\n <TableIcon />\n </span>\n <div>\n <h3 className={'List-item-title ml-2'}>{__('summarize.basicIndicators')}</h3>\n </div>\n </a>\n </div>\n </div>\n\n {FormulaList.map((v, i) => {\n return (\n <div className={cx(`Sqb-List-section`)} key={i}>\n <div\n className={cx(`Sqb-List-item mx-2`, {\n active: condition === v.name,\n })}\n onClick={() => {\n if (~Special.indexOf(v.name)) {\n handleSelect(v.name, {});\n } else {\n setCondition(v.name);\n }\n }}\n >\n <a className={'p-2'}>\n <div>\n <h4 className={'List-item-title ml-2'}>{__(localeMap[v.name]!)}</h4>\n </div>\n <div onClick={(e) => e.stopPropagation()}>\n <Tooltip placement='rt' title={__(localeMap[v.tip]!)}>\n <span className='tips'></span>\n </Tooltip>\n </div>\n </a>\n </div>\n </div>\n );\n })}\n </div>\n </div>\n </div>\n );\n};\n\nexport default SelectSummarize;\n","/**\n * 选择关联方式\n * 谁在用?\n * 1、关联模块\n */\nimport './index.less';\nimport React from 'react';\nimport cx from 'classnames';\n\nimport { JoinEnum } from '../../../store/enum';\n\nimport { LeftJoinIcon, InnerJoinIcon } from '../../icons';\n\nconst JoinList = [\n {\n type: JoinEnum.left,\n name: 'Left outer join',\n icon: (\n <LeftJoinIcon width={24} height={24} style={{ marginRight: '0.5rem', cursor: 'pointer' }} />\n ),\n },\n {\n type: JoinEnum.right,\n name: 'Right outer join',\n icon: (\n <LeftJoinIcon\n width={24}\n height={24}\n style={{ transform: 'rotate(-180deg)', marginRight: '0.5rem', cursor: 'pointer' }}\n />\n ),\n },\n {\n type: JoinEnum.inner,\n name: 'Inner join',\n icon: (\n <InnerJoinIcon width={24} height={24} style={{ marginRight: '0.5rem', cursor: 'pointer' }} />\n ),\n },\n];\n\ninterface PropsType {\n value: JoinEnum;\n onChange: (type: JoinEnum) => void;\n}\nconst SelectJoin = ({ value, onChange = () => {} }: PropsType) => {\n return (\n <div className={`Sqb-SelectJoin--box`}>\n <div className={'p-2'}>\n {JoinList.map((v, i) => {\n return (\n <div\n key={v.type}\n className={cx(`Sqb-List-item p-2`, {\n active: value === v.type,\n 'mb-2': i !== JoinList.length - 1,\n })}\n onClick={() => {\n onChange(v.type);\n }}\n >\n {v.icon}\n {v.name}\n </div>\n );\n })}\n </div>\n </div>\n );\n};\n\nexport default SelectJoin;\n","/**\n * 选择表弹框\n * 谁在用?\n * 1、数据模块\n * 2、关联模块\n */\nimport './index.less';\nimport React, { useState, useEffect } from 'react';\nimport cloneDeep from 'lodash/cloneDeep';\nimport cx from 'classnames';\nimport { uuidv4 } from '../../../utils/helper';\n\nimport { useStore } from '../../../hooks/use-provider';\nimport Loading from '../../../common/Loading';\nimport { MetaData_TableType, TableType } from '../../../store/types';\nimport { DatasourceType } from '../../../types';\nimport { __ } from '../../../locale';\nimport { replaceTpl } from '../../../utils/helper';\n\nimport { TableIcon, SearchIcon, DataSourceIcon, LeftArrowIcon } from '../../icons';\n\ninterface PropsType {\n data: DatasourceType[]; // 列表数据\n value: MetaData_TableType; // 当前选中的项\n onChange: (reocrd: MetaData_TableType) => void; // 选中回调事件\n didUpdate?: Function; // 刷新弹框\n}\n\nconst SelectTable = ({ data = [], value, onChange = () => {}, didUpdate }: PropsType) => {\n const store = useStore();\n const [loading, setLoading] = useState(false);\n const [datasource] = useState(data.slice());\n const [list, setList] = useState<TableType[]>([]);\n const [originList, setOriginList] = useState<TableType[]>([]);\n const [val, setVal] = useState(value);\n\n useEffect(() => {\n if (value.datasourceId) {\n getTables(value.datasourceId);\n }\n }, []);\n\n async function getTables(datasourceId: string) {\n setLoading(true);\n let tables = await store.fetchDataset(datasourceId);\n setLoading(false);\n setList(tables);\n setOriginList(tables);\n }\n\n useEffect(() => {\n didUpdate?.();\n }, [list, loading, datasource]);\n\n function onInput(e: any) {\n let val = e.target.value;\n let newList = cloneDeep(originList.slice());\n setList(\n newList.filter(\n (v: any) =>\n ~(v.name + (v.name_zh || '')).toLocaleLowerCase().indexOf(val.toLocaleLowerCase()),\n ),\n );\n }\n\n function goPrevPage() {\n setVal({\n datasourceId: '',\n datasourceName: '',\n name: '',\n tableUuid: '',\n id: '',\n alias: '',\n });\n }\n\n const nextPage = !val.datasourceId;\n // 没有选 数据源 先选数据源\n if (nextPage) {\n return (\n <div className={cx(`Sqb-SelectDataSource--box pb-2 pt-2`)}>\n <div style={{ width: 300 }}>\n <div style={{ width: '100%' }}>\n {Array.isArray(datasource) &&\n datasource.map((v: DatasourceType) => {\n return (\n <div className={cx(`Sqb-List-section`)} key={v.datasourceId}>\n <div\n className={cx(`Sqb-List-item mx-2`, {\n active: val.datasourceId === v.datasourceId,\n })}\n onClick={() => {\n setVal({\n datasourceId: v.datasourceId,\n datasourceName: v.datasourceName,\n name: '',\n id: '',\n tableUuid: uuidv4('table'),\n alias: '',\n });\n getTables(v.datasourceId);\n }}\n >\n <a className={'p-2'}>\n <span className={'List-item-icon'}>\n <DataSourceIcon />\n </span>\n <div>\n <h4 className={'List-item-title ml-2'}>{v.datasourceName}</h4>\n </div>\n </a>\n </div>\n </div>\n );\n })}\n </div>\n </div>\n </div>\n );\n }\n\n return (\n <div className={cx(`Sqb-SelectTable--box pb-2`)}>\n <div style={{ width: 300 }}>\n <div style={{ width: '100%' }}>\n <div className='header'>\n <div className='left-info'>\n <span onClick={goPrevPage}>\n <LeftArrowIcon />\n {val.datasourceName}\n </span>\n </div>\n </div>\n\n {loading ? (\n <div className='Sqb-SelectTable-loading'>\n <Loading show={true} msg='' />\n </div>\n ) : (\n <>\n <div className={cx(`Sqb-List-section`)}>\n <div className={cx(`Sqb-List-search m-2 rounded-lg`)}>\n <span className={'px-2'}>\n <SearchIcon />\n </span>\n <input\n type='text'\n className={'p-2'}\n placeholder={__('data.search')}\n onInput={onInput}\n />\n </div>\n </div>\n {Array.isArray(list) &&\n list.map((v: TableType) => {\n return (\n <div className={cx(`Sqb-List-section`)} key={v.name}>\n <div\n className={cx(`Sqb-List-item mx-2`, {\n active: value.name === v.name,\n })}\n onClick={() => {\n onChange({\n ...val,\n ...v,\n });\n }}\n >\n <a className={'p-2'}>\n <span className={'List-item-icon'}>\n <TableIcon />\n </span>\n <div>\n <h4 className={'List-item-title ml-2'}>\n {replaceTpl(store.tableNameTpl, v)}\n </h4>\n </div>\n </a>\n </div>\n </div>\n );\n })}\n </>\n )}\n </div>\n </div>\n </div>\n );\n};\n\nexport default SelectTable;\n","/**\n * 选择表弹框\n * 谁在用?\n * 1、选择权限表\n */\nimport './index.less';\nimport React, { useState, useEffect } from 'react';\nimport cx from 'classnames';\n\nimport { useStore } from '../../../hooks/use-provider';\nimport { MetaData_TableType } from '../../../store/types';\nimport { __ } from '../../../locale';\n\nimport { TableIcon } from '../../icons';\n\ninterface PropsType {\n data: MetaData_TableType[]; // 列表数据\n value: MetaData_TableType; // 当前选中的项\n onChange: (reocrd: MetaData_TableType) => void; // 选中回调事件\n didUpdate?: Function; // 刷新弹框\n}\n\nconst PrevResult = 'Previous results';\n\nconst SelectPermissionTable = ({ data = [], value, onChange = () => {}, didUpdate }: PropsType) => {\n const [datasource] = useState(data.slice());\n\n useEffect(() => {\n didUpdate?.();\n }, [datasource]);\n\n return (\n <div className={cx(`Sqb-SelectTable--box pb-2 pt-2`)}>\n <div style={{ width: 300 }}>\n <div style={{ width: '100%' }}>\n {Array.isArray(datasource) &&\n datasource.map((v: MetaData_TableType) => {\n return (\n <div className={cx(`Sqb-List-section`)} key={v.name}>\n <div\n className={cx(`Sqb-List-item mx-2`, {\n active: value.name === v.name,\n })}\n onClick={() => {\n onChange(v);\n }}\n >\n <a className={'p-2'}>\n <span className={'List-item-icon'}>\n <TableIcon />\n </span>\n <div>\n <h4 className={'List-item-title ml-2'}>\n {v.datasourceName ? `${v.datasourceName}.` : ''}\n {v.name === 'source' ? PrevResult : v.name}\n </h4>\n </div>\n </a>\n </div>\n </div>\n );\n })}\n </div>\n </div>\n </div>\n );\n};\n\nexport default SelectPermissionTable;\n","import React from 'react';\nimport cx from 'classnames';\nimport { __ } from '../../../locale';\nimport { TypeEnum } from '../../../store/enum';\nimport { Tooltip } from '@gingkoo/pandora';\nimport {\n MetaListType,\n MetaJoin,\n MetaCustom,\n MetaFilter,\n MetaSummarize,\n} from '../../../store/types';\nimport { getHelper } from '../../../utils';\n\n// import { type SqlVisionStoreType } from '../../../store/helper';\nimport { useStore } from '../../../hooks/use-provider';\n\nimport {\n RowLimitIcon,\n SortIcon,\n CustomColumnIcon,\n JoinDataIcon,\n PermissionTableIcon,\n SummarizeIcon,\n FilterIcon,\n GroupIcon,\n} from '../../icons';\n\ntype MetaIconDomProps = {\n show: boolean;\n className?: string;\n type: TypeEnum;\n};\n\ninterface PropsType {\n meta: MetaListType;\n groupIndex: number;\n}\n\nenum IconSIzeEnum {\n SMALL = 'small',\n LARGE = 'large',\n}\n\ntype IconInfoType = {\n name: string;\n icon: JSX.Element;\n className?: string;\n};\nconst IconTypeMap: Map<TypeEnum, IconInfoType> = new Map([\n [\n TypeEnum.filter,\n { name: __('SqlQueryBuilder.filter'), icon: <FilterIcon />, className: 'filter' },\n ],\n [\n TypeEnum.summarize,\n { name: __('SqlQueryBuilder.summarize'), icon: <SummarizeIcon />, className: 'summarize' },\n ],\n [\n TypeEnum.joinData,\n { name: __('SqlQueryBuilder.joinData'), icon: <JoinDataIcon />, className: 'joinData' },\n ],\n [\n TypeEnum.permissionTable,\n {\n name: __('SqlQueryBuilder.permissionTable'),\n icon: <PermissionTableIcon />,\n className: 'permissionTable',\n },\n ],\n [\n TypeEnum.customColumn,\n {\n name: __('SqlQueryBuilder.customColumn'),\n icon: <CustomColumnIcon />,\n className: 'customColumn',\n },\n ],\n [TypeEnum.sort, { name: __('SqlQueryBuilder.sort'), icon: <SortIcon />, className: 'sort' }],\n [\n TypeEnum.rowLimit,\n { name: __('SqlQueryBuilder.rowLimit'), icon: <RowLimitIcon />, className: 'rowLimit' },\n ],\n [TypeEnum.union, { name: __('SqlQueryBuilder.union'), icon: <GroupIcon />, className: 'union' }],\n]);\n\n// 前端展示的icon顺序 随便改不影响逻辑\nconst DisplayOrder: TypeEnum[] = [\n TypeEnum.filter,\n TypeEnum.summarize,\n TypeEnum.joinData,\n TypeEnum.permissionTable,\n TypeEnum.customColumn,\n TypeEnum.sort,\n TypeEnum.rowLimit,\n TypeEnum.union,\n];\n\n// js逻辑顺序 正常顺序\nconst OrderType: TypeEnum[] = [\n TypeEnum.data,\n TypeEnum.joinData,\n TypeEnum.permissionTable,\n TypeEnum.customColumn,\n TypeEnum.filter,\n TypeEnum.summarize,\n TypeEnum.sort,\n TypeEnum.rowLimit,\n TypeEnum.union,\n];\n\n// js逻辑顺序 聚合下面的顺序是这个样子\nconst OrderNewType: TypeEnum[] = [\n TypeEnum.sort,\n TypeEnum.rowLimit,\n TypeEnum.joinData,\n TypeEnum.permissionTable,\n TypeEnum.customColumn,\n TypeEnum.filter,\n TypeEnum.summarize,\n TypeEnum.union,\n];\n\nconst metaIcon = (size: IconSIzeEnum, handleClick: Function): any => {\n return ({ type }: MetaIconDomProps) => {\n let info = IconTypeMap.get(type) as IconInfoType;\n return (\n <Tooltip title={size === IconSIzeEnum.SMALL ? info.name : ''} placement='top'>\n <button\n className={cx(`Sqb-button ${info.className || ''}`, {\n small: size === IconSIzeEnum.SMALL,\n large: size === IconSIzeEnum.LARGE,\n })}\n onClick={() => handleClick(type)}\n >\n <div>\n {info.icon}\n {size === IconSIzeEnum.LARGE ? <div>{info.name}</div> : ''}\n </div>\n </button>\n </Tooltip>\n );\n };\n};\n\n/**\n * 如果选择了聚合 数据的 字段就不能选了\n */\n\n/*\n **** 该文件 主要是判断 模块下面该放的icon ****\n\n 这一块逻辑比较复杂 主要分两个部分\n 一、模块下面应该放哪些icon\n 1)正常顺序是上面的 OrderType,然后各自根据各自情况找出自己下面能放的icon,但是有两个瘪犊子 (关联、聚合)\n 2)关联比较特殊 可以有多个关联,关联选择了关联表之后,下面还可以继续选关联\n 3)聚合 ... 情况太大了 不一一写了 后面的人自己看下面代码逻辑吧\n 5)\n 6)\n 二、模块下面的icon size是large 还是small\n 1)正常情况,除了最后一个模块下面的icon是 large 其他的都是small 但是也有特殊情况,\n 2)特殊情况一 如果最后一个是聚合,且聚合没有选指标和groupby 下面是small\n 3)特殊情况二 如果最后一个是排序,下面是small\n*/\n// 判断icon大小\nconst judgeSize = (store: any, props: PropsType, nextLen: number, groupIndex: number) => {\n let { meta } = props;\n let { type } = meta;\n let isLast =\n store.metaList[groupIndex].list.indexOf(meta) === store.metaList[groupIndex].list.length - 1;\n\n let size = IconSIzeEnum.SMALL;\n if (isLast) {\n if (type !== TypeEnum.sort) {\n if (type === TypeEnum.summarize && !(meta as MetaSummarize).by.length) {\n size = IconSIzeEnum.SMALL;\n } else {\n size = IconSIzeEnum.LARGE;\n }\n } else {\n if (nextLen > 1) {\n size = IconSIzeEnum.LARGE;\n }\n }\n }\n return size;\n};\n\n/**\n * 查找模块下面能放哪些icon (参考来源:metabase.com)\n */\nconst findNextIcon = (store: any, props: PropsType): TypeEnum[] => {\n const { meta, groupIndex } = props;\n let { type } = meta;\n let index = store.metaList[groupIndex].list.indexOf(meta);\n let {\n ExistAboveGroupBy,\n ExistBelowGroupBy,\n prevTypes,\n nextTypes,\n prevList,\n nextList,\n prevGroupBy,\n nextGroupBy,\n } = getHelper(store.metaList[groupIndex].list, meta);\n\n let nextType = store.metaList[groupIndex].list[index + 1]?.type || '';\n // @ts-ignore\n let isLast = nextType === '';\n\n let available: TypeEnum[] = [];\n // 当前处在的位置\n let curLocation = OrderType.indexOf(type);\n let nextLocation = OrderType.indexOf(nextType);\n\n if (type === TypeEnum.data) {\n if (isLast) {\n available = OrderType.slice(curLocation + 1);\n } else {\n available = OrderType.slice(curLocation + 1, nextLocation);\n }\n }\n if (type === TypeEnum.joinData) {\n if (ExistAboveGroupBy && isLast) {\n // 聚合在上面 且自己是最后一个\n if ((meta as MetaJoin).table2.name) {\n available = OrderType.slice(curLocation + 1);\n } else {\n available = [TypeEnum.customColumn, TypeEnum.filter, TypeEnum.summarize, TypeEnum.union];\n }\n } else {\n if (isLast) {\n available = OrderType.slice(curLocation + 1);\n } else {\n available = OrderType.slice(curLocation + 1, nextLocation);\n }\n }\n // 关联比较特殊可以有多个\n if (nextType !== TypeEnum.joinData && (meta as MetaJoin).table2.name) {\n available.unshift(TypeEnum.joinData);\n }\n }\n if (type === TypeEnum.customColumn) {\n if (ExistAboveGroupBy && isLast) {\n // 聚合在上面 且自己是最后一个\n let joinIndex = prevTypes.indexOf(TypeEnum.joinData);\n\n // 如果自定义已经选了 或者 自定义没选但是他上面有个关联且关联选了 则展示排序和行限制 否则不展示\n if (\n (meta as MetaCustom).customColumn.length ||\n (~joinIndex && (prevList[joinIndex] as MetaJoin).table2.name)\n ) {\n available = OrderType.slice(curLocation + 1);\n } else {\n available = [TypeEnum.filter, TypeEnum.summarize, TypeEnum.union];\n }\n } else {\n if (isLast) {\n available = OrderType.slice(curLocation + 1);\n } else {\n available = OrderType.slice(curLocation + 1, nextLocation);\n }\n }\n }\n if (type === TypeEnum.filter) {\n if (ExistAboveGroupBy && isLast) {\n // 聚合在上面 且自己是最后一个\n let joinIndex = prevTypes.indexOf(TypeEnum.joinData);\n let customIndex = prevTypes.indexOf(TypeEnum.customColumn);\n\n // 如果自定义已经选了 或者 自定义没选但是他上面有个关联且关联选了 则展示排序和行限制 否则不展示\n if (\n (meta as MetaFilter).filter.length ||\n (~joinIndex && (prevList[joinIndex] as MetaJoin).table2.name) ||\n (~customIndex && (prevList[customIndex] as MetaCustom).customColumn.length)\n ) {\n available = OrderType.slice(curLocation + 1);\n } else {\n available = [TypeEnum.summarize];\n }\n } else {\n if (isLast) {\n available = OrderType.slice(curLocation + 1);\n } else {\n available = OrderType.slice(curLocation + 1, nextLocation);\n }\n }\n }\n if (type === TypeEnum.summarize) {\n if (isLast) {\n if (!ExistAboveGroupBy) {\n if ((meta as MetaSummarize).group.length && !(meta as MetaSummarize).by.length) {\n // 一个不显示\n } else if (!(meta as MetaSummarize).group.length && !(meta as MetaSummarize).by.length) {\n available = [TypeEnum.sort, TypeEnum.rowLimit, TypeEnum.union];\n } else {\n available = OrderNewType;\n }\n } else {\n if (!(meta as MetaSummarize).by.length) {\n let joinIndex = prevTypes.indexOf(TypeEnum.joinData);\n let customIndex = prevTypes.indexOf(TypeEnum.customColumn);\n let filterIndex = prevTypes.indexOf(TypeEnum.filter);\n\n if (\n (~joinIndex && (prevList[joinIndex] as MetaJoin).table2.name) ||\n (~customIndex && (prevList[customIndex] as MetaCustom).customColumn.length) ||\n (~filterIndex && (prevList[filterIndex] as MetaFilter).filter.length)\n ) {\n available = OrderType.slice(curLocation + 1);\n } else {\n // 一个不显示\n }\n } else {\n available = OrderNewType;\n }\n }\n } else {\n if (!ExistAboveGroupBy && !ExistBelowGroupBy && !(meta as MetaSummarize).by.length) {\n available = OrderType.slice(curLocation + 1, nextLocation);\n } else {\n available = OrderNewType.slice(0, OrderNewType.indexOf(nextType));\n }\n }\n }\n if (type === TypeEnum.sort) {\n let curNewLocation = OrderNewType.indexOf(type);\n if (isLast) {\n if (ExistAboveGroupBy && prevGroupBy?.by?.length) {\n available = OrderNewType.slice(curNewLocation + 1);\n } else {\n available = OrderType.slice(curLocation + 1);\n }\n } else {\n if (ExistAboveGroupBy && ExistBelowGroupBy) {\n available = OrderNewType.slice(curNewLocation + 1, OrderNewType.indexOf(nextType));\n } else if (!ExistAboveGroupBy && !ExistBelowGroupBy) {\n available = OrderType.slice(curLocation + 1, nextLocation);\n } else if (ExistAboveGroupBy && !ExistBelowGroupBy) {\n if (prevGroupBy?.by?.length) {\n available = OrderType.slice(curLocation + 1, nextLocation);\n } else {\n available = OrderNewType.slice(curNewLocation + 1, OrderNewType.indexOf(nextType));\n }\n }\n }\n }\n if (type === TypeEnum.rowLimit) {\n let curNewLocation = OrderNewType.indexOf(type);\n if (isLast) {\n if (!ExistAboveGroupBy || !prevGroupBy?.by?.length) {\n available = OrderType.slice(curLocation + 1);\n } else {\n available = OrderNewType.slice(curNewLocation + 1);\n }\n } else {\n available = OrderNewType.slice(curNewLocation + 1, OrderNewType.indexOf(nextType));\n }\n }\n\n if (type === TypeEnum.permissionTable) {\n let curNewLocation = OrderNewType.indexOf(type);\n if (isLast) {\n if (!ExistAboveGroupBy || !prevGroupBy?.by?.length) {\n available = OrderType.slice(curLocation + 1);\n } else {\n available = OrderNewType.slice(curNewLocation + 1);\n }\n } else {\n available = OrderNewType.slice(curNewLocation + 1, OrderNewType.indexOf(nextType));\n }\n }\n return available;\n};\n\nconst sortList = (arr: TypeEnum[]): TypeEnum[] => {\n return DisplayOrder.filter((v) => ~arr.indexOf(v));\n};\n\nconst NextDom = (props: PropsType) => {\n const { meta, groupIndex } = props;\n const store = useStore();\n // @ts-ignore\n if (!store.metaList[groupIndex].list[0].table.name) return null;\n\n let available: TypeEnum[] = findNextIcon(store, props);\n if (!store.showToolbar(TypeEnum.permissionTable)) {\n available = available.filter((v) => v !== TypeEnum.permissionTable);\n }\n let size = judgeSize(store, props, available.length, groupIndex);\n\n function handleClick(type: string) {\n let index = store.metaList[groupIndex].list.indexOf(meta);\n store.addMeta(type, index + 1, groupIndex);\n }\n\n const MetaIconDom = metaIcon(size, handleClick);\n\n return (\n <div className={`Sqb-item--func`}>\n {sortList(available)\n .filter((v) => ~store.toolbar.indexOf(v))\n .map((v: TypeEnum) => (\n <MetaIconDom key={v} type={v} />\n ))}\n </div>\n );\n};\n\nexport default NextDom;\n","import React, { useEffect } from 'react';\nimport cx from 'classnames';\n\nimport { __ } from '../../locale';\nimport { MetaData, MetaData_TableType, MetaData_ColumnsType } from '../../store/types';\nimport { Tooltip, Button, Modal, Modal2, Input, Toast } from '@gingkoo/pandora';\nimport Metabase from '../../index';\nimport { uuidv4 } from '../../utils/helper';\nimport { getHelper, changeTableAlias, getSubColumns } from '../../utils';\nimport { RelatedWork } from '@gingkoo/pandora-icons';\nimport cloneDeep from 'lodash/cloneDeep';\nimport isEqual from 'lodash/isEqual';\nimport { getMaxZIndexInParents } from '../../utils/helper-dom';\n\nimport { DatasourceType } from '../../types';\n\nimport { SelectTable, SelectColumn } from '../dialog';\nimport Wrapper from './components/Wrapper';\nimport NextDom from './components/meta-icon';\nimport Header from './components/header';\n\nimport { useStore } from '../../hooks/use-provider';\nimport { toJS } from 'mobx';\n\ninterface PropsType {\n meta: MetaData;\n groupIndex: number;\n}\n\nconst TableData = (props: PropsType) => {\n const { meta, groupIndex } = props;\n const store = useStore();\n let selected = Boolean(meta.table.name);\n let subQuerySelected = Boolean((meta.subquery?.[0] as MetaData)?.table?.name);\n\n function selectTable(e: any) {\n !meta.readonly &&\n store.setPopup({\n visible: true,\n node: e.currentTarget,\n content: (\n <SelectTable\n data={store.sourceList as DatasourceType[]}\n value={meta.table as MetaData_TableType}\n onChange={(data: MetaData_TableType) => {\n if (meta.table.datasourceId !== data.datasourceId || meta.table.name !== data.name) {\n let newMetaList = store.metaList[groupIndex].list.slice()[0] as MetaData;\n newMetaList.table = { ...data, tableUuid: uuidv4('table') };\n store.fetchColumns(data, data.datasourceId, (columns: MetaData_ColumnsType[]) => {\n newMetaList.columns = columns;\n // ① 主表动了 其他都得重新选\n store.setMeta([newMetaList], groupIndex);\n });\n }\n store.setPopup({ visible: false });\n }}\n />\n ),\n });\n }\n\n function selectColumns(e: any) {\n let columns = meta.columns;\n !meta.readonly &&\n store.setPopup({\n visible: true,\n node: e.currentTarget || e.target,\n content: (\n <SelectColumn\n groupIndex={groupIndex}\n data={columns as MetaData_ColumnsType[]}\n onChange={(data: MetaData_ColumnsType[]) => {\n let newMetaList = store.metaList[groupIndex].list.slice();\n // @ts-ignore\n newMetaList[0].columns = data;\n store.setMeta(newMetaList, groupIndex);\n }}\n />\n ),\n });\n }\n\n const onChangeTableAlias = (val: string) => {\n let alias = val || '';\n\n Modal.confirm({\n title: __('SqlQueryBuilder.alias'), // 设置别名\n content: (\n <Input\n defaultValue={alias}\n onChange={(val) => {\n alias = val;\n }}\n ></Input>\n ),\n onOk: async () => {\n if (!alias) {\n Toast.warning(__('SqlQueryBuilder.aliasCannotEmpty'));\n return false;\n } else {\n let newMetaList = store.metaList[groupIndex].list.slice();\n // @ts-ignore\n newMetaList[0].table.alias = alias;\n\n newMetaList = changeTableAlias(newMetaList, newMetaList[0].table);\n store.setMeta(newMetaList, groupIndex);\n }\n },\n onCancel: () => {},\n });\n };\n\n // 子查询弹窗\n const showSubQuery = (val: any = []) => {\n const { subToolbar, toolbar, ...other } = store.preProps;\n\n let newMetaList = store.metaList[groupIndex].list.slice()[0] as MetaData;\n let oldList = cloneDeep(newMetaList.subquery);\n let _toolbar = subToolbar || toolbar;\n _toolbar = _toolbar.filter((v: string) => v !== 'group'); // 子查询不需要分组\n\n let zIndex = store.popupContainer.current\n ? getMaxZIndexInParents(store.popupContainer.current)\n : 0;\n let o = Modal2.openModal({\n title: __('SqlQueryBuilder.subquery'),\n transparentMask: true,\n zIndex: Number(zIndex),\n content: (\n <>\n <Metabase\n {...other}\n showSubquery={store._showSubquery}\n toolbar={_toolbar}\n btnText={__('SqlQueryBuilder.confirm')}\n value={val}\n onOk={(newList) => {\n try {\n // 子查询未改变不做操作\n if (isEqual(newList, oldList)) {\n o.close();\n return;\n }\n newMetaList.subquery = newList;\n newMetaList.table = {\n ...newList[0].table,\n alias:\n newMetaList.table.alias || newList[0].table.name + '_' + groupIndex + '_' + 0,\n tableUuid: uuidv4('table'),\n };\n\n const items = getSubColumns(newList);\n const newColumns = items.flatMap((item) => item.columns);\n newMetaList.columns = newColumns;\n // (newMeta[index] as MetaJoin).expressions = [];\n store.setMeta([newMetaList], groupIndex);\n o.close();\n } catch (e) {\n console.warn(e);\n } finally {\n o.close();\n }\n }}\n />\n </>\n ),\n onClose: () => {},\n });\n };\n // 切换子查询\n const switchSubQuery = () => {\n let newMetaList = store.metaList[groupIndex].list.slice()[0] as MetaData;\n newMetaList.isSubquery = !newMetaList.isSubquery;\n //重置表数据\n newMetaList.subquery = [];\n newMetaList.table = {\n name: '', // 表名\n tableUuid: '',\n id: '', // 表名\n alias: '', // 表别名\n datasourceName: '', // 数据源名\n datasourceId: '', // 数据源id\n };\n store.setMeta([newMetaList], groupIndex);\n };\n\n return (\n <Wrapper className={`Sqb-item`}>\n <div className={`Sqb-hover-parent`}>\n <Header title={__('SqlQueryBuilder.data')} />\n <div className={`Sqb-item--content`}>\n <div className={`Sqb-NotebookCell`}>\n {meta.isSubquery ? (\n <div\n className={cx(`Sqb-TableName`, {\n notSelected: !subQuerySelected,\n })}\n onClick={() => {\n showSubQuery(meta.subquery);\n }}\n >\n {subQuerySelected && (\n <Tooltip title={__('SqlQueryBuilder.alias')}>\n <Button\n className={':Sqb-TableName-as'}\n shape='circle'\n iconOnly\n primary\n icon={'As'}\n size='small'\n onClick={(e) => {\n e.stopPropagation();\n onChangeTableAlias(meta.table?.alias || '');\n }}\n ></Button>\n </Tooltip>\n )}\n {subQuerySelected\n ? `${(meta.subquery?.[0] as MetaData).table.datasourceName}.${(meta.subquery?.[0] as MetaData).table.name} ${meta.table?.alias ? `as ${meta.table?.alias}` : ''} `\n : __('SqlQueryBuilder.setSubQuery')}\n </div>\n ) : (\n <div\n className={cx(`Sqb-TableName`, {\n notSelected: !selected,\n })}\n onClick={selectTable}\n >\n {selected && (\n <Tooltip title={__('SqlQueryBuilder.alias')}>\n <Button\n className={':Sqb-TableName-as'}\n shape='circle'\n iconOnly\n primary\n icon={'As'}\n size='small'\n onClick={(e) => {\n e.stopPropagation();\n onChangeTableAlias(meta.table?.alias || '');\n }}\n ></Button>\n </Tooltip>\n )}\n {selected\n ? `${meta.table.datasourceName}.${meta.table.name} ${meta.table?.alias ? `as ${meta.table?.alias}` : ''}`\n : __('SqlQueryBuilder.pickTable')}\n </div>\n )}\n\n {store.showSubquery && (\n <Tooltip title={__('SqlQueryBuilder.switchSubQuery')}>\n <Button\n disabled={meta.readonly}\n primary={meta.isSubquery}\n ghost\n className={cx('mr-2 operator-icon', {\n ['subquery-icon']: !meta.isSubquery,\n })}\n icon={<RelatedWork />}\n onClick={switchSubQuery}\n />\n </Tooltip>\n )}\n {/* && store.showMainColumn[groupIndex] */}\n {selected && store.showFields && (\n <div className={`Sqb-TableColumns`} onClick={selectColumns}>\n {__('SqlQueryBuilder.columns')}\n </div>\n )}\n </div>\n </div>\n\n <NextDom meta={meta} groupIndex={groupIndex} />\n </div>\n </Wrapper>\n );\n};\n\nexport default TableData;\n","import React, { useEffect, useMemo, useState } from 'react';\nimport cx from 'classnames';\nimport { Button, Tooltip, Input, Modal2, Switch, Modal, Toast } from '@gingkoo/pandora';\nimport { FfPlus, FfLine, Repeat, RelatedWork, Type } from '@gingkoo/pandora-icons';\nimport Metabase from '../../index';\nimport isEqual from 'lodash/isEqual';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { uuidv4 } from '../../utils/helper';\nimport { getMaxZIndexInParents } from '../../utils/helper-dom';\n\nimport { __ } from '../../locale';\nimport { findIndex, getSubColumns } from '../../utils';\nimport { TypeEnum, ColumnsPopupThemeEnum, JoinEnum, SQL_COLUMN_TYPE } from '../../store/enum';\nimport {\n MetaListType,\n MetaData,\n MetaJoin,\n MetaData_TableType,\n MetaData_ColumnsType,\n MetaSummarize,\n MetaSummarize_Group,\n MetaSummarize_By,\n MetaCustom,\n MetaJoin_TalbeType,\n} from '../../store/types';\nimport { DatasourceType } from '../../types';\nimport { SummarizeAlias } from '../../store/helper';\nimport { getHelper, changeTableAlias } from '../../utils';\n\nimport Wrapper from './components/Wrapper';\nimport NextDom from './components/meta-icon';\nimport Header from './components/header';\nimport SelectList from '../dialog/select-list';\nimport { LeftJoinIcon, InnerJoinIcon } from '../icons';\nimport { SelectTable, SelectJoin, SelectJoinColumn, SelectColumn } from '../dialog';\nimport { DataType, ColumnType } from '../dialog/select-join-column';\n\nimport { useStore } from '../../hooks/use-provider';\n\nconst PrevResult = 'Previous results';\n\n// function setQuotes(newMeta: any) {\n// newMeta.table1 = {\n// ...newMeta.table1,\n// fieldAlias: newMeta.table1.fieldAlias || newMeta.table1.column,\n// fieldUuid: newMeta.table1.fieldUuid || uuidv4('field'),\n// quotes: newMeta.table1.quotes || newMeta.table1.column,\n// tableUuid: newMeta.table1.tableUuid || uuidv4('table'),\n// };\n// newMeta.table2 = {\n// ...newMeta.table2,\n// fieldAlias: newMeta.table2.fieldAlias || newMeta.table2.column,\n// fieldUuid: newMeta.table2.fieldUuid || uuidv4('field'),\n// quotes: newMeta.table2.quotes || newMeta.table2.column,\n// tableUuid: newMeta.table2.tableUuid || uuidv4('table'),\n// };\n// newMeta.expressions = newMeta.expressions?.map((v: any) => {\n// return {\n// ...v,\n// left_fieldAlias: v.fieldAlias || v.left_column,\n// left_fieldUuid: v.fieldUuid || uuidv4('field'),\n// left_quotes: v.left_quotes || v.left_column,\n// right_fieldAlias: v.right_fieldAlias || v.right_column,\n// right_fieldUuid: v.right_fieldUuid || uuidv4('field'),\n// right_quotes: v.right_quotes || v.right_column,\n// };\n// });\n// return newMeta;\n// }\ninterface PropsType {\n meta: MetaJoin;\n groupIndex: number;\n}\n\nenum FlagLocation {\n TABLE_1 = 'table1',\n TABLE_2 = 'table2',\n}\n\nenum ExpressionsEnum {\n LEFT = 'left',\n RIGHT = 'right',\n}\n\nconst JoinData = (props: PropsType) => {\n const { meta, groupIndex } = props;\n const store = useStore();\n\n let { metaKey } = meta;\n let index = findIndex(store.metaList[groupIndex].list, meta);\n let table1Selected = Boolean(meta.table1.name);\n let table2Selected = Boolean(meta.table2.name);\n let subQuerySelected = Boolean((meta.subquery?.[0] as MetaData)?.table?.name);\n let columnsSelected = meta.table1.quotes && meta.table2.quotes;\n\n // useEffect(() => {\n // let newMetaList = store.metaList[groupIndex].list.slice();\n // newMetaList[index] = setQuotes(meta);\n // store.setMeta(newMetaList, groupIndex);\n // }, []);\n\n function selectColumns(e: any) {\n let columns: MetaData_ColumnsType[] = meta.columns;\n !meta.readonly &&\n store.setPopup({\n visible: true,\n node: e.currentTarget,\n content: (\n <SelectColumn\n data={columns}\n groupIndex={groupIndex}\n onChange={(data: MetaData_ColumnsType[]) => {\n let newMetaList = store.metaList[groupIndex].list.slice();\n (newMetaList[index] as MetaJoin).columns = data;\n store.setMeta(newMetaList, groupIndex);\n }}\n />\n ),\n });\n }\n\n function selectTable(e: any) {\n let value: MetaData_TableType = {\n name: meta.table2.name,\n id: meta.table2.id,\n alias: meta.table2.alias,\n datasourceId: meta.table2.datasourceId,\n datasourceName: meta.table2.datasourceName,\n tableUuid: meta.table2.tableUuid || '',\n };\n !meta.readonly &&\n store.setPopup({\n visible: true,\n node: e.currentTarget,\n content: (\n <SelectTable\n data={store.sourceList as DatasourceType[]}\n value={value}\n onChange={(data: MetaData_TableType) => {\n let tableName = data.name;\n if (\n meta.table2.name !== tableName ||\n meta.table2.datasourceId !== data.datasourceId\n ) {\n let newMeta: MetaListType[] = store.metaList[groupIndex].list.slice();\n\n /**\n * ExistAboveGroupBy: boolean; // 当前元素上面是否存在 聚合\n * prevList: MetaListType[]; // 同 prevTypes 但是放的是 meta[]\n * prevTypes: TypeEnum[]; // 当前元素和上面最近的聚合 中间的types列表\n */\n let { ExistAboveGroupBy, prevList } = getHelper(\n store.metaList[groupIndex].list,\n meta,\n );\n let alias = tableName;\n\n let joins: MetaJoin[] = [];\n let mainTable: MetaData = newMeta[0] as MetaData;\n if (ExistAboveGroupBy) {\n joins = prevList.filter(\n (v: MetaListType) => v.type === TypeEnum.joinData,\n ) as MetaJoin[];\n } else {\n joins = newMeta\n .slice(0, index)\n .filter((v: MetaListType) => v.type === TypeEnum.joinData) as MetaJoin[];\n }\n let aliasRegExp = new RegExp(`^${tableName}_[0-9]+$`);\n // ① 如果在同一层里面已经存在了重名的表并且重名表大于等于两张,找到当前序号最大是多少 给他加一\n let lens = joins\n .filter((v: MetaJoin) => aliasRegExp.test(v.table2.alias))\n .map((v: MetaJoin) => Number(v.table2.alias.split(`${tableName}_`)[1]));\n if (lens.length) {\n alias = `${tableName}_${Math.max.apply(null, lens) + 1}`;\n } else {\n // ② 如果在同一层已经存在了一张重名的表 直接写死序号为2\n if (\n joins.filter((v: MetaJoin) => v.table2.name === tableName).length ||\n (!ExistAboveGroupBy && tableName === mainTable.table.name)\n ) {\n alias = `${tableName}_2`;\n }\n }\n\n let _table2 = {\n ...data,\n name: tableName,\n tableUuid: data.tableUuid || uuidv4('table'),\n alias,\n fieldAlias: '',\n fieldUuid: '',\n quotes: '',\n datasourceId: data.datasourceId,\n datasourceName: data.datasourceName,\n };\n (newMeta[index] as MetaJoin).table2 = _table2;\n (newMeta[index] as MetaJoin).expressions = [];\n\n store.fetchColumns(\n _table2,\n data.datasourceId,\n (columns: MetaData_ColumnsType[]) => {\n (newMeta[index] as MetaJoin).columns = columns;\n\n // 关联表变了 下面模块全部删除\n newMeta = newMeta.filter((v: MetaListType, i: number) => i <= index);\n store.setMeta(newMeta, groupIndex);\n },\n );\n }\n\n store.setPopup({ visible: false });\n }}\n />\n ),\n });\n }\n\n function selectJoin(e: any) {\n let newMeta = store.metaList[groupIndex].list.slice();\n !meta.readonly &&\n store.setPopup({\n visible: true,\n node: e.currentTarget,\n content: (\n <SelectJoin\n value={(newMeta[index] as MetaJoin).joinType as JoinEnum}\n onChange={(type: JoinEnum) => {\n let newMeta = store.metaList[groupIndex].list.slice();\n (newMeta[index] as MetaJoin).joinType = type;\n store.setMeta(newMeta, groupIndex);\n store.setPopup({ visible: false });\n }}\n />\n ),\n });\n }\n\n function selectJoinColumn(e: any) {\n let node = e.currentTarget;\n let type: FlagLocation = node.getAttribute('v-data');\n let data: DataType[] = [];\n let value: ColumnType = {\n name: meta[type].quotes || meta[type].fieldAlias,\n quotes: meta[type].quotes,\n id: meta[type].fieldUuid,\n table: meta[type].name,\n tableId: meta[type].id,\n fieldUuid: meta[type].fieldUuid || uuidv4('field'),\n fieldAlias: meta[type].fieldUuid || '',\n tableUuid: meta[type].tableUuid || uuidv4('table'),\n alias: meta[type].alias,\n database_type: '',\n datasourceId: '',\n datasourceName: '',\n };\n\n let { ExistAboveGroupBy, prevList, prevGroupBy } = getHelper(\n store.metaList[groupIndex].list,\n meta,\n );\n\n if (type === FlagLocation.TABLE_1) {\n if (ExistAboveGroupBy) {\n let _data: DataType = {\n table: (prevGroupBy as MetaSummarize).alias,\n tableId: (prevGroupBy as MetaSummarize).alias,\n tableUuid: (prevGroupBy as MetaSummarize).tableUuid || uuidv4('table'),\n alias: (prevGroupBy as MetaSummarize).alias,\n datasourceId: '',\n datasourceName: '',\n columns: [],\n };\n if (prevGroupBy?.group?.length) {\n _data.columns = _data.columns.concat(\n prevGroupBy.group.map((v: MetaSummarize_Group) => {\n return {\n ...v,\n name: v.quotes,\n database_type: v?.database_type || SQL_COLUMN_TYPE.FLOAT,\n special_type: '',\n sql: v.sql,\n select: true,\n };\n }),\n );\n }\n if (prevGroupBy?.by?.length) {\n _data.columns = _data.columns.concat(\n prevGroupBy.by.map((v: MetaSummarize_By) => {\n return {\n ...v,\n name: v.quotes,\n database_type: v?.database_type || SQL_COLUMN_TYPE.FLOAT,\n special_type: '',\n sql: v.sql,\n select: true,\n };\n }),\n );\n }\n data = [_data];\n\n let joinData = prevList\n .filter((v) => v.type === TypeEnum.joinData)\n .filter((v: MetaJoin) => v && v.table2.name);\n if (joinData.length) {\n data = data.concat(\n joinData.map((v: MetaJoin) => {\n return {\n alias: v.table2.alias,\n table: v.table2.name,\n tableId: v.table2.id,\n tableUuid: v.table2.tableUuid || uuidv4('table'),\n datasourceId: v.table2.datasourceId,\n datasourceName: v.table2.datasourceName,\n columns: v.columns,\n };\n }),\n );\n }\n } else {\n data = store.metaList[groupIndex].list\n .slice(0, index)\n .reduce((mo: DataType[], v: MetaListType) => {\n if (v.type === TypeEnum.data) {\n mo.push({\n alias: v.table.alias,\n table: v.table.name,\n tableId: v.table.id,\n tableUuid: v.table.tableUuid || uuidv4('table'),\n columns: v.columns,\n datasourceId: v.table.datasourceId,\n datasourceName: v.table.datasourceName,\n });\n } else if (v.type === TypeEnum.joinData) {\n mo.push({\n alias: (v as MetaJoin).table2.alias,\n table: (v as MetaJoin).table2.name,\n tableId: (v as MetaJoin).table2.id,\n tableUuid: v.table2.tableUuid || uuidv4('table'),\n columns: (v as MetaJoin).columns,\n datasourceId: (v as MetaJoin).table2.datasourceId,\n datasourceName: (v as MetaJoin).table2.datasourceName,\n });\n }\n return mo;\n }, []);\n }\n } else {\n data = [\n {\n alias: meta.table2.alias,\n table: meta.table2.name,\n tableId: meta.table2.id,\n tableUuid: meta.table2.tableUuid || uuidv4('table'),\n datasourceId: meta.table2.datasourceId,\n datasourceName: meta.table2.datasourceName,\n columns: meta.columns,\n },\n ];\n }\n\n !meta.readonly &&\n store.setPopup({\n visible: true,\n node,\n content: (\n <SelectJoinColumn\n data={data}\n value={value}\n theme={ColumnsPopupThemeEnum.skyBlue}\n onSelect={(record: ColumnType & DatasourceType) => {\n let {\n table,\n alias,\n name,\n sql,\n datasourceId,\n datasourceName,\n id = '',\n fieldAlias = '',\n fieldUuid = '',\n quotes,\n tableUuid,\n } = record;\n\n let newMeta = store.metaList[groupIndex].list.slice();\n if (alias === SummarizeAlias) {\n ((newMeta[index] as MetaJoin)[type] as MetaJoin_TalbeType).fieldAlias = fieldAlias;\n ((newMeta[index] as MetaJoin)[type] as MetaJoin_TalbeType).fieldUuid = fieldUuid;\n ((newMeta[index] as MetaJoin)[type] as MetaJoin_TalbeType).quotes = quotes;\n } else {\n ((newMeta[index] as MetaJoin)[type] as MetaJoin_TalbeType).fieldAlias = name;\n ((newMeta[index] as MetaJoin)[type] as MetaJoin_TalbeType).fieldUuid = id;\n ((newMeta[index] as MetaJoin)[type] as MetaJoin_TalbeType).quotes = name;\n }\n\n if (type === FlagLocation.TABLE_1) {\n if (((newMeta[index] as MetaJoin)[type] as MetaJoin_TalbeType).alias !== alias) {\n ((newMeta[index] as MetaJoin)[type] as MetaJoin_TalbeType).alias = alias;\n ((newMeta[index] as MetaJoin)[type] as MetaJoin_TalbeType).name = table;\n ((newMeta[index] as MetaJoin)[type] as MetaJoin_TalbeType).tableUuid = tableUuid;\n\n ((newMeta[index] as MetaJoin)[type] as MetaJoin_TalbeType).datasourceId =\n datasourceId;\n ((newMeta[index] as MetaJoin)[type] as MetaJoin_TalbeType).datasourceName =\n datasourceName;\n (newMeta[index] as MetaJoin).expressions = [];\n if (alias === SummarizeAlias) {\n ((newMeta[index] as MetaJoin)[type] as MetaJoin_TalbeType).groupSql =\n sql?.split(' AS ')?.[1] || '';\n }\n }\n }\n\n store.setMeta(newMeta, groupIndex);\n store.setPopup({ visible: false });\n }}\n />\n ),\n });\n }\n function selectMoreJoinColumn(e: any) {\n let node = e.currentTarget;\n let type: ExpressionsEnum = node.getAttribute('v-data');\n let _ind: number = Number(node.getAttribute('v-index'));\n let index = findIndex(store.metaList[groupIndex].list, meta);\n let table_type = type === ExpressionsEnum.LEFT ? FlagLocation.TABLE_1 : FlagLocation.TABLE_2;\n let value: ColumnType = {\n name:\n meta.expressions[_ind][`${type}_quotes`] || meta.expressions[_ind][`${type}_fieldAlias`],\n id: meta.expressions[_ind][`${type}_fieldUuid`],\n table: meta[table_type].name,\n fieldUuid: meta[table_type].fieldUuid || uuidv4('field'),\n fieldAlias: meta[table_type].fieldAlias || '',\n tableId: meta[table_type].id,\n tableUuid: meta[table_type].tableUuid || uuidv4('table'),\n alias: meta[table_type].alias,\n database_type: '',\n datasourceId: meta[table_type].datasourceId, // 数据源id\n datasourceName: meta[table_type].datasourceName, // 数据源名\n };\n let data: DataType[] = [];\n\n let { ExistAboveGroupBy, prevList, prevGroupBy } = getHelper(\n store.metaList[groupIndex].list,\n meta,\n );\n\n if (type === ExpressionsEnum.LEFT) {\n if (ExistAboveGroupBy) {\n let _data: DataType = {\n table: (prevGroupBy as MetaSummarize).alias,\n tableId: (prevGroupBy as MetaSummarize).alias,\n tableUuid: (prevGroupBy as MetaSummarize).tableUuid || uuidv4('table'),\n alias: (prevGroupBy as MetaSummarize).alias,\n datasourceId: '',\n datasourceName: '',\n columns: [],\n };\n if (prevGroupBy?.group?.length) {\n _data.columns = _data.columns.concat(\n prevGroupBy.group.map((v: MetaSummarize_Group) => {\n return {\n ...v,\n name: v.quotes,\n database_type: v?.database_type || SQL_COLUMN_TYPE.FLOAT,\n special_type: '',\n sql: v.sql,\n select: true,\n };\n }),\n );\n }\n if (prevGroupBy?.by?.length) {\n _data.columns = _data.columns.concat(\n prevGroupBy.by.map((v: MetaSummarize_By) => {\n return {\n ...v,\n name: v.quotes,\n database_type: v?.database_type || SQL_COLUMN_TYPE.FLOAT,\n special_type: '',\n sql: v.sql,\n select: true,\n };\n }),\n );\n }\n data = [_data];\n\n let joinData = prevList\n .filter((v) => v.type === TypeEnum.joinData)\n .filter((v: MetaJoin) => v && v.table2.name);\n if (joinData.length) {\n data = data.concat(\n joinData.map((v: MetaJoin) => {\n return {\n alias: v.table2.alias,\n table: v.table2.name,\n tableId: v.table2.id,\n tableUuid: v.table2.tableUuid || uuidv4('table'),\n datasourceId: v.table2.datasourceId,\n datasourceName: v.table2.datasourceName,\n columns: v.columns,\n };\n }),\n );\n }\n } else {\n data = store.metaList[groupIndex].list\n .slice(0, index)\n .reduce((mo: DataType[], v: MetaListType) => {\n if (v.type === TypeEnum.data) {\n mo.push({\n alias: v.table.alias,\n table: v.table.name,\n tableId: v.table.id,\n tableUuid: v.table.tableUuid || uuidv4('table'),\n columns: v.columns,\n datasourceId: v.table.datasourceId,\n datasourceName: v.table.datasourceName,\n });\n } else if (v.type === TypeEnum.joinData) {\n mo.push({\n alias: (v as MetaJoin).table2.alias,\n table: (v as MetaJoin).table2.name,\n tableId: (v as MetaJoin).table2.id,\n tableUuid: (v as MetaJoin).table2.tableUuid || uuidv4('table'),\n columns: (v as MetaJoin).columns,\n datasourceId: (v as MetaJoin).table2.datasourceId,\n datasourceName: (v as MetaJoin).table2.datasourceName,\n });\n }\n return mo;\n }, []);\n }\n\n // 过滤为table1选中的表\n let newMeta = store.metaList[groupIndex].list.slice();\n data = data.filter((v) => {\n return (\n ((newMeta[index] as MetaJoin)[FlagLocation.TABLE_1] as MetaJoin_TalbeType).name == v.table\n );\n });\n } else {\n data = [\n {\n alias: meta.table2.alias,\n table: meta.table2.name,\n tableId: meta.table2.id,\n tableUuid: meta.table2.tableUuid || uuidv4('table'),\n datasourceId: meta.table2.datasourceId,\n datasourceName: meta.table2.datasourceName,\n columns: meta.columns,\n },\n ];\n }\n\n !meta.readonly &&\n store.setPopup({\n visible: true,\n node,\n content: (\n <SelectJoinColumn\n data={data}\n value={value}\n theme={ColumnsPopupThemeEnum.skyBlue}\n onSelect={(record: ColumnType & DatasourceType) => {\n let {\n table,\n alias,\n name,\n sql,\n datasourceId,\n datasourceName,\n id = '',\n fieldAlias,\n fieldUuid,\n quotes = '',\n } = record;\n let newMeta = store.metaList[groupIndex].list.slice();\n\n if (alias === SummarizeAlias) {\n (newMeta[index] as MetaJoin).expressions[_ind][`${type}_fieldAlias`] = fieldAlias;\n (newMeta[index] as MetaJoin).expressions[_ind][`${type}_fieldUuid`] = fieldUuid;\n (newMeta[index] as MetaJoin).expressions[_ind][`${type}_quotes`] = quotes;\n } else {\n (newMeta[index] as MetaJoin).expressions[_ind][`${type}_fieldAlias`] = name;\n (newMeta[index] as MetaJoin).expressions[_ind][`${type}_fieldUuid`] = id;\n (newMeta[index] as MetaJoin).expressions[_ind][`${type}_quotes`] = name;\n }\n\n // (newMeta[index] as MetaJoin).expressions[_ind][type] = name;\n // (newMeta[index] as MetaJoin).expressions[_ind][`${type}_id`] = id;\n\n store.setMeta(newMeta, groupIndex);\n store.setPopup({ visible: false });\n }}\n />\n ),\n });\n }\n function selectConstant(e: any) {\n let node = e.currentTarget;\n let _ind: number = Number(node.getAttribute('v-index'));\n let _position: 'left' | 'right' = node.getAttribute('v-position');\n let _val: string = node.getAttribute('v-val');\n\n store.setPopup({\n visible: true,\n node: e.currentTarget,\n content: (\n <SelectList\n value={_val}\n list={store.constantList || []}\n onChange={(val: any) => {\n closePopup();\n let curObj = store.constantList.filter((v: any) => v.value === val)[0];\n let index = findIndex(store.metaList[groupIndex].list, meta);\n let newMeta = store.metaList[groupIndex].list.slice();\n (newMeta[index] as MetaJoin).expressions[_ind][`${_position}_string`] = val;\n (newMeta[index] as MetaJoin).expressions[_ind][`${_position}_constant`] = curObj.label;\n store.setMeta(newMeta, groupIndex);\n }}\n />\n ),\n });\n }\n\n function closePopup() {\n store.setPopup({ visible: false });\n }\n\n // 修改输入框类型\n function onChangeType(e: any, position: 'left' | 'right', _ind: number) {\n let index = findIndex(store.metaList[groupIndex].list, meta);\n let newMeta = store.metaList[groupIndex].list.slice();\n store.setPopup({\n visible: true,\n node: e.currentTarget,\n content: (\n <SelectList\n value={(newMeta[index] as MetaJoin).expressions[_ind][`${position}_type`]}\n list={[\n { value: 'string', label: __('SqlQueryBuilder.input') },\n { value: 'constant', label: __('customColumn.constant') },\n { value: '', label: __('SqlQueryBuilder.columns') },\n ]}\n onChange={(type: any) => {\n closePopup();\n (newMeta[index] as MetaJoin).expressions[_ind][`${position}_type`] = type;\n store.setMeta(newMeta, groupIndex);\n }}\n />\n ),\n });\n }\n function onChangeString(type: 'left_string' | 'right_string', _ind: number, val: string) {\n let index = findIndex(store.metaList[groupIndex].list, meta);\n let newMeta = store.metaList[groupIndex].list.slice();\n (newMeta[index] as MetaJoin).expressions[_ind][type] = val;\n store.setMeta(newMeta, groupIndex);\n }\n\n // 子查询弹窗\n const showSubQuery = (val: any = []) => {\n const { subToolbar, toolbar, ...other } = store.preProps;\n\n let newMeta: MetaListType[] = store.metaList[groupIndex].list.slice();\n let index = findIndex(store.metaList[groupIndex].list, meta);\n let oldList = cloneDeep((newMeta[index] as MetaJoin).subquery);\n let _toolbar = subToolbar || toolbar;\n _toolbar = _toolbar.filter((v: string) => v !== 'group'); // 子查询不需要分组\n\n let zIndex = store.popupContainer.current\n ? getMaxZIndexInParents(store.popupContainer.current)\n : 0;\n let o = Modal2.openModal({\n title: __('SqlQueryBuilder.subquery'),\n transparentMask: true,\n zIndex: Number(zIndex),\n content: (\n <>\n <Metabase\n {...other}\n showSubquery={store._showSubquery}\n toolbar={_toolbar}\n btnText={__('SqlQueryBuilder.confirm')}\n value={val}\n onOk={(newList) => {\n try {\n // 子查询未改变不做操作\n if (isEqual(newList, oldList)) {\n o.close();\n return;\n }\n (newMeta[index] as MetaJoin).subquery = newList;\n (newMeta[index] as MetaJoin).table2 = {\n ...newList[0].table,\n alias:\n (newMeta[index] as MetaJoin).table2.alias ||\n newList[0].table.name + '_' + groupIndex + '_' + index,\n };\n\n const items = getSubColumns(newList);\n const newColumns = items.flatMap((item) => item.columns);\n (newMeta[index] as MetaJoin).columns = newColumns;\n (newMeta[index] as MetaJoin).expressions = [];\n // 关联表变了 下面模块全部删除\n newMeta = newMeta.filter((v: MetaListType, i: number) => i <= index);\n store.setMeta(newMeta, groupIndex);\n o.close();\n } catch (e) {\n console.warn(e);\n } finally {\n o.close();\n }\n }}\n />\n </>\n ),\n onClose: () => {},\n });\n };\n\n // 切换子查询\n const switchSubQuery = () => {\n let index = findIndex(store.metaList[groupIndex].list, meta);\n let newMeta: MetaListType[] = store.metaList[groupIndex].list.slice();\n (newMeta[index] as MetaJoin).isSubquery = !(newMeta[index] as MetaJoin).isSubquery;\n (newMeta[index] as MetaJoin).table2 = {\n quotes: '',\n fieldAlias: '',\n fieldUuid: '',\n name: '', // 表名\n tableUuid: '',\n id: '', // 表名\n alias: '', // 表别名\n datasourceName: '', // 数据源名\n datasourceId: '', // 数据源id\n groupSql: '', //如果table1 是结果集 那么这个字段 就有值,放结果集的别名\n };\n (newMeta[index] as MetaJoin).expressions = [];\n (newMeta[index] as MetaJoin).subquery = [];\n store.setMeta(newMeta, groupIndex);\n };\n\n const onChangeTableAlias = (val: string) => {\n let alias = val || '';\n Modal.confirm({\n title: __('SqlQueryBuilder.alias'), // 设置别名\n content: (\n <Input\n defaultValue={alias}\n onChange={(val) => {\n alias = val;\n }}\n ></Input>\n ),\n onOk: async () => {\n if (!alias) {\n Toast.warning(__('SqlQueryBuilder.aliasCannotEmpty'));\n return false;\n } else {\n let index = findIndex(store.metaList[groupIndex].list, meta);\n let newMeta: MetaListType[] = store.metaList[groupIndex].list.slice();\n (newMeta[index] as MetaJoin).table2.alias = alias;\n\n newMeta = changeTableAlias(newMeta, (newMeta[index] as MetaJoin).table2);\n\n store.setMeta(newMeta, groupIndex);\n }\n },\n onCancel: () => {},\n });\n };\n\n return (\n <Wrapper className={cx(`Sqb-item`)} key={metaKey}>\n <div className={cx(`Sqb-hover-parent`)}>\n <Header\n title={__('SqlQueryBuilder.joinData')}\n onClose={() => store.delMeta(meta, groupIndex)}\n />\n <div className={cx(`Sqb-item--content`)}>\n <div className={cx(`Sqb-NotebookCell`)}>\n <div className={cx(`Sqb-TableName noClick`)}>\n {!table1Selected || meta.table1.name === SummarizeAlias\n ? PrevResult\n : `${meta.table1.datasourceName}.${meta.table1.name}`}\n </div>\n\n <div onClick={selectJoin}>\n {meta.joinType === JoinEnum.left ? (\n <LeftJoinIcon style={{ marginRight: '0.5rem', cursor: 'pointer' }} />\n ) : meta.joinType === JoinEnum.right ? (\n <LeftJoinIcon\n style={{ transform: 'rotate(-180deg)', marginRight: '0.5rem', cursor: 'pointer' }}\n />\n ) : (\n <InnerJoinIcon style={{ marginRight: '0.5rem', cursor: 'pointer' }} />\n )}\n </div>\n {meta.isSubquery ? (\n <div\n className={cx(`Sqb-TableName`, { notSelected: !subQuerySelected })}\n onClick={() => {\n showSubQuery(meta.subquery);\n }}\n >\n {subQuerySelected && (\n <Tooltip title={__('SqlQueryBuilder.alias')}>\n <Button\n className={':Sqb-TableName-as'}\n shape='circle'\n iconOnly\n primary\n icon={'As'}\n size='small'\n onClick={(e) => {\n e.stopPropagation();\n onChangeTableAlias(meta.table2?.alias || '');\n }}\n ></Button>\n </Tooltip>\n )}\n {subQuerySelected\n ? `${(meta.subquery?.[0] as MetaData).table.datasourceName}.${(meta.subquery?.[0] as MetaData).table.name} ${meta.table2?.alias ? `as ${meta.table2?.alias}` : ''} `\n : __('SqlQueryBuilder.setSubQuery')}\n </div>\n ) : (\n <div\n className={cx(`Sqb-TableName`, { notSelected: !table2Selected })}\n onClick={selectTable}\n >\n {table2Selected && (\n <Tooltip title={__('SqlQueryBuilder.alias')}>\n <Button\n className={':Sqb-TableName-as'}\n shape='circle'\n iconOnly\n primary\n icon={'As'}\n size='small'\n onClick={(e) => {\n e.stopPropagation();\n onChangeTableAlias(meta.table2?.alias || '');\n }}\n ></Button>\n </Tooltip>\n )}\n {table2Selected\n ? `${meta.table2.datasourceName}.${meta.table2.name} ${meta.table2?.alias ? `as ${meta.table2?.alias}` : ''}`\n : __('SqlQueryBuilder.pickTable')}\n </div>\n )}\n {store.showSubquery && (\n <Tooltip title={__('SqlQueryBuilder.switchSubQuery')}>\n <Button\n disabled={meta.readonly}\n primary={meta.isSubquery}\n ghost\n className={cx('mr-2 operator-icon', {\n ['subquery-icon']: !meta.isSubquery,\n })}\n icon={<RelatedWork />}\n onClick={switchSubQuery}\n />\n </Tooltip>\n )}\n\n {table2Selected && (\n <div className={cx(`Sqb-where`)}>\n <span className={'ml-2 mr-4 text-gray-500'}>on</span>\n <div\n className={cx(`Sqb-TableName`, { notSelected: !meta.table1.quotes })}\n v-data={FlagLocation.TABLE_1}\n onClick={selectJoinColumn}\n >\n {meta.table1.quotes ? meta.table1.quotes : __('SqlQueryBuilder.pickTable')}\n </div>\n <span className={'mr-2 text-gray-500'}>=</span>\n <div\n className={cx(`Sqb-TableName`, { notSelected: !meta.table2.quotes })}\n v-data={FlagLocation.TABLE_2}\n onClick={selectJoinColumn}\n >\n {meta.table2.quotes ? meta.table2.quotes : __('SqlQueryBuilder.pickTable')}\n </div>\n </div>\n )}\n {meta.table1.fieldUuid &&\n meta.table2.fieldUuid &&\n meta.expressions?.map((v, i) => {\n return (\n <div className={cx(`Sqb-where block`)} key={i}>\n <span className={'ml-2 mr-4 text-gray-500'}>{v.operator}</span>\n {v.left_type === 'string' && (\n <Input\n disabled={meta.readonly}\n className={':Sqb-TableName-input'}\n value={v.left_string}\n placeholder={__('SqlQueryBuilder.pleaseEnter')}\n style={{ width: '180px' }}\n size='large'\n onChange={(val) => {\n onChangeString('left_string', i, val);\n }}\n />\n )}\n {v.left_type === 'constant' && (\n <div\n className={cx(`Sqb-TableName`, { notSelected: !v.left_string })}\n v-position={'left'}\n v-index={i}\n v-val={v.left_string}\n onClick={selectConstant}\n >\n {v.left_constant ? v.left_constant : __('SqlQueryBuilder.pickConstant')}\n </div>\n )}\n {(!v.left_type || v.left_type === 'field') && (\n <div\n className={cx(`Sqb-TableName`, { notSelected: !v.left_quotes })}\n v-data={ExpressionsEnum.LEFT}\n v-index={i}\n onClick={selectMoreJoinColumn}\n >\n {v.left_quotes ? v.left_quotes : __('SqlQueryBuilder.pickTable')}\n </div>\n )}\n\n <Tooltip title={__('SqlQueryBuilder.switch')}>\n <Button\n disabled={meta.readonly}\n primary\n ghost\n className={'mr-2 operator-icon'}\n icon={<Repeat />}\n onClick={(e) => {\n onChangeType(e, 'left', i);\n }}\n />\n </Tooltip>\n\n <span className={'mr-2 text-gray-500'}>=</span>\n\n {v.right_type === 'string' && (\n <Input\n disabled={meta.readonly}\n className={':Sqb-TableName-input'}\n value={v.right_string}\n placeholder={__('SqlQueryBuilder.pleaseEnter')}\n style={{ width: '180px' }}\n size='large'\n onChange={(val) => {\n onChangeString('right_string', i, val);\n }}\n />\n )}\n {v.right_type === 'constant' && (\n <div\n className={cx(`Sqb-TableName`, { notSelected: !v.right_string })}\n v-position={'right'}\n v-index={i}\n v-val={v.right_string}\n onClick={selectConstant}\n >\n {v.right_constant ? v.right_constant : __('SqlQueryBuilder.pickConstant')}\n </div>\n )}\n\n {(!v.right_type || v.right_type === 'field') && (\n <div\n className={cx(`Sqb-TableName`, { notSelected: !v.right_quotes })}\n v-data={ExpressionsEnum.RIGHT}\n v-index={i}\n onClick={selectMoreJoinColumn}\n >\n {v.right_quotes ? v.right_quotes : __('SqlQueryBuilder.pickTable')}\n </div>\n )}\n {/* \n {v.right_isString ? (\n <Input\n disabled={meta.readonly}\n className={':Sqb-TableName-input'}\n value={v.right_string}\n placeholder={__('SqlQueryBuilder.pleaseEnter')}\n style={{ width: '180px' }}\n size='large'\n onChange={(val) => {\n onChangeString('right_string', i, val);\n }}\n />\n ) : (\n <div\n className={cx(`Sqb-TableName`, { notSelected: !v.right_column })}\n v-data={ExpressionsEnum.RIGHT}\n v-index={i}\n onClick={selectMoreJoinColumn}\n >\n {v.right_column ? v.right_column : __('SqlQueryBuilder.pickTable')}\n </div>\n )} */}\n\n <Tooltip title={__('SqlQueryBuilder.switch')}>\n <Button\n disabled={meta.readonly}\n primary\n ghost\n className={'mr-2 operator-icon'}\n icon={<Repeat />}\n onClick={(e) => {\n onChangeType(e, 'right', i);\n }}\n />\n </Tooltip>\n <Tooltip title={__('SqlQueryBuilder.add')}>\n <Button\n disabled={meta.readonly}\n primary\n ghost\n className={'mr-2 operator-icon'}\n icon={<FfPlus />}\n onClick={() => {\n let index = findIndex(store.metaList[groupIndex].list, meta);\n\n let newMeta: MetaListType[] = store.metaList[groupIndex].list.slice();\n (newMeta[index] as MetaJoin).expressions.splice(i + 1, 0, {\n operator: 'and',\n left_fieldAlias: '',\n left_fieldUuid: '',\n left_quotes: '',\n left_string: '',\n left_type: 'field',\n left_constant: '',\n right_fieldAlias: '',\n right_fieldUuid: '',\n right_quotes: '',\n right_string: '',\n // right_isString: false,\n right_type: 'field',\n right_constant: '',\n });\n store.setMeta(newMeta, groupIndex);\n }}\n />\n </Tooltip>\n {meta.expressions.length > 0 && (\n <Tooltip title={__('SqlQueryBuilder.del')}>\n <Button\n disabled={meta.readonly}\n danger\n className={'mr-2 operator-icon'}\n icon={<FfLine />}\n onClick={() => {\n let index = findIndex(store.metaList[groupIndex].list, meta);\n\n let newMeta: MetaListType[] = store.metaList[groupIndex].list.slice();\n (newMeta[index] as MetaJoin).expressions.splice(i, 1);\n store.setMeta(newMeta, groupIndex);\n }}\n />\n </Tooltip>\n )}\n </div>\n );\n })}\n {meta.table1.fieldUuid &&\n meta.table2.fieldUuid &&\n (meta.expressions?.length || 0) < 1 && (\n <Tooltip title={__('SqlQueryBuilder.add')}>\n <Button\n disabled={meta.readonly}\n primary\n ghost\n className={'mr-2 operator-icon'}\n icon={<FfPlus />}\n onClick={() => {\n let index = findIndex(store.metaList[groupIndex].list, meta);\n\n let newMeta: MetaListType[] = store.metaList[groupIndex].list.slice();\n (newMeta[index] as MetaJoin).expressions = [\n {\n operator: 'and',\n left_fieldAlias: '',\n left_fieldUuid: '',\n left_quotes: '',\n\n left_string: '',\n left_type: 'field',\n left_constant: '',\n right_fieldAlias: '',\n right_fieldUuid: '',\n right_quotes: '',\n right_string: '',\n // right_isString: false,\n right_constant: '',\n right_type: 'field',\n },\n ];\n store.setMeta(newMeta, groupIndex);\n }}\n />\n </Tooltip>\n )}\n\n {columnsSelected && store.showFields && (\n <div className={`Sqb-TableColumns`} onClick={selectColumns}>\n {__('SqlQueryBuilder.columns')}\n </div>\n )}\n </div>\n </div>\n\n <NextDom meta={meta} groupIndex={groupIndex} />\n </div>\n </Wrapper>\n );\n};\n\nexport default JoinData;\n","import { __ } from '../../../locale';\n\nexport enum OptionsTypeEnum {\n CONSTANT = 'constant', // 常量\n INPUT = 'input', // 输入框\n FIELD = 'field', // 字段\n OPERATOR = 'operator', // 运算符\n EXPRESSION = 'expression', // 公式\n OTHER = 'other', // 其他\n}\nexport enum FunctionEnum {\n LOWER = 'lower',\n UPPER = 'upper',\n SUBSTRING = 'substring',\n REGEX_MATCH_FIRST = 'regex-match-first',\n 'CONCAT' = 'concat',\n 'REPLACE' = 'replace',\n 'TRIM' = 'trim',\n 'RTRIM' = 'RTRIM',\n 'LTRIM' = 'rtrim',\n 'LENGTH' = 'length',\n // NUMBER\n 'ABS' = 'abs',\n 'FLOOR' = 'floor',\n 'CEIL' = 'ceil',\n 'ROUND' = 'round',\n 'SQRT' = 'sqrt',\n 'POWER' = 'power',\n 'LOG' = 'log',\n 'EXP' = 'exp',\n // BOOLEAN\n 'CONTAINS' = 'contains',\n 'ENDS_WITH' = 'ends-with',\n 'STARTS_WITH' = 'starts-with',\n 'BETWEEN' = 'between',\n 'TIME_INTERVAL' = 'time-interval',\n 'IS_NULL' = 'is-null',\n 'IS_EMPTY' = 'is-empty',\n // OTHER\n 'COALESCE' = 'coalesce',\n}\n\nexport const operatorList = [\n '+',\n '-',\n '*',\n '/',\n '!=',\n '<=',\n '>=',\n '<',\n '>',\n '=',\n 'not',\n 'and',\n 'or',\n '(',\n ')',\n];\nexport const otherList = ['case', 'when', 'then', 'else', 'end'];\n\nexport const functionList = [\n 'lower',\n 'upper',\n 'substring',\n 'regex-match-first',\n 'concat',\n 'replace',\n 'trim',\n 'rtrim',\n 'ltrim',\n 'length',\n // number\n 'abs',\n 'floor',\n 'ceil',\n 'round',\n 'sqrt',\n 'power',\n 'log',\n 'exp',\n // boolean\n 'contains',\n 'ends-with',\n 'starts-with',\n 'between',\n 'time-interval',\n 'is-null',\n 'is-empty',\n // other\n 'coalesce',\n];\n\nexport const customTypes = [\n {\n value: OptionsTypeEnum.FIELD,\n label: __('customColumn.field'),\n },\n {\n value: OptionsTypeEnum.INPUT,\n label: __('SqlQueryBuilder.input'),\n },\n {\n value: OptionsTypeEnum.OPERATOR,\n label: __('customColumn.operator'),\n },\n {\n value: OptionsTypeEnum.EXPRESSION,\n label: __('customColumn.expression'),\n },\n {\n value: OptionsTypeEnum.OTHER,\n label: __('customColumn.other'),\n },\n];\n","import { OptionsTypeEnum } from './enum';\n/**\n *\n * @param type 当前选择的类型\n * @param list 当前数组\n * @param index 需要讲模版插入的位置\n * @returns\n */\nexport const getTemplate = (type: string, list: any[], index: number) => {\n let temList: any[] = [];\n if (type === 'case') {\n temList = [\n {\n operator: 'when',\n type: OptionsTypeEnum.OTHER,\n expression: '',\n },\n {\n operator: '',\n type: '',\n expression: '',\n },\n {\n operator: 'then',\n type: OptionsTypeEnum.OTHER,\n expression: '',\n },\n {\n operator: '',\n type: '',\n expression: '',\n },\n {\n operator: 'end',\n type: OptionsTypeEnum.OTHER,\n expression: '',\n },\n ];\n }\n if (type === 'when') {\n temList = [\n {\n operator: '',\n type: '',\n expression: '',\n },\n {\n operator: 'then',\n type: OptionsTypeEnum.OTHER,\n expression: '',\n },\n {\n operator: '',\n type: '',\n expression: '',\n },\n ];\n }\n list.splice(index + 1, 0, ...temList);\n return list;\n};\n","var img = \"data:image/svg+xml,%3c!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='26px' height='18px' version='1.1'%3e%3cpath d='m 1 6 L 14 6 L 14 1 L 26 9 L 14 18 L 14 12 L 1 12 z' stroke='white' fill='%2329b6f2'/%3e%3c/svg%3e\";\n export default img;","import React, { useEffect, useState, useMemo, useRef } from 'react';\nimport cx from 'classnames';\nimport './index.less';\nimport Popup from '../../popup';\n\nimport { __ } from '../../../locale';\nimport { getTemplate } from './utils';\nimport Styled from 'styled-components';\nimport { OptionsTypeEnum, customTypes, otherList, operatorList, functionList } from './enum';\nimport { MetaCustom_Item, MetaSummarize_By, MetaFilter_Item } from '../../../store/types';\nimport { Select, Input } from '@gingkoo/pandora';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { SummarizeAlias } from '../../../store/helper';\nimport { uuidv4 } from '../../../utils/helper';\n\nimport { AddIcon, CloseIcon } from '../../icons';\nimport { SelectFilter, SelectColumn, SelectJoinColumn } from '../../dialog';\nimport arrow from './arrow.svg';\nimport { getMaxZIndexInParents } from '../../../utils/helper-dom';\nimport { useStore } from '../../../hooks/use-provider';\n\ninterface ValueMap {\n operator: string;\n expression: any; // 可能是字符串 也可能是对象,表达式\n type: OptionsTypeEnum; // case or if\n}\ninterface PopupType {\n visible: boolean;\n content?: React.ReactElement;\n node?: any;\n innerSpacing?: number;\n}\ninterface PropsType {\n value: MetaCustom_Item;\n data: any;\n onOk: Function;\n onCancel: Function;\n}\nconst VisualBox = Styled.div.attrs({ className: 'visual-box' })``;\n\nconst CaseEditor = (props: PropsType) => {\n const { value, data, onOk, onCancel } = props;\n // const [popup, setPopup] = useState<PopupType>({ visible: false }); // 弹框信息\n const [caseList, setCaseList] = useState<any>(value.formulaList || []);\n const [name, setName] = useState<string>(value?.name || ''); // 表达式名字\n\n const [ind, setInd] = useState(-1);\n const ref = useRef(null);\n\n const store = useStore();\n\n const filterCase = useMemo(() => {\n const hasCase = caseList.some(\n (item: ValueMap) => item.type === OptionsTypeEnum.OTHER && item.operator === 'case',\n );\n if (hasCase) {\n return otherList.filter((item) => item !== 'case');\n }\n return otherList;\n }, [caseList]);\n // 提交按钮是否可用\n const usable = useMemo(() => {\n return Array.from(caseList).length > 0 && name;\n }, [caseList, name]);\n\n // const popupContent = useMemo(() => {\n // let { visible, content } = popup;\n // if (!visible) return null;\n // return content;\n // }, [popup]);\n\n function closePopup() {\n store.setPopup({ visible: false });\n }\n\n // 字段\n function handleField(e: any, i: number, val: any) {\n store.setPopup({\n visible: true,\n node: e.currentTarget,\n container: ref.current,\n content: (\n <SelectJoinColumn\n data={data}\n value={val}\n // theme={ColumnsPopupThemeEnum.greenGrass}\n isGroup={true}\n // @ts-ignore\n onGroup={(data: MetaSummarize_By) => {\n let _data = cloneDeep(data);\n if (_data.alias != SummarizeAlias) {\n _data.fieldAlias = _data.name;\n _data.fieldUuid = uuidv4('field');\n }\n\n const _caseList = caseList.slice();\n _caseList[i].expression = _data;\n setCaseList(_caseList);\n closePopup();\n }}\n />\n ),\n });\n }\n\n // 常量\n const handleConstant = (val: any, i: number) => {\n let _caseList = caseList.slice();\n (_caseList[i] as ValueMap).operator = val;\n _caseList = getTemplate(val, _caseList, i);\n\n setCaseList(_caseList);\n };\n\n // 表达式\n function handleExpression(e: any, i: number, val: any) {\n store.setPopup({\n visible: true,\n node: e.currentTarget,\n container: ref.current,\n content: (\n <SelectFilter\n isCustom\n container={ref.current}\n data={data}\n value={val}\n onChange={(data: MetaFilter_Item) => {\n let _data = cloneDeep(data);\n if (_data.alias != SummarizeAlias) {\n _data.fieldAlias = _data.name;\n _data.fieldUuid = uuidv4('field');\n }\n const _caseList = caseList.slice();\n _caseList[i].expression = _data;\n setCaseList(_caseList);\n closePopup();\n }}\n />\n ),\n });\n }\n // 删除\n function handleDel(e: any, index: number) {\n e.stopPropagation();\n const _caseList = caseList.slice();\n _caseList.splice(index, 1);\n setCaseList(_caseList);\n closePopup();\n }\n\n // 添加\n const addOperator = (val: string, index: number, position: string) => {\n const _caseList = caseList.slice() || [];\n\n let temItem = {\n operator: '',\n type: val,\n expression: '',\n };\n if (position === 'add') {\n _caseList.push(temItem);\n } else if (position === 'before') {\n (_caseList as any).splice(index, 0, temItem);\n } else if (position === 'after') {\n (_caseList as any).splice(index + 1, 0, temItem);\n } else {\n //替换\n (_caseList as any).splice(index, 1, temItem);\n }\n setCaseList(_caseList);\n };\n\n // 取消\n const _onClose = () => {\n onCancel?.();\n };\n\n // 确定\n const _onOk = () => {\n typeof onOk === 'function' && onOk?.({ name, formulaList: caseList });\n };\n\n // 分段\n const itemDom = (v: any, index: number) => {\n const { type } = v;\n if (type === OptionsTypeEnum.FIELD) {\n // 字段\n return (\n <div\n className={cx(`Sqb-TableName `, {\n notSelected: !v.expression?.quotes,\n })}\n onClick={(e) => handleField(e, index, v.expression)}\n >\n {!v.expression?.quotes && __('customColumn.selectField')}\n {v.expression.quotes}\n <span style={{ fontSize: 0 }} onClick={(e) => handleDel(e, index)}>\n <CloseIcon />\n </span>\n </div>\n );\n } else if (type === OptionsTypeEnum.INPUT) {\n // 输入框\n return (\n <div className={cx(`Sqb-TableName notSelected `)}>\n <Input\n className={':Sqb-Custom-input'}\n value={v.operator}\n placeholder={__('SqlQueryBuilder.pleaseEnter')}\n size='large'\n onChange={(val) => {\n handleConstant(val, index);\n }}\n />\n\n <span style={{ fontSize: 0 }} onClick={(e) => handleDel(e, index)}>\n <CloseIcon />\n </span>\n </div>\n );\n } else if (type === OptionsTypeEnum.OPERATOR) {\n //连接符\n return (\n <Select\n triggerProps={{\n clickToClose: true,\n }}\n value={v.operator}\n triggerElement={(value) => {\n return (\n <div\n className={cx(`Sqb-TableName `, {\n notSelected: !v.operator,\n })}\n >\n {!v.operator && __('customColumn.selectOperator')}\n {v.operator}\n <span style={{ fontSize: 0 }} onClick={(e) => handleDel(e, index)}>\n <CloseIcon />\n </span>\n </div>\n );\n }}\n onChange={(val) => {\n handleConstant(val, index);\n }}\n >\n {operatorList.map((option, index) => (\n <Select.Option key={index + '' + ind} value={option}>\n {option}\n </Select.Option>\n ))}\n </Select>\n );\n } else if (type === OptionsTypeEnum.EXPRESSION) {\n // 表达式\n return (\n <div\n className={cx(`Sqb-TableName `, {\n notSelected: !v.expression?.quotes,\n })}\n onClick={(e) => handleExpression(e, index, v.expression)}\n >\n {!v.expression.quotes && __('customColumn.selectExpression')}\n {v.expression.quotes}\n <span style={{ fontSize: 0 }} onClick={(e) => handleDel(e, index)}>\n <CloseIcon />\n </span>\n </div>\n );\n } else if (type === OptionsTypeEnum.OTHER) {\n // 其他\n return (\n <Select\n triggerProps={{\n clickToClose: true,\n }}\n value={v.operator}\n triggerElement={(value) => {\n return (\n <div\n className={cx(`Sqb-TableName `, {\n notSelected: !v.operator,\n })}\n >\n {!v.operator && __('customColumn.selectOtherSyntax')}\n {v.operator}\n <span style={{ fontSize: 0 }} onClick={(e) => handleDel(e, index)}>\n <CloseIcon />\n </span>\n </div>\n );\n }}\n onChange={(val) => {\n handleConstant(val, index);\n }}\n >\n {filterCase.map((option, index) => (\n <Select.Option key={index + '' + ind} value={option}>\n {option}\n </Select.Option>\n ))}\n </Select>\n );\n } else {\n return (\n <Select\n triggerProps={{\n clickToClose: true,\n }}\n value={v.operator}\n triggerElement={(value) => {\n return (\n <div\n className={cx(`Sqb-TableName `, {\n notSelected: true,\n })}\n >\n {__('customColumn.selectCustomInput')}\n <span style={{ fontSize: 0 }} onClick={(e) => handleDel(e, index)}>\n <CloseIcon />\n </span>\n </div>\n );\n }}\n onChange={(val) => {\n addOperator(val, index, '');\n }}\n >\n {customTypes.map((option, index) => (\n <Select.Option key={index + '' + ind} value={option.value}>\n {option.label}\n </Select.Option>\n ))}\n </Select>\n );\n }\n };\n\n return (\n <div className='custom-box' ref={ref}>\n <VisualBox>\n <div className={`Sqb-item Sqb-case-editor mb-2 mt-2`}>\n <div className={`Sqb-item--content`}>\n <div className='Sqb-NotebookCell-header'>\n <div\n className={`mt-2 font-bold uppercase tracking-wider`}\n style={{ fontSize: 12, color: '#949aab' }}\n >\n {__('customColumn.giveItAName')}\n </div>\n\n <div>\n <Input\n className={':Sqb-input mt-2 mb-2 w-full block'}\n value={name}\n placeholder={__('customColumn.somethingAwesomeToDocument')}\n size='large'\n onChange={(val) => {\n setName(val);\n }}\n />\n </div>\n </div>\n <div className={`Sqb-NotebookCell`}>\n {caseList?.map((v: ValueMap, i: number) => {\n return (\n <div\n className={cx('Sqb-Filter-item', {\n hover: ind === i,\n })}\n key={i}\n onMouseEnter={(e: any) => {\n setInd(i);\n }}\n onMouseLeave={() => {\n setInd(-1);\n }}\n >\n <Select\n trigger={'hover'}\n triggerProps={{\n clickToClose: true,\n }}\n virtualListProps={{\n threshold: null,\n }}\n triggerElement={() => {\n return (\n <div\n className='left-arrow'\n v-index={i}\n v-type='before'\n onClick={() => {\n addOperator('', i, 'before');\n }}\n >\n <img src={arrow} />\n </div>\n );\n }}\n onChange={(val) => {\n addOperator(val, i, 'before');\n }}\n >\n {customTypes.map((option, index) => (\n <Select.Option key={index + '' + ind} value={option.value}>\n {option.label}\n </Select.Option>\n ))}\n </Select>\n\n {/* 判断符 */}\n {itemDom(v, i)}\n\n <Select\n trigger={'hover'}\n triggerProps={{\n clickToClose: true,\n }}\n virtualListProps={{\n threshold: null,\n }}\n style={{ width: '100px' }}\n value={''}\n autoWidth={{ minWidth: 300 }}\n triggerElement={(value) => {\n return (\n <div\n className='right-arrow'\n v-index={i}\n v-type='after'\n onClick={() => {\n addOperator('', i, 'after');\n }}\n >\n <img src={arrow} />\n </div>\n );\n }}\n onChange={(val, option) => {\n addOperator(val, i, 'after');\n }}\n >\n {customTypes.map((option, index) => (\n <Select.Option key={index + '' + ind} value={option.value}>\n {option.label}\n </Select.Option>\n ))}\n </Select>\n </div>\n );\n })}\n {!value ||\n (Array.from(caseList).length < 1 && (\n <Select\n trigger={'click'}\n triggerProps={{\n clickToClose: true,\n }}\n virtualListProps={{\n threshold: null,\n }}\n triggerElement={() => {\n return (\n <div className={cx(`Sqb-TableName gray-name`)}>\n <AddIcon />\n </div>\n );\n }}\n onChange={(val) => {\n addOperator(val, -1, 'add');\n }}\n >\n {customTypes.map((option, index) => (\n <Select.Option key={index + '' + ind} value={option.value}>\n {option.label}\n </Select.Option>\n ))}\n </Select>\n ))}\n </div>\n <p className='Sqb-NotebookCell-preview'>\n 预览:\n {caseList\n .map((v: any, i: number) => {\n if (v.expression) {\n return v?.expression?.quotes;\n } else {\n return v.operator;\n }\n })\n .join(' ')}\n </p>\n </div>\n </div>\n </VisualBox>\n\n {/* {ref.current && (\n <Popup\n visible={popup.visible}\n container={ref.current}\n zIndex={zIndex ? String(zIndex) : null}\n closable={true}\n node={popup.node}\n innerSpacing={popup.innerSpacing}\n hideVisible={closePopup}\n >\n {popupContent}\n </Popup>\n )} */}\n <div className={`btns p-4`}>\n <div style={{ marginLeft: 'auto' }}>\n <button className={`btn`} onClick={() => _onClose()}>\n {__('customColumn.cancel')}\n </button>\n <button className={cx(`btn ml-4`, { usable })} disabled={!usable} onClick={_onOk}>\n {__('customColumn.complete')}\n </button>\n </div>\n </div>\n </div>\n );\n};\n\nexport default CaseEditor;\n","// @ts-nocheck\nimport React from 'react';\nimport { Modal2 } from '@gingkoo/pandora';\nimport { Provider } from '../../hooks/use-provider';\nimport { getMaxZIndexInParents } from '../../utils/helper-dom';\n\nimport { __ } from '../../locale';\nimport { findIndex } from '../../utils';\nimport { sleep, flatArray } from '../../utils/helper';\nimport {\n MetaCustom,\n MetaListType,\n MetaJoin,\n MetaCustom_Item,\n MetaData_ColumnsType,\n MetaData,\n MetaSummarize,\n} from '../../store/types';\nimport { getHelper } from '../../utils';\nimport { TypeEnum, SQL_COLUMN_TYPE } from '../../store/enum';\nimport CustomEditor from '../../components/dialog/custom-editor';\nimport { uuidv4 } from '../../utils/helper';\n\nimport { AddIcon, CloseIcon } from '../icons';\nimport { CustomColumnPopup } from '../dialog';\nimport Wrapper from './components/Wrapper';\nimport NextDom from './components/meta-icon';\nimport Header from './components/header';\n\nimport { useStore } from '../../hooks/use-provider';\n\ninterface PropsType {\n store?: any;\n meta: MetaCustom;\n groupIndex: number;\n}\n\nconst CustomColumn = (props: PropsType) => {\n const { meta, groupIndex } = props;\n const store = useStore();\n let { customColumn } = meta;\n let index = findIndex(store.metaList[groupIndex].list, meta);\n\n function getAvailableColumns(): MetaData_ColumnsType[] {\n let newMeta = store.metaList[groupIndex].list.slice();\n let columns: MetaData_ColumnsType[] = [];\n let { ExistAboveGroupBy, prevList } = getHelper(store.metaList[groupIndex].list, meta);\n\n // TIPS metabase 将自定义列也放进去了 但是他们拼sql的时候又没有实现 这里我们也暂时不加进来\n // TIPS metabase 将聚合的参数也弄进来了\n if (ExistAboveGroupBy) {\n columns = flatArray(\n prevList\n .filter((v: MetaListType) => v.type === TypeEnum.joinData)\n // @ts-ignore\n .map((v: MetaJoin) =>\n v.columns.map((o) => ({ ...o, name: `${v.table2.alias} -> ${o.name}` })),\n ),\n );\n } else {\n let mainTable: MetaData = newMeta[0];\n columns = flatArray(\n store.metaList[groupIndex].list\n .slice(0, index)\n .filter((v: MetaListType) => v.type === TypeEnum.joinData)\n .map((v: MetaJoin) =>\n v.columns.map((o) => ({ ...o, name: `${v.table2.alias} -> ${o.name}` })),\n ),\n );\n\n columns = [\n ...mainTable.columns.map((v: MetaData_ColumnsType) => {\n return {\n ...v,\n name: `${mainTable.table.alias} -> ${v.name}`,\n };\n }),\n ...columns,\n ];\n }\n return columns;\n }\n\n async function handleUpdate(e: any, i: number) {\n const node = e.currentTarget;\n closePopup();\n await sleep(100);\n\n let newMeta = store.metaList[groupIndex].list.slice();\n let value: MetaCustom_Item = customColumn[i];\n let columns: MetaData_ColumnsType[] = getAvailableColumns();\n\n store.setPopup({\n visible: true,\n node,\n content: (\n <CustomColumnPopup\n data={columns}\n value={value}\n onChange={(data: MetaCustom_Item) => {\n newMeta[index].customColumn[i] = data;\n\n // TIPS 修改了名字后面都得删除 暂时不删除 因为过滤器和组合都没用到自定义列\n // if(data.name !== value.name){\n // newMeta = newMeta.filter((v: MetaListType, _i: number)=> _i<=index)\n // }\n store.setMeta(newMeta, groupIndex);\n closePopup();\n }}\n onClose={closePopup}\n />\n ),\n });\n }\n\n function getColumns(): DataType[] {\n let { ExistAboveGroupBy, prevList, prevGroupBy } = getHelper(\n store.metaList[groupIndex].list,\n meta,\n );\n let newMeta = store.metaList[groupIndex].list.slice();\n\n let mainTable: MetaData = newMeta[0] as MetaData;\n let data: DataType[];\n if (ExistAboveGroupBy) {\n let _data: DataType = {\n table: (prevGroupBy as MetaSummarize).alias,\n tableId: (prevGroupBy as MetaSummarize).alias,\n tableUuid: (prevGroupBy as MetaSummarize).tableUuid || uuidv4('table'),\n alias: (prevGroupBy as MetaSummarize).alias,\n datasourceId: mainTable.table.datasourceId,\n datasourceName: mainTable.table.datasourceName,\n columns: [],\n };\n if (prevGroupBy?.group?.length) {\n _data.columns = _data.columns.concat(\n prevGroupBy.group.map((v: MetaSummarize_Group) => {\n return {\n name_zh: v.quotes,\n ...v,\n name: v.quotes,\n // name_zh: '',\n database_type: v?.database_type || SQL_COLUMN_TYPE.FLOAT,\n sql: v.sql,\n special_type: '',\n select: true,\n };\n }),\n );\n }\n if (prevGroupBy?.by?.length) {\n _data.columns = _data.columns.concat(\n prevGroupBy.by.map((v: MetaSummarize_By) => {\n return {\n name_zh: v.quotes,\n ...v,\n name: v.quotes,\n // name_zh: '',\n database_type: v?.database_type || SQL_COLUMN_TYPE.FLOAT,\n sql: v.sql,\n special_type: '',\n select: true,\n };\n }),\n );\n }\n data = [_data];\n\n let joinData = prevList\n .filter((v: MetaListType) => v.type === TypeEnum.joinData)\n // @ts-ignore\n .filter((v: MetaJoin) => v && v.table2.name);\n if (joinData.length) {\n data = data.concat(\n // @ts-ignore\n joinData.map((v: MetaJoin) => {\n return {\n alias: v.table2.alias,\n table: v.table2.name,\n tableId: v.table2.id,\n tableUuid: v.table2.tableUuid || uuidv4('table'),\n columns: v.columns,\n datasourceId: mainTable.table.datasourceId,\n datasourceName: mainTable.table.datasourceName,\n };\n }),\n );\n }\n } else {\n // @ts-ignore\n data = store.metaList[groupIndex].list\n .slice(0, index)\n .map((v: MetaListType) => {\n if (v.type === TypeEnum.data) {\n return {\n alias: v.table.alias,\n table: v.table.name,\n tableId: v.table.id,\n tableUuid: v.table.tableUuid || uuidv4('table'),\n columns: v.columns,\n datasourceId: mainTable.table.datasourceId,\n datasourceName: mainTable.table.datasourceName,\n };\n } else if (v.type === TypeEnum.joinData) {\n return {\n alias: (v as MetaJoin).table2.alias,\n table: (v as MetaJoin).table2.name,\n tableId: (v as MetaJoin).table2.id,\n tableUuid: (v as MetaJoin).table2.tableUuid || uuidv4('table'),\n columns: (v as MetaJoin).columns,\n datasourceId: mainTable.table.datasourceId,\n datasourceName: mainTable.table.datasourceName,\n };\n } else {\n return { table: null };\n }\n })\n .filter((v: any) => v.table);\n }\n return data;\n }\n\n // 自定义弹窗\n const showSubQuery = (e, i) => {\n let newMeta = store.metaList[groupIndex].list.slice();\n const _value = newMeta[index].customColumn[i] || [];\n\n let zIndex = store.popupContainer.current\n ? getMaxZIndexInParents(store.popupContainer.current)\n : 0;\n\n let o = Modal2.openModal({\n title: __('SqlQueryBuilder.customExpression'),\n transparentMask: true,\n zIndex: Number(zIndex),\n content: (\n <>\n <Provider value={store}>\n <CustomEditor\n data={getColumns()}\n value={_value}\n onCancel={() => {\n o.close();\n }}\n onOk={(data) => {\n if (i === -1) {\n newMeta[index].customColumn.push(data);\n } else {\n newMeta[index].customColumn[i] = data;\n }\n store.setMeta(newMeta, groupIndex);\n try {\n o.close();\n } catch (e) {\n console.warn(e);\n } finally {\n o.close();\n }\n }}\n />\n </Provider>\n </>\n ),\n onClose: () => {},\n });\n };\n\n function handleAdd(e: any) {\n let newMeta = store.metaList[groupIndex].list.slice();\n let columns: MetaData_ColumnsType[] = getAvailableColumns();\n store.setPopup({\n visible: true,\n node: e.currentTarget,\n content: (\n <CustomColumnPopup\n data={columns}\n value={null}\n groupIndex={groupIndex}\n meta={meta}\n onChange={(data: MetaCustom_Item) => {\n newMeta[index].customColumn.push(data);\n store.setMeta(newMeta, groupIndex);\n closePopup();\n }}\n onClose={closePopup}\n />\n ),\n });\n }\n\n function handleDel(e: any, itemId: number) {\n e.stopPropagation();\n closePopup();\n let newMeta = store.metaList[groupIndex].list.slice();\n // TIPS 删除了后面都得删除 暂时不删除 因为过滤器和组合都没用到自定义列\n newMeta[index].customColumn = customColumn.filter(\n (_: MetaCustom_Item, i: number) => i !== itemId,\n );\n store.setMeta(newMeta, groupIndex);\n }\n\n function closePopup() {\n store.setPopup({ visible: false });\n }\n return (\n <Wrapper className={`Sqb-item`}>\n <div className={`Sqb-hover-parent`}>\n <Header\n className='gray-text'\n title={__('SqlQueryBuilder.customColumn')}\n onClose={() => {\n closePopup();\n store.delMeta(meta, groupIndex);\n }}\n />\n <div className={`Sqb-item--content`}>\n <div className={`Sqb-NotebookCell gray-bg`}>\n {meta.customColumn.map((v: MetaCustom_Item, i: number) => {\n return (\n <div\n className={`Sqb-TableName gray-name`}\n key={i}\n onClick={(e) => showSubQuery(e, i)}\n >\n {v.name}\n <span style={{ fontSize: 0 }} onClick={(e) => handleDel(e, i)}>\n <CloseIcon />\n </span>\n </div>\n );\n })}\n {/* <div className={`Sqb-TableName gray-name`} onClick={handleAdd}>\n <AddIcon />\n </div> */}\n <div\n className={`Sqb-TableName gray-name`}\n onClick={(e) => {\n showSubQuery(e, -1);\n }}\n >\n <AddIcon />\n </div>\n </div>\n </div>\n\n <NextDom meta={meta} groupIndex={groupIndex} />\n </div>\n </Wrapper>\n );\n};\n\nexport default CustomColumn;\n","import type { DatasourceType } from '../types';\nimport { TypeEnum, SpecialType, JoinEnum, SQL_COLUMN_TYPE, SortEnum } from './enum';\n\nexport type ToolbarType =\n | TypeEnum\n | 'filter'\n | 'summarize'\n | 'joinData'\n | 'permissionTable'\n | 'customColumn'\n | 'sort'\n | 'rowLimit'\n | 'union';\n\nexport type MetaListType =\n | MetaData\n | MetaJoin\n | MetaCustom\n | MetaFilter\n | MetaSummarize\n | MetaSort\n | MetaLimit\n | MetaPermissionTable;\n\nexport type initColumnsType = MetaData_ColumnsType;\n\ninterface ExpressionsType {\n operator: string;\n // left_column: string;\n // left_column_id: string;\n // left_column_quotes: string;\n left_fieldAlias: string;\n left_fieldUuid: string;\n left_quotes: string;\n\n left_string: string;\n left_type: 'string' | 'constant' | 'field' | '' | null;\n left_constant: string;\n // right_column: string;\n // right_column_id: string;\n // right_column_quotes: string;\n\n right_fieldAlias: string;\n right_fieldUuid: string;\n right_quotes: string;\n\n right_string: string;\n right_type: 'string' | 'constant' | 'field' | '' | null;\n right_constant: string;\n // right_isString: boolean;\n}\n\nexport interface TableColumnsMapType {\n [tableName: string]: initColumnsType[];\n}\n\n// ----------- 第一个模块 数据模块 ------------\nexport interface TableType {\n name: string; // 表名\n id: string; // 表名\n alias: string; // 别名\n tableUuid: string; // 表唯一标识\n}\nexport type MetaData_TableType = TableType & DatasourceType;\n\nexport interface MetaData_ColumnsType {\n name: string; // 字段名\n id: string; // 字段名\n name_zh?: string; // 字段中文名\n fieldAlias: string; // 字段别名\n fieldUuid: string; // 字段唯一标识\n realName?: string; // 真实的字段名 别名 (聚合在用)\n database_type: SQL_COLUMN_TYPE | ''; // 字段类型\n special_type: SpecialType | ''; // 主外键\n datasourceId: string; // 数据源id\n datasourceName: string; // 数据源名\n // column: string;\n // column_id: string;\n select: boolean; // 是否选中\n summarizeType?: MetaSummarize_Enum; //是否为group by\n}\n\nexport interface MetaData {\n metaKey: number;\n readonly?: boolean;\n hidden?: boolean;\n type: TypeEnum.data;\n table: MetaData_TableType;\n columns: MetaData_ColumnsType[];\n isSubquery?: boolean;\n subquery?: MetaListType[]; // 子查询\n}\n\n// ----------- 第二个模块 关联模块 ------------\n\nexport interface MetaJoin_TalbeType {\n name: string; // 表名\n id: string; // 表名\n tableUuid: string; // 唯一id\n alias: string; // 表别名\n datasourceName: string; // 数据源名\n datasourceId: string; // 数据源id\n column_id?: string; //老数据\n column?: string; //老数据\n fieldAlias: string; // 当前表选择的字段名\n fieldUuid: string; // 当前表选择的字段名\n groupSql?: string; // 如果table1 是结果集 那么这个字段 就有值,放结果集的别名\n quotes?: string;\n // [name: string]: any;\n}\nexport interface MetaJoin {\n metaKey: number;\n type: TypeEnum.joinData;\n joinType: JoinEnum; // 怎么关联\n readonly?: boolean;\n hidden?: boolean;\n table1: MetaJoin_TalbeType;\n table2: MetaJoin_TalbeType;\n columns: MetaData_ColumnsType[];\n expressions: ExpressionsType[];\n isSubquery?: boolean; //是否是子查询\n subquery?: MetaListType[]; //子查询\n}\n\n// ----------- 第三个模块 自定义列模块 ------------\nexport interface MetaCustom_Item {\n name: string; // 用户起的别名\n type?: string;\n formulaList?: any[];\n}\nexport interface MetaCustom {\n metaKey: number;\n type: TypeEnum.customColumn;\n customColumn: MetaCustom_Item[];\n}\n\n// ----------- 第四个模块 过滤器模块 ------------\nexport interface Filter_Formula {\n type?: string;\n params?: string[] | number[];\n}\n\n// 过滤器类型\nexport enum Filter_TypeEnum {\n EXPRESSION = 'expression',\n NOT_EXISTS = 'notExists',\n}\nexport interface MetaFilter_Item {\n table: string; // 表名\n tableId: string; // 表id\n tableUuid: string; // 表唯一id\n fieldUuid: string; // 字段唯一id\n fieldAlias: string; //字段别名\n alias: string; // 表的别名\n name: string; // 字段名\n id: string; // 字段名\n groupSql?: string; // 如果表是 上一个结果集 那么该字段有值,值是结果集的列别名\n database_type: SQL_COLUMN_TYPE | ''; // 字段类型\n val: string[]; // 选择结果 如果有两个 长度就为2\n condition: string; // 条件 聚合by过来的会有这个\n quotes: string; // 展示用户看的 组装的文字\n // column: string;\n datasourceId: string; // 数据源id\n datasourceName: string; // 数据源名\n isField?: boolean; //是否是选择字段\n valType?: 'field' | 'string' | 'constant' | ''; //是否是选择字段\n constantName?: string; // 常量名称\n table2?: MetaJoin_TalbeType | null;\n formula?: Filter_Formula;\n notExists?: MetaListType[]; // notExists\n type?: Filter_TypeEnum; // 过滤器类型\n summarizeType?: MetaSummarize_Enum;\n sql?: string;\n realName?: string;\n}\nexport interface MetaFilter {\n metaKey: number;\n type: TypeEnum.filter;\n isPermanent?: boolean; // 是否常驻 默认 false , 如果 true 则不显示 删除按钮\n filter: MetaFilter_Item[];\n}\n\n// ----------- 第五个模块 聚合模块 ------------\nexport enum MetaSummarize_Enum {\n GROUP = 'group',\n BY = 'by',\n}\nexport interface MetaSummarize_Group {\n table: string; // 表名\n tableId: string; // 表名\n tableUuid: string; // 表唯一标识\n alias?: string; // 表的别名\n name: string; // 字段名 (显示用)\n id: string; // 字段名 (显示用)\n realName?: string; // 真实的字段名 (提交后端用,因为 上面的 name 可能起过别名,提交到后端需要用别名)\n database_type?: SQL_COLUMN_TYPE | ''; // 字段类型\n sql: string; // sql 不带别名\n fieldAlias: string; // 字段别名\n fieldUuid: string; // 字段唯一标识\n condition: string; // 选择条件\n quotes: string; // 前端显示用户看的文字\n datasourceId: string;\n datasourceName: string;\n // column: string;\n // column_id: string;\n summarizeType: MetaSummarize_Enum;\n [params: string]: any;\n}\nexport interface MetaSummarize_By {\n table: string; // 表名\n tableId: string; // 表名\n tableUuid: string; // 表唯一标识\n alias: string; // 表的别名\n fieldAlias: string; // 字段别名\n fieldUuid: string; // 字段唯一标识\n name: string; // 字段名 (显示用)\n id: string; // 字段名 (显示用)\n datasourceId: string;\n datasourceName: string;\n // column: string;\n // column_id: string;\n realName?: string; // 真实的字段名 (提交后端用,因为 上面的 name 可能起过别名,提交到后端需要用别名)\n sql: string; // sql 不带别名\n database_type: SQL_COLUMN_TYPE | ''; // 字段类型\n condition: string; // 条件 聚合by过来的会有这个\n quotes: string; // 展示用户看的 组装的文字\n summarizeType: MetaSummarize_Enum;\n}\nexport interface MetaSummarize {\n metaKey: number;\n type: TypeEnum.summarize;\n alias: string;\n tableUuid: string; // 表唯一标识\n group: MetaSummarize_Group[];\n by: MetaSummarize_By[];\n}\n\n// ----------- 第六个模块 排序模块 ------------\nexport interface MetaSort_Item {\n table: string; // 表名\n tableId: string; // 表名\n tableUuid: string; //\n alias: string; // 表别名\n name: string; // 字段名\n sql: string; // 字段sql\n sort: SortEnum;\n}\nexport interface MetaSort {\n metaKey: number;\n type: TypeEnum.sort;\n sort: MetaSort_Item[];\n}\n\n// ----------- 第七个模块 行限制模块 ------------\nexport interface MetaLimit {\n metaKey: number;\n type: TypeEnum.rowLimit;\n limit: string;\n}\n\n// ----------- 第八个模块 权限表模块 ------------\nexport interface MetaPermissionTable {\n metaKey: number;\n type: TypeEnum.permissionTable;\n table: MetaData_TableType;\n}\n\n// ----------- 接口入参 --------------\nexport interface LooseObject {\n [TypeEnum.data]?: MetaData;\n [TypeEnum.joinData]?: MetaJoin[];\n [TypeEnum.permissionTable]?: MetaPermissionTable;\n [TypeEnum.customColumn]?: MetaCustom;\n [TypeEnum.filter]?: MetaFilter;\n [TypeEnum.summarize]?: MetaSummarize;\n [TypeEnum.sort]?: MetaSort;\n [TypeEnum.rowLimit]?: MetaLimit;\n children?: LooseObject;\n}\n\ninterface ParamsCustomColumns {\n alias: string;\n // formula: string;\n}\n\ninterface ParamsJoinTables {\n alias: string; // 别名\n joinCondition: string; // 连接的列 多个用on分隔 eg. a.a=b.b on a.x=b.x\n joinType: string; // 连接方式\n queryColumns: string[]; // 选择的列\n tableName: string; // 表名\n datasourceId?: string; // 数据源id\n}\n\nexport interface ParamsStruct {\n alias?: string; // 第一层传主表的别名 其他的都写死source\n tableName?: string; // 主表名只有第一层需要传\n datasourceId?: string; // 数据源id\n queryColumns?: string[]; // 查询的列,第一层传主表勾选的列,其他层传group by出来的列\n customColumns?: ParamsCustomColumns[]; // 自定义列\n filters?: string; // filter 用 on 分隔\n groupBy?: {\n // 聚合\n calcColumns: string[]; // 左边\n groupColumns: string[]; // 右边\n };\n joinTables?: ParamsJoinTables[]; // 关联\n limit?: number;\n orderInfos?: string;\n privilegeTable?: string; // 权限表\n hasInnerSql: boolean; // 是否有嵌套\n innerSqlStruct: ParamsStruct | null; // 嵌套内容\n}\n\nexport interface ParamsType {\n id: string;\n code: string;\n}\n\nexport interface PopupData {\n visible: boolean;\n node?: any;\n content?: any;\n}\n\n/** \nlet a = {\n \"idxId\": \"string\",\n \"sqlStruct\": {\n \"alias\": \"string\",// 主表别名 只有最外层可以没有\n \"tableName\": \"string\",// 主表名 除了最内层 都可以没有\n \"queryColumns\": [\n \"string\"// 第一层放 主表选择的字段,其他的放 groupby 的两个字段别名\n ],\n \"groupBy\": {// 聚合\n \"calcColumns\": [// 左边\n \"string\"\n ],\n \"groupColumns\": [// 右边\n \"string\"\n ]\n },\n \"customColumns\": [// 自定义列\n {\n \"alias\": \"string\",\n \"formula\": \"string\"\n }\n ],\n \"filters\": \"string\",// filter 用 on 分隔\n \"hasInnerSql\": false,// 是否有嵌套\n \"innerSqlStruct\": {},// 嵌套内容\n \"joinTables\": [// 关联\n {\n \"alias\": \"string\",\n \"joinCondition\": \"a.a = b.b\",\n \"joinType\": \"string\",\n \"queryColumns\": [\n \"string\"\n ],\n \"tableName\": \"string\"\n }\n ],\n \"limit\": 0,\n \"orderInfos\": \"string\",\n \n },\n}\n*/\n","var img = \"data:image/svg+xml,%3c!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='26px' height='18px' version='1.1'%3e%3cpath d='m 1 6 L 14 6 L 14 1 L 26 9 L 14 18 L 14 12 L 1 12 z' stroke='white' fill='%2329b6f2'/%3e%3c/svg%3e\";\n export default img;","import React, { useState } from 'react';\nimport cx from 'classnames';\nimport Metabase from '../../index';\nimport { Modal2 } from '@gingkoo/pandora';\n\nimport { __ } from '../../locale';\nimport isEqual from 'lodash/isEqual';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { uuidv4 } from '../../utils/helper';\nimport { findIndex, getHelper, buildSqlQuery } from '../../utils';\nimport { TypeEnum, SQL_COLUMN_TYPE } from '../../store/enum';\nimport SelectList from '../dialog/select-list';\nimport { getMaxZIndexInParents } from '../../utils/helper-dom';\n\nimport {\n MetaFilter,\n MetaFilter_Item,\n MetaSummarize,\n MetaListType,\n MetaJoin,\n MetaSummarize_Group,\n MetaSummarize_By,\n MetaData,\n Filter_TypeEnum,\n} from '../../store/types';\nimport { DataType } from '../dialog/select-join-column';\nimport { Select } from '@gingkoo/pandora';\n\nimport Wrapper from './components/Wrapper';\nimport { AddIcon, CloseIcon } from '../icons';\nimport NextDom from './components/meta-icon';\nimport Header from './components/header';\nimport { SelectFilter } from '../dialog';\nimport arrow from './arrow.svg';\n\nimport { useStore } from '../../hooks/use-provider';\n\ninterface PropsType {\n meta: MetaFilter;\n groupIndex: number;\n}\n\nconst Filter = (props: PropsType) => {\n const { meta, groupIndex } = props;\n const store = useStore();\n let { filter } = meta;\n const { notExistsColumns } = store.preProps;\n\n const temEref = React.useRef(null);\n let index = findIndex(store.metaList[groupIndex].list, meta);\n let notSelected = !meta.filter.length;\n const [ind, setInd] = useState(-1);\n\n function getColumns(): DataType[] {\n let { ExistAboveGroupBy, prevList, prevGroupBy } = getHelper(\n store.metaList[groupIndex].list,\n meta,\n );\n let newMeta = store.metaList[groupIndex].list.slice();\n\n let mainTable: MetaData = newMeta[0] as MetaData;\n let data: DataType[];\n if (ExistAboveGroupBy) {\n let _data: DataType = {\n table: (prevGroupBy as MetaSummarize).alias,\n tableId: (prevGroupBy as MetaSummarize).alias,\n tableUuid: (prevGroupBy as MetaSummarize).tableUuid,\n alias: (prevGroupBy as MetaSummarize).alias,\n datasourceId: mainTable.table.datasourceId,\n datasourceName: mainTable.table.datasourceName,\n columns: [],\n };\n if (prevGroupBy?.group?.length) {\n _data.columns = _data.columns.concat(\n prevGroupBy.group.map((v: MetaSummarize_Group) => {\n return {\n name_zh: v.quotes,\n ...v,\n name: v.quotes,\n // name_zh: '',\n database_type: v?.database_type || SQL_COLUMN_TYPE.FLOAT,\n sql: v.sql,\n special_type: '',\n select: true,\n };\n }),\n );\n }\n if (prevGroupBy?.by?.length) {\n _data.columns = _data.columns.concat(\n prevGroupBy.by.map((v: MetaSummarize_By) => {\n return {\n name_zh: v.quotes,\n ...v,\n name: v.quotes,\n // name_zh: '',\n database_type: v?.database_type || SQL_COLUMN_TYPE.FLOAT,\n sql: v.sql,\n special_type: '',\n select: true,\n };\n }),\n );\n }\n data = [_data];\n\n let joinData = prevList\n .filter((v: MetaListType) => v.type === TypeEnum.joinData)\n // @ts-ignore\n .filter((v: MetaJoin) => v && v.table2.name);\n if (joinData.length) {\n data = data.concat(\n // @ts-ignore\n joinData.map((v: MetaJoin) => {\n return {\n alias: v.table2.alias,\n table: v.table2.name,\n tableId: v.table2.id,\n tableUuid: v.table2.tableUuid || uuidv4('table'),\n columns: v.columns,\n datasourceId: mainTable.table.datasourceId,\n datasourceName: mainTable.table.datasourceName,\n };\n }),\n );\n }\n } else {\n // @ts-ignore\n data = store.metaList[groupIndex].list\n .slice(0, index)\n .map((v: MetaListType) => {\n if (v.type === TypeEnum.data) {\n return {\n alias: v.table.alias,\n table: v.table.name,\n tableId: v.table.id,\n tableUuid: v.table.tableUuid || uuidv4('table'),\n columns: v.columns,\n datasourceId: mainTable.table.datasourceId,\n datasourceName: mainTable.table.datasourceName,\n };\n } else if (v.type === TypeEnum.joinData) {\n return {\n alias: (v as MetaJoin).table2.alias,\n table: (v as MetaJoin).table2.name,\n tableId: (v as MetaJoin).table2.id,\n tableUuid: (v as MetaJoin).table2.tableUuid || uuidv4('table'),\n columns: (v as MetaJoin).columns,\n datasourceId: mainTable.table.datasourceId,\n datasourceName: mainTable.table.datasourceName,\n };\n } else {\n return { table: null };\n }\n })\n .filter((v: any) => v.table);\n }\n\n return data;\n }\n\n function handleUpdate(e: any, i: number) {\n let newMeta = store.metaList[groupIndex].list.slice();\n let val = filter[i];\n if (val.type === Filter_TypeEnum.NOT_EXISTS) {\n showNotExists(i, '');\n return;\n }\n let data = [...getColumns(), ...cloneDeep(notExistsColumns || [])];\n\n store.setPopup({\n visible: true,\n node: e.currentTarget,\n content: (\n <SelectFilter\n data={data}\n value={filter[i] as MetaFilter_Item}\n onChange={(data: MetaFilter_Item) => {\n (newMeta[index] as MetaFilter).filter.splice(i, 1, data);\n store.setMeta(newMeta, groupIndex);\n closePopup();\n }}\n />\n ),\n });\n }\n\n function handleAdd(e: any) {\n let node = e.currentTarget;\n\n let newMeta = store.metaList[groupIndex].list.slice();\n let data: DataType[] = [...getColumns(), ...cloneDeep(notExistsColumns || [])];\n let _index: number = Number(node.getAttribute('v-index'));\n let _type: string = node.getAttribute('v-type');\n\n let value: MetaFilter_Item = {\n table: '', // 表名\n tableId: '', // 表名\n fieldUuid: '', // 字段唯一id\n fieldAlias: '', //字段别名\n tableUuid: '',\n alias: '', // 表的别名\n name: '', // 字段名\n id: '', // 字段名\n database_type: '', // 字段类型\n condition: '', // 选择条件\n val: [], // 选择结果 如果有两个 长度就为2\n quotes: '', // 前端显示用户看的文字\n datasourceId: '',\n datasourceName: '',\n type: Filter_TypeEnum.EXPRESSION, // 过滤类型\n };\n\n store.setPopup({\n visible: true,\n node: e.currentTarget,\n content: (\n <SelectFilter\n data={data}\n value={value as MetaFilter_Item}\n onChange={(val: MetaFilter_Item) => {\n if (_type) {\n if (_type === 'before') {\n ((newMeta[index] as MetaFilter).filter as any).splice(_index, 0, val);\n } else {\n console.log('🚀 ~ ', newMeta[index].filter);\n ((newMeta[index] as MetaFilter).filter as any).splice(_index + 1, 0, val);\n }\n } else {\n (newMeta[index] as MetaFilter).filter.push(val);\n }\n store.setMeta(newMeta, groupIndex);\n closePopup();\n }}\n />\n ),\n });\n }\n\n function handleDel(e: any, itemId: number) {\n e.stopPropagation();\n closePopup();\n let newMeta = store.metaList[groupIndex].list.slice();\n // @ts-ignore\n newMeta[index].filter = filter.filter((_: any, i: number) => i !== itemId);\n store.setMeta(newMeta, groupIndex);\n }\n\n function closePopup() {\n store.setPopup({ visible: false });\n }\n\n const options = ['(', ')', 'AND', 'OR'];\n const addOperator = (val: string, i: number, type: 'before' | 'after') => {\n let newMeta = store.metaList[groupIndex].list.slice();\n let _filter = filter.slice();\n if (type === 'before') {\n (_filter as any).splice(i, 0, val);\n } else {\n (_filter as any).splice(i + 1, 0, val);\n }\n\n (newMeta[index] as MetaFilter).filter = [..._filter];\n setInd(-1);\n };\n\n // NotExists 窗口\n const showNotExists = (i: number, position: any) => {\n const { notExistsToolbar, toolbar, ...other } = store.preProps;\n\n let newMeta: MetaListType[] = store.metaList[groupIndex].list.slice();\n let index = findIndex(store.metaList[groupIndex].list, meta);\n let _value = position ? [] : (newMeta[index] as MetaFilter).filter[i]?.notExists || [];\n let oldList = position\n ? []\n : cloneDeep((newMeta[index] as MetaFilter).filter[i]?.notExists || []);\n let _toolbar = notExistsToolbar || toolbar;\n _toolbar = _toolbar.filter((v: string) => v !== 'group'); // 子查询不需要分组\n\n let zIndex = store.popupContainer.current\n ? getMaxZIndexInParents(store.popupContainer.current)\n : null;\n let notExistsColumns = getColumns();\n\n let o = Modal2.openModal({\n title: 'NOT EXISTS',\n transparentMask: true,\n zIndex: Number(zIndex),\n content: (\n <>\n <Metabase\n {...other}\n notExistsColumns={notExistsColumns}\n showFields={false}\n showSubquery={false}\n toolbar={_toolbar}\n btnText={__('SqlQueryBuilder.confirm')}\n value={_value}\n onOk={(newList) => {\n try {\n // 子查询未改变不做操作\n if (isEqual(newList, oldList)) {\n o.close();\n return;\n }\n const _tem: MetaFilter_Item = {\n notExists: newList,\n quotes: buildSqlQuery(newList),\n condition: '',\n table: '',\n tableId: '',\n fieldUuid: uuidv4('field'), // 字段唯一id\n fieldAlias: '', //字段别名\n tableUuid: uuidv4('table'),\n alias: '',\n name: '',\n id: '',\n database_type: '',\n val: [],\n datasourceId: '',\n datasourceName: '',\n type: Filter_TypeEnum.NOT_EXISTS,\n };\n // 新增\n if (i === -1) {\n // 如果是新增子查询\n (newMeta[index] as MetaFilter).filter.push(_tem);\n o.close();\n } else if (position) {\n //新增\n if (position === 'before') {\n ((newMeta[index] as MetaFilter).filter as any).splice(i, 0, _tem);\n } else {\n ((newMeta[index] as MetaFilter).filter as any).splice(i + 1, 0, _tem);\n }\n } else {\n // 编辑\n (newMeta[index] as MetaFilter).filter[i] = _tem;\n }\n\n store.setMeta(newMeta, groupIndex);\n o.close();\n } catch (e) {\n console.warn(e);\n } finally {\n o.close();\n }\n }}\n />\n </>\n ),\n onClose: () => {},\n });\n };\n // 过滤类型,子查询为完整的查询语句,表达式为单个字段\n // 目前只支持表达式和子查询两种类型\n const filterType: { label: string; value: Filter_TypeEnum }[] = [\n {\n label: __('customColumn.expression'), //表达式\n value: Filter_TypeEnum.EXPRESSION,\n },\n {\n label: 'NOT EXISTS',\n value: Filter_TypeEnum.NOT_EXISTS,\n },\n ];\n\n // 选择过滤类型\n function addSelectType(e: any) {\n const _e = cloneDeep(e);\n let node = _e.currentTarget;\n let _index: number = node.getAttribute('v-index') || -1;\n let _type: string = node.getAttribute('v-type');\n\n store.setPopup({\n visible: true,\n node: e.currentTarget,\n content: (\n <SelectList\n className='purple'\n list={filterType}\n onChange={(type: any) => {\n closePopup();\n // 如果是新增子查询\n if (type === Filter_TypeEnum.EXPRESSION) {\n handleAdd(_e);\n } else if (type === Filter_TypeEnum.NOT_EXISTS) {\n showNotExists(_index, _type);\n }\n }}\n />\n ),\n });\n }\n\n return (\n <Wrapper className={`Sqb-item`}>\n <div className={`Sqb-hover-parent`}>\n {!meta.isPermanent ? (\n <Header\n className='purple-text'\n title={__('SqlQueryBuilder.filter')}\n onClose={() => {\n closePopup();\n store.delMeta(meta, groupIndex);\n }}\n />\n ) : null}\n\n <div className={`Sqb-item--content`}>\n <div className={`Sqb-NotebookCell gray-bg`}>\n {filter.map((v: MetaFilter_Item, i: number) => {\n return (\n <div\n key={i}\n className={cx('Sqb-Filter-item', {\n hover: ind === i,\n })}\n onMouseEnter={(e: any) => {\n setInd(i);\n }}\n onMouseLeave={() => {\n setInd(-1);\n }}\n >\n <Select\n trigger={'hover'}\n triggerProps={{\n clickToClose: true,\n }}\n triggerElement={() => {\n return (\n <div\n className='left-arrow'\n onClick={addSelectType}\n v-index={i}\n v-type='before'\n >\n <img src={arrow} />\n </div>\n );\n }}\n onChange={(val) => {\n addOperator(val, i, 'before');\n }}\n >\n {options.map((option) => (\n <Select.Option key={option} value={option}>\n {option}\n </Select.Option>\n ))}\n </Select>\n\n {typeof v === 'string' ? (\n <div className={`Sqb-TableName purple-name`} key={i}>\n {v}\n <span style={{ fontSize: 0 }} onClick={(e) => handleDel(e, i)}>\n <CloseIcon />\n </span>\n </div>\n ) : (\n <div\n className={`Sqb-TableName purple-name`}\n key={i}\n onClick={(e) => handleUpdate(e, i)}\n >\n {v.type === Filter_TypeEnum.NOT_EXISTS ? 'not exitis ( * )' : v.quotes}\n <span style={{ fontSize: 0 }} onClick={(e) => handleDel(e, i)}>\n <CloseIcon />\n </span>\n </div>\n )}\n\n <Select\n trigger={'hover'}\n triggerProps={{\n clickToClose: true,\n }}\n triggerElement={(value) => {\n return (\n <div\n className='right-arrow'\n onClick={addSelectType}\n v-index={i}\n v-type='after'\n >\n <img src={arrow} />\n </div>\n );\n }}\n onChange={(val) => {\n addOperator(val, i, 'after');\n }}\n >\n {options.map((option) => (\n <Select.Option key={option} value={option}>\n {option}\n </Select.Option>\n ))}\n </Select>\n </div>\n );\n })}\n\n <div\n className={cx(`Sqb-TableName purple-name`, { notSelected })}\n onClick={addSelectType}\n >\n {notSelected ? __('filter.addFiltersToNarrowDownYourAnswers') : <AddIcon />}\n </div>\n {Array.from(filter).length > 0 && (\n <p className='Sqb-NotebookCell-preview'>\n 预览:\n {filter\n .map((v: MetaFilter_Item, i: number) => {\n if (typeof v === 'string') {\n return v;\n } else if (v.type === Filter_TypeEnum.NOT_EXISTS) {\n return `${buildSqlQuery(v.notExists)}`;\n } else {\n return v.quotes;\n }\n })\n .join(' ')}\n </p>\n )}\n </div>\n </div>\n\n <NextDom meta={meta} groupIndex={groupIndex} />\n </div>\n </Wrapper>\n );\n};\n\nexport default Filter;\n","import React from 'react';\nimport cx from 'classnames';\n\nimport { __ } from '../../../locale';\nimport { findIndex, getHelper } from '../../../utils';\nimport { TypeEnum, ColumnsPopupThemeEnum, SQL_COLUMN_TYPE } from '../../../store/enum';\nimport {\n MetaSummarize,\n MetaSummarize_By,\n MetaListType,\n MetaJoin,\n MetaSummarize_Group,\n MetaSummarize_Enum,\n} from '../../../store/types';\nimport SelectJoinColumn, { DataType, ColumnType } from '../../dialog/select-join-column';\nimport { Tooltip, Button, Modal, Input } from '@gingkoo/pandora';\nimport { uuidv4 } from '../../../utils/helper';\nimport { changeFieldAlias } from '../../../utils';\n\nimport { AddIcon, CloseIcon } from '../../icons';\nimport { useStore } from '../../../hooks/use-provider';\n\nexport type ValueType = ColumnType & {\n condition: string; // 选择条件\n quotes: string; // 前端显示用户看的文字\n};\n\ninterface PropsType {\n meta: MetaSummarize;\n groupIndex: number;\n}\n\nconst GroupBy = (props: PropsType) => {\n const { meta, groupIndex } = props;\n const store = useStore();\n let { by } = meta;\n let index = findIndex(store.metaList[groupIndex].list, meta);\n let notBySelected = !meta.by.length;\n\n function getColumns(): DataType[] {\n let { ExistAboveGroupBy, prevList, prevGroupBy } = getHelper(\n store.metaList[groupIndex].list,\n meta,\n );\n\n let data: DataType[];\n if (ExistAboveGroupBy) {\n let _data: DataType = {\n table: (prevGroupBy as MetaSummarize).alias,\n tableId: (prevGroupBy as MetaSummarize).alias,\n tableUuid: (prevGroupBy as MetaSummarize).tableUuid || uuidv4('table'),\n alias: (prevGroupBy as MetaSummarize).alias,\n columns: [],\n };\n if (prevGroupBy?.group?.length) {\n _data.columns = _data.columns.concat(\n prevGroupBy.group.map((v: MetaSummarize_Group) => {\n return {\n name_zh: v.quotes,\n ...v,\n name: v.quotes,\n realName: v.sql?.split(' AS ')?.[1] || '',\n // name_zh: '',\n database_type: v?.database_type || SQL_COLUMN_TYPE.FLOAT,\n special_type: '',\n select: true,\n };\n }),\n );\n }\n if (prevGroupBy?.by?.length) {\n _data.columns = _data.columns.concat(\n prevGroupBy.by.map((v: MetaSummarize_By) => {\n return {\n name_zh: v.quotes,\n ...v,\n name: v.quotes,\n realName: v.sql?.split(' AS ')?.[1] || '',\n // name_zh: '',\n database_type: v?.database_type || SQL_COLUMN_TYPE.FLOAT,\n special_type: '',\n select: true,\n };\n }),\n );\n }\n data = [_data];\n\n let joinData = prevList\n .filter((v: MetaListType) => v.type === TypeEnum.joinData)\n // @ts-ignore\n .filter((v: MetaJoin) => v && v.table2.name);\n if (joinData.length) {\n data = data.concat(\n // @ts-ignore\n joinData.map((v: MetaJoin) => {\n return {\n alias: v.table2.alias,\n tableUuid: v.table2.tableUuid,\n tableId: v.table2.id,\n table: v.table2.name,\n columns: v.columns,\n };\n }),\n );\n }\n } else {\n // @ts-ignore\n data = store.metaList[groupIndex].list\n .slice(0, index)\n .map((v: MetaListType) => {\n if (v.type === TypeEnum.data) {\n return {\n alias: v.table.alias,\n table: v.table.name,\n tableUuid: v.table.tableUuid,\n tableId: v.table.id,\n columns: v.columns,\n };\n } else if (v.type === TypeEnum.joinData) {\n return {\n alias: (v as MetaJoin).table2.alias,\n table: (v as MetaJoin).table2.name,\n tableId: (v as MetaJoin).table2.id,\n tableUuid: (v as MetaJoin).table2.tableUuid,\n columns: (v as MetaJoin).columns,\n };\n } else {\n return { table: null };\n }\n })\n .filter((v: any) => v.table);\n }\n return data;\n }\n\n function handleUpdate(e: any, i: number) {\n let newMeta = store.metaList[groupIndex].list.slice();\n let data: DataType[] = getColumns();\n let value: MetaSummarize_By = by[i];\n store.setPopup({\n visible: true,\n node: e.currentTarget,\n content: (\n <SelectJoinColumn\n data={data}\n value={value}\n theme={ColumnsPopupThemeEnum.greenGrass}\n isGroup={true}\n // @ts-ignore\n onGroup={(data: MetaSummarize_By) => {\n // @ts-ignore\n newMeta[index].by.splice(i, 1, data);\n // @ts-ignore\n newMeta[index].by = newMeta[index].by.map((v: MetaSummarize_By) => {\n const fieldAlias = `${v.alias}__${v.name}`;\n return {\n ...v,\n sql: `${v.alias}.${v.realName || v.name}`,\n fieldAlias: fieldAlias,\n };\n });\n if (value.quotes !== data.quotes) {\n newMeta = newMeta.filter((_: MetaListType, _i: number) => _i <= index);\n }\n store.setMeta(newMeta, groupIndex);\n closePopup();\n }}\n />\n ),\n });\n }\n\n function handleAdd(e: any) {\n let newMeta = store.metaList[groupIndex].list.slice();\n let data: DataType[] = getColumns();\n let value: MetaSummarize_By = {\n table: '',\n tableId: '',\n tableUuid: '',\n alias: '',\n fieldAlias: '',\n fieldUuid: '',\n name: '',\n id: '',\n sql: '',\n database_type: '',\n condition: '',\n quotes: '',\n datasourceId: '',\n datasourceName: '',\n // column: '',\n // column_id: '',\n summarizeType: MetaSummarize_Enum.BY,\n };\n store.setPopup({\n visible: true,\n node: e.currentTarget,\n content: (\n <SelectJoinColumn\n data={data}\n value={value}\n theme={ColumnsPopupThemeEnum.greenGrass}\n isGroup={true}\n // @ts-ignore\n onGroup={(data: MetaSummarize_By) => {\n // @ts-ignore\n newMeta[index].by.push(data);\n // @ts-ignore\n newMeta[index].by = newMeta[index].by.map((v: MetaSummarize_By) => {\n const fieldAlias = `${v.alias}__${v.name}`;\n return {\n ...v,\n sql: `${v.alias}.${v.realName || v.name}`,\n fieldAlias: fieldAlias,\n fieldUuid: uuidv4('field'),\n summarizeType: MetaSummarize_Enum.BY,\n };\n });\n store.setMeta(newMeta, groupIndex);\n closePopup();\n }}\n />\n ),\n });\n }\n\n function handleDel(e: any, itemId: number) {\n e.stopPropagation();\n closePopup();\n let newMeta = store.metaList[groupIndex].list.slice();\n // @ts-ignore\n newMeta[index].by = by.filter((_: MetaSummarize_By, i: number) => i !== itemId);\n newMeta = newMeta.filter((_: MetaListType, _i: number) => _i <= index);\n store.setMeta(newMeta, groupIndex);\n }\n\n function closePopup() {\n store.setPopup({ visible: false });\n }\n\n const onChangeFieldAlias = (val: string, i: number) => {\n let fieldAlias = val || '';\n Modal.confirm({\n title: __('SqlQueryBuilder.alias'), // 设置别名\n content: (\n <Input\n defaultValue={fieldAlias}\n onChange={(val) => {\n fieldAlias = val;\n }}\n ></Input>\n ),\n onOk: () => {\n let newMeta = store.metaList[groupIndex].list.slice();\n // @ts-ignore\n newMeta[index].by[i].sql = newMeta[index].by[i].sql.split('AS ')[0] + `AS ${fieldAlias}`; //修改sql\n newMeta[index].by[i].fieldAlias = fieldAlias;\n\n newMeta = changeFieldAlias(newMeta, newMeta[index].by[i]);\n\n store.setMeta(newMeta, groupIndex);\n },\n onCancel: () => {},\n });\n };\n return (\n <>\n {meta.by.map((v: any, i: number) => {\n return (\n <div className={`Sqb-TableName green-name`} key={i} onClick={(e) => handleUpdate(e, i)}>\n {v.quotes && (\n <Tooltip title={__('SqlQueryBuilder.alias')}>\n <Button\n className={':Sqb-TableName-as :Sqb-TableName green-name'}\n shape='circle'\n iconOnly\n primary\n icon={'As'}\n size='small'\n onClick={(e) => {\n e.stopPropagation();\n onChangeFieldAlias(v?.fieldAlias || '', i);\n }}\n ></Button>\n </Tooltip>\n )}\n {`${v.quotes} ${v.fieldAlias ? `as ${v.fieldAlias}` : ''}`}\n <span style={{ fontSize: 0 }} onClick={(e) => handleDel(e, i)}>\n <CloseIcon />\n </span>\n </div>\n );\n })}\n <div\n className={cx(`Sqb-TableName green-name`, { notSelected: notBySelected })}\n onClick={handleAdd}\n >\n {notBySelected ? __('summarize.selectTheColumnsForGrouping') : <AddIcon />}\n </div>\n </>\n );\n};\n\nexport default GroupBy;\n","import React from 'react';\nimport cx from 'classnames';\n\nimport { __ } from '../../../locale';\nimport { findIndex, getHelper } from '../../../utils';\nimport { TypeEnum, SQL_COLUMN_TYPE } from '../../../store/enum';\nimport { summarizeToSql } from '../../../store/helper';\nimport { Tooltip, Button, Modal, Input } from '@gingkoo/pandora';\nimport { uuidv4 } from '../../../utils/helper';\nimport {\n MetaListType,\n MetaSummarize,\n MetaSummarize_Group,\n MetaSummarize_By,\n MetaJoin,\n MetaSummarize_Enum,\n} from '../../../store/types';\nimport { DataType } from '../../dialog/select-join-column';\nimport { changeFieldAlias } from '../../../utils';\n\nimport { AddIcon, CloseIcon } from '../../icons';\nimport { SelectSummarize } from '../../dialog';\nimport { ValueType } from '../../dialog/select-summarize/index';\n\nimport { useStore } from '../../../hooks/use-provider';\n\ninterface PropsType {\n store?: any;\n meta: MetaSummarize;\n groupIndex: number;\n}\n\nconst SelectIndex = (props: PropsType) => {\n const { meta, groupIndex } = props;\n const store = useStore();\n let { group } = meta;\n let index = findIndex(store.metaList[groupIndex].list, meta);\n let notGroupSelected = !group.length;\n\n function getColumns(): DataType[] {\n let { ExistAboveGroupBy, prevList, prevGroupBy } = getHelper(\n store.metaList[groupIndex].list,\n meta,\n );\n\n let data: DataType[];\n if (ExistAboveGroupBy) {\n let _data: DataType = {\n table: (prevGroupBy as MetaSummarize).alias,\n tableId: (prevGroupBy as MetaSummarize).alias,\n tableUuid: (prevGroupBy as MetaSummarize).tableUuid || uuidv4('table'),\n alias: (prevGroupBy as MetaSummarize).alias,\n columns: [],\n };\n if (prevGroupBy?.group?.length) {\n _data.columns = _data.columns.concat(\n prevGroupBy.group.map((v: MetaSummarize_Group) => {\n return {\n name_zh: v.quotes,\n ...v,\n name: v.quotes,\n fieldUuid: uuidv4('field'),\n fieldAlias: v.fieldAlias || '',\n realName: v.sql?.split(' AS ')?.[1] || '',\n // name_zh: '',\n database_type: v?.database_type || SQL_COLUMN_TYPE.FLOAT,\n special_type: '',\n select: true,\n };\n }),\n );\n }\n if (prevGroupBy?.by?.length) {\n _data.columns = _data.columns.concat(\n prevGroupBy.by.map((v: MetaSummarize_By) => {\n return {\n name_zh: v.quotes,\n ...v,\n name: v.quotes,\n realName: v.sql?.split(' AS ')?.[1] || '',\n // name_zh: '',\n database_type: v?.database_type || SQL_COLUMN_TYPE.FLOAT,\n special_type: '',\n fieldUuid: uuidv4('field'),\n fieldAlias: v.fieldAlias || '',\n select: true,\n };\n }),\n );\n }\n data = [_data];\n\n let joinData = prevList\n .filter((v: MetaListType) => v.type === TypeEnum.joinData)\n // @ts-ignore\n .filter((v: MetaJoin) => v && v.table2.name);\n if (joinData.length) {\n data = data.concat(\n // @ts-ignore\n joinData.map((v: MetaJoin) => {\n return {\n alias: v.table2.alias,\n table: v.table2.name,\n tableUuid: v.table2.tableUuid,\n tableId: v.table2.id,\n columns: v.columns,\n };\n }),\n );\n }\n } else {\n // @ts-ignore\n data = store.metaList[groupIndex].list\n .slice(0, index)\n .map((v: MetaListType) => {\n if (v.type === TypeEnum.data) {\n return {\n alias: v.table.alias,\n table: v.table.name,\n tableUuid: v.table.tableUuid,\n tableId: v.table.id,\n columns: v.columns,\n };\n } else if (v.type === TypeEnum.joinData) {\n return {\n alias: (v as MetaJoin).table2.alias,\n table: (v as MetaJoin).table2.name,\n tableUuid: (v as MetaJoin).table2.tableUuid,\n tableId: (v as MetaJoin).table2.id,\n columns: (v as MetaJoin).columns,\n };\n } else {\n return { table: null };\n }\n })\n .filter((v: any) => v.table);\n }\n return data;\n }\n\n function handleUpdate(e: any, i: number) {\n let newMeta = store.metaList[groupIndex].list.slice();\n let data: DataType[] = getColumns();\n let value: MetaSummarize_Group = group[i];\n store.setPopup({\n visible: true,\n node: e.currentTarget,\n content: (\n <SelectSummarize\n data={data}\n value={value}\n ignoreGroupByType={store.ignoreGroupByType}\n onChange={(data: ValueType) => {\n //@ts-ignore\n newMeta[index].group.splice(i, 1, data);\n //@ts-ignore\n newMeta[index].group = newMeta[index].group.map((v: MetaSummarize_Group) => {\n const { sql, fieldAlias } = summarizeToSql(newMeta[index].group, v);\n return {\n ...v,\n //@ts-ignore\n sql: sql,\n fieldAlias: fieldAlias,\n };\n });\n if (value.quotes !== data.quotes) {\n newMeta = newMeta.filter((_: MetaListType, _i: number) => _i <= index);\n }\n store.setMeta(newMeta, groupIndex);\n closePopup();\n }}\n />\n ),\n });\n }\n\n function handleAdd(e: any) {\n let newMeta = store.metaList[groupIndex].list.slice();\n let data: DataType[] = getColumns();\n let value: MetaSummarize_Group = {\n table: '',\n tableId: '',\n tableUuid: '',\n alias: '',\n fieldAlias: '',\n fieldUuid: '',\n name: '',\n id: '',\n sql: '',\n database_type: '',\n condition: '',\n quotes: '',\n datasourceId: '',\n datasourceName: '',\n // column: '',\n // column_id: '',\n summarizeType: MetaSummarize_Enum.GROUP,\n };\n store.setPopup({\n visible: true,\n node: e.currentTarget,\n content: (\n <SelectSummarize\n data={data}\n value={value}\n ignoreGroupByType={store.ignoreGroupByType}\n onChange={(data: ValueType) => {\n // @ts-ignore\n newMeta[index].group.push(data);\n // @ts-ignore\n newMeta[index].group = newMeta[index].group.map((v: MetaSummarize_Group) => {\n const { sql, fieldAlias } = summarizeToSql(newMeta[index].group, v);\n\n return {\n ...v,\n // @ts-ignore\n sql: sql,\n fieldUuid: uuidv4('field'),\n fieldAlias: fieldAlias,\n summarizeType: MetaSummarize_Enum.GROUP,\n };\n });\n store.setMeta(newMeta, groupIndex);\n closePopup();\n }}\n />\n ),\n });\n }\n\n function handleDel(e: any, itemId: number) {\n e.stopPropagation();\n closePopup();\n let newMeta = store.metaList[groupIndex].list.slice();\n // @ts-ignore\n newMeta[index].group = group.filter((_: MetaSummarize_Group, i: number) => i !== itemId);\n newMeta = newMeta.filter((_: MetaListType, _i: number) => _i <= index);\n store.setMeta(newMeta, groupIndex);\n }\n\n function closePopup() {\n store.setPopup({ visible: false });\n }\n\n const onChangeFieldAlias = (val: string, i: number) => {\n let fieldAlias = val || '';\n Modal.confirm({\n title: __('SqlQueryBuilder.alias'), // 设置别名\n content: (\n <Input\n defaultValue={fieldAlias}\n onChange={(val) => {\n fieldAlias = val;\n }}\n ></Input>\n ),\n icon: false,\n onOk: () => {\n let newMeta = store.metaList[groupIndex].list.slice();\n // @ts-ignore\n newMeta[index].group[i].fieldAlias = fieldAlias;\n newMeta[index].group[i].sql =\n newMeta[index].group[i].sql.split('AS ')[0] + `AS ${fieldAlias}`; //修改sql\n\n newMeta = changeFieldAlias(newMeta, newMeta[index].group[i]);\n store.setMeta(newMeta, groupIndex);\n },\n onCancel: () => {},\n });\n };\n\n return (\n <>\n {meta.group.map((v: any, i: number) => {\n return (\n <div className={`Sqb-TableName green-name`} key={i} onClick={(e) => handleUpdate(e, i)}>\n {v.quotes && (\n <Tooltip title={__('SqlQueryBuilder.alias')}>\n <Button\n className={':Sqb-TableName-as :Sqb-TableName green-name'}\n shape='circle'\n iconOnly\n primary\n icon={'As'}\n size='small'\n onClick={(e) => {\n e.stopPropagation();\n onChangeFieldAlias(v?.fieldAlias || '', i);\n }}\n ></Button>\n </Tooltip>\n )}\n {`${v.quotes} ${v.fieldAlias ? `as ${v.fieldAlias}` : ''}`}\n <span style={{ fontSize: 0 }} onClick={(e) => handleDel(e, i)}>\n <CloseIcon />\n </span>\n </div>\n );\n })}\n <div\n className={cx(`Sqb-TableName green-name`, { notSelected: notGroupSelected })}\n onClick={handleAdd}\n >\n {notGroupSelected ? __('summarize.selectTheMetricsYouWantToView') : <AddIcon />}\n </div>\n </>\n );\n};\n\nexport default SelectIndex;\n","import React from 'react';\nimport cx from 'classnames';\n\nimport { __ } from '../../../locale';\nimport { MetaSummarize } from '../../../store/types';\n\nimport Wrapper from '../components/Wrapper';\nimport NextDom from '../components/meta-icon';\nimport Header from '../components/header';\nimport GroupBy from './group-by';\nimport SelectIndex from './select-index';\nimport { useStore } from '../../../hooks/use-provider';\n\ninterface PropsType {\n store?: any;\n meta: MetaSummarize;\n groupIndex: number;\n}\n\nconst Summarize = (props: PropsType) => {\n const { meta, groupIndex } = props;\n const store = useStore();\n\n return (\n <Wrapper className={cx(`Sqb-item`)}>\n <div className={cx(`Sqb-hover-parent`)}>\n <Header\n className='green-text'\n title={__('SqlQueryBuilder.summarize')}\n onClose={() => {\n store.setPopup({ visible: false });\n store.delMeta(meta, groupIndex);\n }}\n />\n <div className={cx(`Sqb-item--content`)}>\n <div className={'flex-row'}>\n <div className={`Sqb-NotebookCell green-bg`}>\n <SelectIndex meta={meta} groupIndex={groupIndex} />\n </div>\n <div className={'pass'}>{__('SqlQueryBuilder.by')}</div>\n <div className={`Sqb-NotebookCell green-bg`}>\n <GroupBy meta={meta} groupIndex={groupIndex} />\n </div>\n </div>\n </div>\n\n <NextDom meta={meta} groupIndex={groupIndex} />\n </div>\n </Wrapper>\n );\n};\n\nexport default Summarize;\n","import React from 'react';\nimport cx from 'classnames';\n\nimport { __ } from '../../locale';\nimport { findIndex, getHelper } from '../../utils';\nimport { SummarizeAlias } from '../../store/helper';\nimport { ColumnsPopupThemeEnum, TypeEnum, SortEnum, SQL_COLUMN_TYPE } from '../../store/enum';\nimport {\n MetaSort,\n MetaSort_Item,\n MetaData_ColumnsType,\n MetaSummarize,\n MetaSummarize_Group,\n MetaSummarize_By,\n MetaJoin,\n MetaListType,\n} from '../../store/types';\nimport { ColumnType, DataType } from '../dialog/select-join-column';\nimport { uuidv4 } from '../../utils/helper';\n\nimport { AddIcon, CloseIcon, UpArrowIcon, DownArrowIcon } from '../icons';\nimport { SelectJoinColumn } from '../dialog';\nimport Wrapper from './components/Wrapper';\nimport NextDom from './components/meta-icon';\nimport Header from './components/header';\n\nimport { useStore } from '../../hooks/use-provider';\n\ninterface PropsType {\n meta: MetaSort;\n groupIndex: number;\n}\n\nconst Sort = (props: PropsType) => {\n const { meta, groupIndex } = props;\n const store = useStore();\n let { sort } = meta;\n let index = findIndex(store.metaList[groupIndex].list, meta);\n\n function getColumns(): DataType[] {\n let { ExistAboveGroupBy, prevGroupBy } = getHelper(store.metaList[groupIndex].list, meta);\n\n let data: DataType[];\n if (ExistAboveGroupBy) {\n let _data: DataType = {\n table: (prevGroupBy as MetaSummarize).alias,\n tableId: (prevGroupBy as MetaSummarize).alias,\n tableUuid: (prevGroupBy as MetaSummarize).tableUuid || uuidv4('table'),\n alias: (prevGroupBy as MetaSummarize).alias,\n columns: [],\n };\n if (prevGroupBy?.group?.length) {\n _data.columns = _data.columns.concat(\n prevGroupBy.group.map((v: MetaSummarize_Group) => {\n return {\n name_zh: v.quotes,\n ...v,\n name: v.quotes,\n // name_zh: '',\n database_type: v?.database_type || SQL_COLUMN_TYPE.FLOAT,\n special_type: '',\n sql: v.sql,\n select: true,\n };\n }),\n );\n }\n if (prevGroupBy?.by?.length) {\n _data.columns = _data.columns.concat(\n prevGroupBy.by.map((v: MetaSummarize_By) => {\n return {\n name_zh: v.quotes,\n ...v,\n name: v.quotes,\n // name_zh: '',\n database_type: v?.database_type || SQL_COLUMN_TYPE.FLOAT,\n special_type: '',\n sql: v.sql,\n select: true,\n };\n }),\n );\n }\n data = [_data];\n } else {\n //@ts-ignore\n data = store.metaList[groupIndex].list\n .slice(0, index)\n .map((v: MetaListType) => {\n if (v.type === TypeEnum.data) {\n return {\n alias: v.table.alias,\n table: v.table.name,\n tableUuid: v.table.tableUuid,\n tableId: v.table.id,\n columns: v.columns,\n };\n } else if (v.type === TypeEnum.joinData) {\n return {\n alias: (v as MetaJoin).table2.alias,\n table: (v as MetaJoin).table2.name,\n tableUuid: (v as MetaJoin).table2.tableUuid,\n tableId: (v as MetaJoin).table2.id,\n columns: (v as MetaJoin).columns,\n };\n } else {\n return { table: null };\n }\n })\n .filter((v: any) => v.table);\n }\n return data;\n }\n\n function addSortColumn(e: any) {\n let node = e.currentTarget || e.target;\n let newMeta = store.metaList[groupIndex].list.slice();\n let value: ColumnType = {\n table: '',\n tableId: '',\n tableUuid: '',\n fieldUuid: '',\n fieldAlias: '',\n alias: '',\n name: '',\n id: '',\n database_type: '',\n datasourceId: '', // 数据源id\n datasourceName: '', // 数据源名\n };\n let data: DataType[] = getColumns();\n\n // ② 过滤掉已经选择的 排序参数\n let selectedSort: any = {}; // {tableAlias: [columnName, columnName]}\n //@ts-ignore\n newMeta[index].sort.forEach((v: any) => {\n if (selectedSort[v.alias]) {\n selectedSort[v.alias].push(v.name);\n } else {\n selectedSort[v.alias] = [v.name];\n }\n });\n data = data.map((v: DataType) => {\n if (v.alias in selectedSort) {\n return {\n ...v,\n columns: v.columns.filter(\n (n: MetaData_ColumnsType) => !~selectedSort[v.alias]?.indexOf(n.name),\n ),\n };\n }\n return v;\n });\n\n store.setPopup({\n visible: true,\n node,\n content: (\n <SelectJoinColumn\n data={data}\n value={value}\n theme={ColumnsPopupThemeEnum.greenGrass}\n onSelect={(record: ColumnType) => {\n let { table, name, tableId, tableUuid, id, alias, sql } = record;\n if (alias === SummarizeAlias) {\n let aliasColumns = (sql as string)?.split(' AS ')?.[1] || '';\n if (store.metaList[groupIndex].list[index - 1].type === TypeEnum.summarize) {\n //@ts-ignore\n newMeta[index].sort = [\n //@ts-ignore\n ...newMeta[index].sort,\n {\n table,\n tableId,\n tableUuid,\n id,\n alias,\n name,\n sort: SortEnum.asc,\n sql: aliasColumns,\n },\n ];\n } else {\n //@ts-ignore\n newMeta[index].sort = [\n //@ts-ignore\n ...newMeta[index].sort,\n {\n table,\n id,\n tableId,\n tableUuid,\n alias,\n name,\n sort: SortEnum.asc,\n sql: `${SummarizeAlias}.${aliasColumns}`,\n },\n ];\n }\n } else {\n //@ts-ignore\n newMeta[index].sort = [\n //@ts-ignore\n ...newMeta[index].sort,\n {\n table,\n tableId,\n tableUuid,\n id,\n alias,\n name,\n sort: SortEnum.asc,\n sql: `${alias}.${name}`,\n },\n ];\n }\n store.setMeta(newMeta, groupIndex);\n store.setPopup({ visible: false });\n }}\n />\n ),\n });\n }\n\n function handleSort(itemIndex: number) {\n let newMeta = store.metaList[groupIndex].list.slice();\n //@ts-ignore\n newMeta[index].sort = sort.map((v: any, i: number) => {\n if (i === itemIndex) {\n return {\n ...v,\n sort: v.sort === SortEnum.asc ? SortEnum.desc : SortEnum.asc,\n };\n }\n return v;\n });\n store.setMeta(newMeta, groupIndex);\n }\n\n function delSortColumn(e: any, itemIndex: number) {\n e.stopPropagation();\n let newMeta = store.metaList[groupIndex].list.slice();\n //@ts-ignore\n newMeta[index].sort = sort.filter((_: any, i: number) => i !== itemIndex);\n store.setMeta(newMeta, groupIndex);\n }\n\n return (\n <Wrapper className={cx(`Sqb-item`)}>\n <div className={cx(`Sqb-hover-parent`)}>\n <Header\n className='gray-text'\n title={__('SqlQueryBuilder.sort')}\n onClose={() => store.delMeta(meta, groupIndex)}\n />\n <div className={cx(`Sqb-item--content`)}>\n <div className={cx(`Sqb-NotebookCell gray-bg`)}>\n {sort.map((v: MetaSort_Item, i: number) => {\n return (\n <div className={`Sqb-TableName gray-name`} key={i} onClick={() => handleSort(i)}>\n {v.sort === SortEnum.asc ? <UpArrowIcon /> : <DownArrowIcon />}\n {v.name}\n <span style={{ fontSize: 0 }} onClick={(e) => delSortColumn(e, i)}>\n <CloseIcon />\n </span>\n </div>\n );\n })}\n <div className={`Sqb-TableName gray-name`} onClick={addSortColumn}>\n <AddIcon />\n </div>\n </div>\n </div>\n\n <NextDom meta={meta} groupIndex={groupIndex} />\n </div>\n </Wrapper>\n );\n};\n\nexport default Sort;\n","import React from 'react';\nimport { InputNumber } from '@gingkoo/pandora';\nimport cx from 'classnames';\n\nimport { __ } from '../../locale';\nimport { findIndex } from '../../utils';\n\nimport Wrapper from './components/Wrapper';\nimport NextDom from './components/meta-icon';\nimport Header from './components/header';\n\nimport { useStore } from '../../hooks/use-provider';\n\ninterface PropsType {\n store?: any;\n meta: any;\n groupIndex: number;\n}\n\nconst RowLimit = (props: PropsType) => {\n const { meta, groupIndex } = props;\n const store = useStore();\n let index = findIndex(store.metaList[groupIndex].list, meta);\n\n function handleChange(inputValue: any) {\n let newMeta = store.metaList[groupIndex].list.slice();\n // @ts-ignore\n newMeta[index].limit = inputValue;\n store.setMeta(newMeta, groupIndex);\n }\n return (\n <Wrapper className={cx(`Sqb-item`)}>\n <div className={cx(`Sqb-hover-parent`)}>\n <Header\n className='gray-text'\n title={__('SqlQueryBuilder.rowLimit')}\n onClose={() => store.delMeta(meta, groupIndex)}\n />\n <div className={cx(`Sqb-item--content`)}>\n <div className={cx(`Sqb-NotebookCell gray-bg`)}>\n <InputNumber\n value={meta.limit}\n min={1}\n style={{ width: 200 }}\n onChange={handleChange}\n placeholder={__('rowLimit.pleaseEnter')}\n precision={0}\n />\n </div>\n </div>\n\n <NextDom meta={meta} groupIndex={groupIndex} />\n </div>\n </Wrapper>\n );\n};\n\nexport default RowLimit;\n","import React from 'react';\nimport cx from 'classnames';\n\nimport { __ } from '../../locale';\nimport { findIndex } from '../../utils';\nimport { TypeEnum } from '../../store/enum';\nimport {\n MetaData,\n MetaData_TableType,\n MetaListType,\n MetaJoin,\n MetaSummarize,\n} from '../../store/types';\n\nimport { SelectPermissionTable } from '../dialog';\nimport { getHelper } from '../../utils';\nimport Wrapper from './components/Wrapper';\nimport NextDom from './components/meta-icon';\nimport Header from './components/header';\n\nimport { useStore } from '../../hooks/use-provider';\nimport { uuidv4 } from '../../utils/helper';\n\ninterface PropsType {\n meta: MetaData;\n groupIndex: number;\n}\n\nconst PrevResult = 'Previous results';\n\nconst PermissionTable = (props: PropsType) => {\n const { meta, groupIndex } = props;\n const store = useStore();\n let index = findIndex(store.metaList[groupIndex].list, meta);\n\n function selectTable(e: any) {\n let { ExistAboveGroupBy, prevList, prevGroupBy } = getHelper(\n store.metaList[groupIndex].list,\n meta,\n );\n\n let data: MetaData_TableType[] = [];\n if (ExistAboveGroupBy) {\n let _data: MetaData_TableType = {\n name: (prevGroupBy as MetaSummarize).alias,\n id: (prevGroupBy as MetaSummarize).alias,\n tableUuid: uuidv4('table'),\n alias: (prevGroupBy as MetaSummarize).alias,\n datasourceId: '',\n datasourceName: '',\n };\n\n data = [_data];\n\n let joinData = prevList\n .filter((v) => v.type === TypeEnum.joinData)\n .filter((v) => v && (v as MetaJoin).table2.name);\n if (joinData.length) {\n data = data.concat(\n (joinData as MetaJoin[]).map((v: MetaJoin) => {\n return {\n alias: v.table2.alias,\n name: v.table2.name,\n tableUuid: v.table2.tableUuid,\n id: v.table2.id,\n datasourceId: v.table2.datasourceId,\n datasourceName: v.table2.datasourceName,\n };\n }),\n );\n }\n } else {\n data = store.metaList[groupIndex].list\n .slice(0, index)\n .reduce((mo: MetaData_TableType[], v: MetaListType) => {\n if (v.type === TypeEnum.data) {\n mo.push({\n alias: v.table.alias,\n name: v.table.name,\n id: v.table.id,\n tableUuid: v.table.tableUuid,\n datasourceId: v.table.datasourceId,\n datasourceName: v.table.datasourceName,\n });\n } else if (v.type === TypeEnum.joinData) {\n mo.push({\n alias: (v as MetaJoin).table2.alias,\n name: (v as MetaJoin).table2.name,\n id: (v as MetaJoin).table2.id,\n tableUuid: (v as MetaJoin).table2.tableUuid,\n datasourceId: (v as MetaJoin).table2.datasourceId,\n datasourceName: (v as MetaJoin).table2.datasourceName,\n });\n }\n return mo;\n }, []);\n }\n\n store.setPopup({\n visible: true,\n node: e.currentTarget,\n content: (\n <SelectPermissionTable\n data={data}\n value={meta.table as MetaData_TableType}\n onChange={(data: MetaData_TableType) => {\n if (meta.table.datasourceId !== data.datasourceId || meta.table.name !== data.name) {\n meta.table = data;\n }\n store.setPopup({ visible: false });\n }}\n />\n ),\n });\n }\n\n let selected = Boolean(meta.table.name);\n\n return (\n <Wrapper className={`Sqb-item`}>\n <div className={`Sqb-hover-parent`}>\n <Header\n className='gray-text'\n title={__('SqlQueryBuilder.permissionTable')}\n onClose={() => store.delMeta(meta, groupIndex)}\n />\n <div className={`Sqb-item--content`}>\n <div className={`Sqb-NotebookCell gray-bg`}>\n <div\n className={cx(`Sqb-TableName`, {\n notSelected: !selected,\n })}\n onClick={selectTable}\n >\n {selected\n ? `${meta.table.datasourceName ? `${meta.table.datasourceName}.` : ''}${\n meta.table.name === 'source' ? PrevResult : meta.table.name\n }`\n : __('SqlQueryBuilder.pickPermissionTable')}\n </div>\n </div>\n </div>\n\n <NextDom meta={meta} groupIndex={groupIndex} />\n </div>\n </Wrapper>\n );\n};\n\nexport default PermissionTable;\n","import { TypeEnum } from '../../store/enum';\n\nimport TableData from './table-data';\nimport JoinData from './join-data';\nimport CustomColumn from './custom-column';\nimport Filter from './filter';\nimport Summarize from './summarize';\nimport Sort from './sort';\nimport RowLimit from './row-limit';\nimport PermissionTable from './permission-table';\n\ntype ModuleComponent = React.ComponentType<any>;\n\nexport default new Map<TypeEnum, ModuleComponent>([\n [TypeEnum.data, TableData],\n [TypeEnum.joinData, JoinData],\n [TypeEnum.customColumn, CustomColumn],\n [TypeEnum.filter, Filter],\n [TypeEnum.summarize, Summarize],\n [TypeEnum.sort, Sort],\n [TypeEnum.rowLimit, RowLimit],\n [TypeEnum.permissionTable, PermissionTable],\n]);\n","import './index.less';\n\nimport React, { useMemo, useRef, useState } from 'react';\nimport cx from 'classnames';\nimport { Button, Toast } from '@gingkoo/pandora';\n// import { toJS } from 'mobx';\nimport Styled from 'styled-components';\n\nimport { getMaxZIndexInParents } from '../../utils/helper-dom';\nimport { handleSqlStruct } from '../../store/helper';\nimport { MetaData } from '../../store/types';\nimport Union from '../modules/union';\nimport { splitByUnion } from '../../utils';\n\nimport { __ } from '../../locale';\nimport modulesMap from '../modules';\n\nimport Popup from '../popup';\nimport { useStore } from '../../hooks/use-provider';\nimport type { MetabaseProps, MetaListProps } from '../../types';\n\nconst VisualBox = Styled.div.attrs({ className: 'visual-box' })``;\n\nconst Metabase = (props: MetabaseProps) => {\n let { btnText = '', readonly = false, onOk } = props;\n const store = useStore();\n const [saveLoading, setSaveLoading] = useState(false);\n // const popupContainer = useRef();\n // store.setPopupContainer(popupContainer);\n const popupContent = useMemo(() => {\n let { visible, content } = store.popupData;\n if (!visible) return null;\n return content;\n }, [store.popupData]);\n const popupContent2 = useMemo(() => {\n let { visible, content } = store.popupData2;\n if (!visible) return null;\n return content;\n }, [store.popupData2]);\n\n const onSave = async () => {\n let intercept = false; // 是否返回\n const _metaList = splitByUnion(store.metaList);\n\n store.metaList.map((v: MetaListProps) => {\n if (v.type !== 'union' && !(v.list?.[0] as MetaData).table.name) {\n intercept = true;\n return Toast.warning(__('data.pleaseSelectDataTable'));\n }\n });\n\n if (saveLoading || intercept) return null;\n setSaveLoading(true);\n\n await onOk?.(_metaList);\n\n setSaveLoading(false);\n };\n\n let zIndex = store.popupContainer.current\n ? getMaxZIndexInParents(store.popupContainer.current)\n : null;\n\n return (\n // @ts-ignore\n <VisualBox ref={store.popupContainer}>\n <div className={'Sqb'}>\n {store.metaList.map((v: MetaListProps, index: number) => {\n if (v.type === 'union' && v.union) {\n return (\n <div className={cx(`Sqb-list`)} key={'union' + index}>\n <Union union={v.union} meta={v} groupIndex={index}></Union>\n </div>\n );\n }\n\n return (\n <div className={cx(`Sqb-list`)} key={'group' + index}>\n {v?.list?.map((meta: any) => {\n let { type: metaType, metaKey, hidden } = meta;\n if (hidden) return null;\n let Component: any = modulesMap.get(metaType);\n return <Component meta={meta} key={metaKey} groupIndex={index} />;\n })}\n </div>\n );\n })}\n {/* <div className={cx(`Sqb-list`)}>\n {store.metaList.map((meta: any) => {\n let { type: metaType, metaKey, hidden } = meta;\n if (hidden) return null;\n let Component: any = modulesMap.get(metaType);\n return <Component meta={meta} key={metaKey} />;\n })}\n </div> */}\n {!readonly && typeof onOk === 'function' ? (\n <Button\n type='primary'\n className={`:Sqb-btn`}\n loading={saveLoading}\n disabled={saveLoading}\n onClick={onSave}\n >\n {btnText || __('SqlQueryBuilder.visualize')}\n </Button>\n ) : null}\n\n {store.popupContainer.current && (\n <Popup\n container={store.popupData.container || store.popupContainer.current}\n visible={store.popupData.visible}\n node={store.popupData.node}\n closable={store.popupClosable}\n zIndex={zIndex ? String(zIndex) : null}\n hideVisible={() => {\n store.setPopup({ visible: false });\n }}\n >\n {popupContent}\n </Popup>\n )}\n {store.popupContainer.current && (\n <Popup\n container={store.popupData2.container || store.popupContainer.current}\n visible={store.popupData2.visible}\n node={store.popupData2.node}\n closable={store.popupClosable2}\n zIndex={zIndex ? String(zIndex) : null}\n hideVisible={() => {\n store.setClosable(true);\n store.setPopup2({ visible: false });\n }}\n >\n {popupContent2}\n </Popup>\n )}\n </div>\n </VisualBox>\n );\n};\n\nexport default Metabase;\n","import React, { useEffect, useRef, useState, useMemo } from 'react';\nimport { Provider } from './hooks/use-provider';\nimport useData from './hooks/use-state';\n\nexport { restoreStructure, handleSqlStruct, compressionStructure } from './store/helper';\n\nimport './locale/en';\nimport './locale/zh';\nimport { __ } from './locale';\nimport Loading from './common/Loading';\nimport Metabase from './components/metabase';\nimport type { MetabaseProps, SqlVisionBuilderRef, DatasourceType } from './types';\nimport type { MetaListType, ToolbarType } from './store/types';\nimport { reassembleByUnion } from './utils';\n\n/**\n * 规则\n * 1、主表一换 下面全部删除\n * 2、关联如果动了表或者删除了 下面的关联都删除\n * 3、关联如果动了表或者删除了 下面对应排序用到的对应的字段也删除 todo. 未完成 因为有可能关联里面选一样的表 还不知道怎么搞\n */\nconst SqlVisionBuilder = React.forwardRef<SqlVisionBuilderRef, MetabaseProps>((props, ref) => {\n let {\n loading = false,\n showFields = true,\n getTables,\n getColumns,\n tableNameTpl = '${name}',\n fieldNameTpl = '${name}',\n toolbar = ['filter', 'summarize', 'joinData', 'customColumn', 'sort', 'rowLimit'],\n value = [],\n sourceList = [],\n showSubquery = true, // 是否展示子查询\n subShowSubquery = false,\n constantList,\n ignoreGroupByType = false,\n } = props;\n const store = useData();\n useEffect(() => {\n getTables && store.setFetchDatasetFn(getTables);\n getColumns && store.setFetchColumnsFn(getColumns);\n }, []);\n\n useEffect(() => {\n store.setProps(props);\n }, [props]);\n\n useEffect(() => {\n const _value = reassembleByUnion(value);\n store.setPreData(_value);\n }, [value]);\n useEffect(() => {\n store.setSourceList(sourceList);\n }, [sourceList]);\n\n useEffect(() => {\n store.setShowFields(showFields);\n store.setFieldNameTpl(fieldNameTpl || '${name}');\n store.setTableNameTpl(tableNameTpl || '${name}');\n store.setToolbar(toolbar);\n store.setShowSubquery(showSubquery);\n store._setShowSubquery(subShowSubquery);\n store.setConstantList(constantList || []);\n store.setIgnoreGroupByType(ignoreGroupByType);\n }, [\n showFields,\n fieldNameTpl,\n tableNameTpl,\n toolbar,\n showSubquery,\n subShowSubquery,\n constantList,\n ignoreGroupByType,\n ]);\n\n React.useImperativeHandle(ref, () => ({\n // setDatasource: (list) => {\n // store.setSourceList(list);\n // },\n\n // setPreData: (data) => {\n // store.setPreData(data);\n // },\n\n reset: () => {\n store.reset();\n },\n }));\n\n // ② 表集合没有查出来前 不加载页面\n if (loading) return <Loading show={loading} msg={__('loading')} />;\n return (\n <Provider value={store}>\n <Metabase {...props} />\n </Provider>\n );\n});\n\nexport default SqlVisionBuilder;\nexport { MetabaseProps, DatasourceType, MetaListType, ToolbarType, SqlVisionBuilderRef };\n"],"names":["Context","createContext","Provider","value","children","_jsx","useStore","useContext","throttle","fn","wait","start","Date","now","timer","diff","clearTimeout","_self","window","setTimeout","bind","apply","sleep","Promise","resolve","reject","replaceTpl","inputString","values","replace","match","variableName","String","str","Math","random","toString","slice","uuidv4","prefix","a","b","uuid","join","SortEnum","TypeEnum","JoinEnum","UnionEnum","ColumnsPopupThemeEnum","SpecialType","SQL_COLUMN_TYPE","SQL_GROUP_TYPE","DataTypeEnum","EleComponentEnum","getCookie","name","arr","document","cookie","RegExp","console","log","locales","activeLocale","isEn","register","data","warn","__","SummarizeAlias","NUMBER_GROUP","FLOAT","LONG","CURRENCY","STRING","DATE_GROUP","DATE","filterToSql","record","alias","condition","val","groupSql","database_type","condition_1","condition_2","columnName","split","sql","group","indexOf","NUMBER","transformDate","dataStr","c_1","c_2","summarizeToSql","realName","index","prevList","as","field","count","forEach","v","fieldAlias","_flatArr","res","push","_recursionArr","obj","length","reverseData","reverse","layeredData","list","i","meta","type","joinData","summarize","nextMeta","nextNextMeta","nextNextNextMeta","rowLimit","sort","handleNesting","hasInnerSql","Boolean","innerSqlStruct","tableData","permissionTable","customColumn","filterData","filter","sortData","table","tableName","datasourceId","by","queryColumns","columns","select","map","joinTables","table2","joinCondition","table1","column","joinType","o","customColumns","filters","groupBy","calcColumns","groupColumns","orderInfos","limit","Number","privilegeTable","handleSqlStruct","compressionStructure","_data","JSON","parse","stringify","metaKey","d","n","s","c","name_zh","restoreStructure","special_type","e","findIndex","item","getHelper","types","curIndex","leftTypes","rightTypes","leftList","rightList","ExistAboveGroupBy","ExistBelowGroupBy","prevTypes","nextTypes","nextList","prevGroupBy","nextGroupBy","lastIndexOf","getSubColumns","metaList","tableId","tableUuid","concat","quotes","changeTableAlias","curObj","cloneDeep","newList","formulaList","formula","expression","changeFieldAlias","fieldUuid","expressions","left_fieldUuid","left_fieldAlias","right_fieldUuid","right_fieldAlias","notExists","splitByUnion","original","result","subItem","otehr","nextItem","subquery","reassembleByUnion","target","len","hasUnion","some","groupList","union","convertedSubquery","buildSqlQuery","sqlClauses","tables","joins","wheres","table2Name","alias2","Array","isArray","left","right","left_type","left_string","right_type","right_string","filterStrings","f","defaultToolbar","defaultMetaList","id","datasourceName","defaultMeta","defaultOperator","showFields","setShowFields","useState","showSubquery","setShowSubquery","_showSubquery","_setShowSubquery","toolbar","setToolbar","fieldNameTpl","setFieldNameTpl","tableNameTpl","setTableNameTpl","sourceList","setSourceList","constantList","setConstantList","ignoreGroupByType","setIgnoreGroupByType","_cacheSource2TableMap","set_cacheSource2TableMap","_cacheColumnsMap","set_cacheColumnsMap","_setMeta","popupData","setPopup","visible","node","content","popupData2","setPopup2","popupClosable","setClosable","popupClosable2","setClosable2","popupContainer","useRef","fetchDatasetFn","setFetchDatasetFn","current","fetchColumnsFn","setFetchColumnsFn","preProps","setProps","showMainColumn","useMemo","groupIndex","summarizeItems","onlyItem","hasGroupOrBy","showToolbar","fetchDataset","getDataset","_tables","setDataset","fetchColumns","callback","did","extra","getColumns","setColumns","_columns","setMeta","curData","groupInd","newMeta","setQuotes","left_column","left_quotes","right_column","right_quotes","setPreData","_metaList","isSubquery","newColumns","items","flatMap","validMetaKeys","num","isNaN","max","addMeta","mainTable","newMetaList","splice","delMeta","reset","loading","Loading","show","msg","_jsxs","className","getComputedTranslate","getComputedStyle","x","y","style","transform","webkitTransform","mozTransform","mat","parseFloat","getElementTop","elem","elemTop","offsetTop","pElem","offsetParent","getElementLeft","elemLeft","offsetLeft","getContainerVisibleHeight","container","rect","getBoundingClientRect","windowHeight","innerHeight","documentElement","clientHeight","bottom","top","visibleTop","visibleBottom","min","getScrollTop","scrollTop","getWindowSize","width","body","clientWidth","height","getMaxZIndexInParents","element","currentElement","maxZIndex","Infinity","zIndex","zIndexNum","parseInt","parentElement","Wrapper","opacity","setOpacity","maxHeight","setMaxHeight","couterRef","useEffect","animation","childNodes","ref","transition","overflow","CloseIcon2","viewBox","fill","role","FilterIcon","SummarizeIcon","JoinDataIcon","GroupIcon","PermissionTableIcon","CustomColumnIcon","SortIcon","RowLimitIcon","LeftJoinIcon","InnerJoinIcon","UpArrowIcon","DownArrowIcon","CloseIcon","AddIcon","TableIcon","SearchIcon","NotSelectIcon","SelectIcon","CircleIcon","LetterAaIcon","CalendarIcon","WellIcon","ForeignKeyIcon","UpArrowIcon2","DownArrowIcon2","LeftArrowIcon","DataSourceIcon","Header","props","title","onClose","Tooltip","placement","onClick","SelectList","onChange","cx","active","icon","label","List","unionAll","RowLimit","store","selectOperator","readonly","currentTarget","getTextNodeAtPosition","root","treeWalker","createTreeWalker","NodeFilter","SHOW_TEXT","textContent","FILTER_REJECT","FILTER_ACCEPT","nextNode","position","getSelectionPosition","setSelectionRange","createTextRange","selectionStart","selectionEnd","selection","getSelection","range","getRangeAt","cloneRange","startContainer","startOffset","setStart","end","setEnd","setSelectionPosition","focus","collapse","moveEnd","moveStart","startPos","endPos","removeAllRanges","Range","addRange","getCaretPosition","saveSelection","t","TOKEN","Operator","Identifier","OPERATOR","Comma","OpenParenthesis","CloseParenthesis","Plus","Minus","Star","Slash","Equal","NotEqual","LessThan","GreaterThan","LessThanEqual","Not","And","Or","tokenize","source","isWhiteSpace","cp","isDigit","isAlpha","skipWhitespaces","charCodeAt","scanOperator","ch","op","error","scanNumericLiteral","dot","exp","sign","marker","_t","_","scanStringLiteral","quote","seq","terminated","_t2","scanBracketIdentifier","bracket","_t3","_t4","isIdentifierStart","isIdentifierChar","scanIdentifier","initial","toLowerCase","main","tokens","errors","token","message","pos","char","prev","_t5","_t6","_t7","OptionsTypeEnum","SelectPopupTypeEnum","MBQL_CLAUSES","displayName","args","sum","distinct","stddev","requiresFeature","avg","share","var","median","percentile","lower","upper","substring","multiple","trim","rtrim","ltrim","abs","floor","ceil","round","sqrt","power","contains","hasOptions","between","coalesce","case","and","or","not","tokenName","clause","Object","entries","undefined","Map","mbql","EXPRESSION_TO_MBQL_NAME","getMBQLName","expressionName","get","AGGREGATION_FUNCTIONS","Set","EXPRESSION_FUNCTIONS","EXPRESSION_OPERATORS","FILTER_OPERATORS","BOOLEAN_UNARY_OPERATORS","LOGICAL_AND_OPERATOR","LOGICAL_OR_OPERATOR","FUNCTIONS","mapTokenType","createSpans","isFunction","has","lastPos","spans","kind","text","tail","TokenizedExpression","React","Component","render","startRule","TokenizedInput","defaultProps","componentDidMount","ReactDOM","findDOMNode","componentDidUpdate","addEventListener","onSelectionChange","inputNode","restore","innerHTML","ReactDOMServer","renderToStaticMarkup","activeElement","componentWillUnmount","removeEventListener","setValue","onInput","onFocus","onBlur","onKeyDown","forwardedRef","contentEditable","spellCheck","WinResetEvent","eventStack","funcId","constructor","addEvent","context","delay","removeEvent","cb","winResetEvent","Portal","forwardRef","didUpdate","getContainer","containerRef","useImperativeHandle","initRef","parentNode","removeChild","createPortal","returnDocument","outSpacing","generateTrigger","PortalComponent","Trigger","resizeObserver","resetId","createRef","bindEvent","initResizeObserver","prevProps","disconnect","targetNode","ResizeObserver","entry","observe","that","ele","closePopup","closable","hideVisible","attachParent","mountNode","appendChild","getCurrentNodePos","h","offsetHeight","innerSpacing","createElement","pointerEvents","getComponent","posKey","overflowX","overflowY","backgroundColor","boxShadow","borderRadius","stopPropagation","onMouseDown","cloneElement","key","posY","realHeight","winH","containerH","downH","topHeight","cssText","portal","SelectColumn","originList","setOriginList","filterVal","setFilterVal","toLocaleLowerCase","isAllSelect","AllSelectElement","_Fragment","onSelect","originalData","mergedColumns","find","col","onChangeFieldAlias","Modal","confirm","Input","defaultValue","onOk","onCancel","autoFocus","placeholder","Button","shape","iconOnly","primary","ghost","size","IconMap","CHAR","VARCHAR","CLOB","DOUBLE","SMALLINT","BIGINT","INTEGER","TIMESTAMP","PK","FK","OPEN_GROUP","SelectJoinColumn","_value","theme","skyBlue","isGroup","onGroup","curTable","setCurTable","curColumn","setCurColumn","tableList","setTableList","open","searchText","tableAlias","newData","tableItem","isMultiple","isSummarize","shrink","newTables","RangePicker","DatePicker","NUMBER_LIST","STRING_LIST","DATE_LIST","SelectFilterColumn","isCustom","setCondition","valType","setValType","curVal","setVal","constantName","setConstantName","setFormula","table2Selected","disabled","getQuotesName","params","getText","等于","不等于","大于","小于","介于之间","大于或等于","小于或等于","为空","不为空","包含","不包含","早于","晚于","是空的","In","无需结果","generateQuotes","firstVal","secondVal","cond","addFilter","goPrevPage","getData","columnType","toUpperCase","conditions","includes","renderFilter","conditionText","display","flexDirection","newVal","showTime","format","moment","Dropdown","trigger","droplist","ChevronODown","options","Select","allowCreate","option","Option","closePopup2","selectConstant","onRepeat","nextPage","selectTable","purple","menu","changeFormula","changeParams","_formula","formulas","leftFormula","Function","getName","InputNumber","hideControl","quickEdit","setDefaultVal","notSelected","Repeat","_condition","greenGrass","FormulaList","tip","QuotesMap","localeMap","总行数","计数","总和","平均值","不重复值的总数","累积求和","累积行数","累积计数","标准差","最小值","最大值","总的数据行数","一个字段所有数值的总和","一个字段所有数值的平均值","一个字段所有互不重复的值的总数","一个字段所有数值的标准差","一个字段的最小值","一个字段的最大值","Special","SelectSummarize","handleSelect","availableData","JoinList","marginRight","cursor","inner","SelectJoin","SelectTable","setLoading","datasource","setList","getTables","PrevResult","SelectPermissionTable","IconSIzeEnum","IconTypeMap","DisplayOrder","OrderType","OrderNewType","metaIcon","handleClick","info","SMALL","small","large","LARGE","judgeSize","nextLen","isLast","findNextIcon","nextType","available","curLocation","nextLocation","unshift","joinIndex","customIndex","filterIndex","curNewLocation","sortList","NextDom","MetaIconDom","TableData","selected","subQuerySelected","selectColumns","onChangeTableAlias","Toast","warning","showSubQuery","subToolbar","other","oldList","_toolbar","Modal2","openModal","transparentMask","Metabase","btnText","isEqual","close","switchSubQuery","RelatedWork","FlagLocation","ExpressionsEnum","JoinData","table1Selected","columnsSelected","aliasRegExp","lens","test","_table2","selectJoin","selectJoinColumn","getAttribute","TABLE_1","reduce","mo","selectMoreJoinColumn","_ind","table_type","LEFT","TABLE_2","_position","_val","onChangeType","onChangeString","operator","left_constant","right_constant","RIGHT","FfPlus","danger","FfLine","FunctionEnum","operatorList","otherList","customTypes","FIELD","INPUT","EXPRESSION","OTHER","getTemplate","temList","img","VisualBox","Styled","div","attrs","CaseEditor","caseList","setCaseList","setName","ind","setInd","filterCase","hasCase","usable","from","handleField","_caseList","handleConstant","handleExpression","SelectFilter","handleDel","addOperator","temItem","_onClose","_onOk","itemDom","fontSize","triggerProps","clickToClose","triggerElement","color","hover","onMouseEnter","onMouseLeave","virtualListProps","threshold","src","arrow","autoWidth","minWidth","marginLeft","CustomColumn","CustomEditor","itemId","Filter_TypeEnum","MetaSummarize_Enum","Filter","notExistsColumns","handleUpdate","NOT_EXISTS","showNotExists","handleAdd","_index","_type","_filter","notExistsToolbar","_tem","filterType","addSelectType","_e","isPermanent","GroupBy","notBySelected","_i","summarizeType","BY","SelectIndex","notGroupSelected","GROUP","Summarize","Sort","addSortColumn","selectedSort","aliasColumns","asc","handleSort","itemIndex","desc","delSortColumn","handleChange","inputValue","precision","PermissionTable","saveLoading","setSaveLoading","popupContent","popupContent2","onSave","intercept","Union","metaType","hidden","modulesMap","Popup","SqlVisionBuilder","subShowSubquery","useData"],"mappings":"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","x_google_ignoreList":[10]}