@gingkoo/pandora-metabase 0.0.26 → 0.0.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/es/index.js +266 -46
- package/lib/es/index.js.map +1 -1
- package/lib/es/store/types.d.ts +5 -0
- package/package.json +1 -1
package/lib/es/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/hooks/use-provider.tsx","../../src/store/enum.ts","../../src/utils.ts","../../src/hooks/use-state.ts","../../src/store/helper.ts","../../src/utils/cookies.ts","../../src/locale/index.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/selection.ts","../../src/components/dialog/custom-column/keyboard.ts","../../src/components/dialog/custom-column/expressions/tokenizer.ts","../../src/sql-formula.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/helper-dom.ts","../../src/utils/helper.ts","../../src/utils/event.ts","../../src/common/Portal/index.tsx","../../src/components/popup.tsx","../../src/components/dialog/custom-column/dialog/select-list.tsx","../../src/components/dialog/custom-column/dialog/function-tip.tsx","../../src/components/dialog/custom-column/expression-editor.tsx","../../src/components/dialog/custom-column/index.tsx","../../src/components/icons.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/Wrapper.tsx","../../src/components/modules/components/meta-icon.tsx","../../src/components/modules/components/header.tsx","../../src/components/modules/table-data.tsx","../../src/components/modules/join-data.tsx","../../src/components/modules/custom-column.tsx","../../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","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}\n\nexport enum JoinEnum {\n left = 'LEFT JOIN',\n right = 'RIGHT JOIN',\n inner = 'INNER JOIN',\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","import { TypeEnum, SQL_COLUMN_TYPE } from './store/enum';\nimport {\n MetaListType,\n MetaSummarize,\n MetaJoin,\n MetaCustom,\n MetaSummarize_Group,\n MetaSummarize_By,\n} from './store/types';\nimport { DataType, ColumnType } from './components/dialog/select-join-column';\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 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 { alias: v.table2.alias, table: v.table2.name, columns: v.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 return { alias: v.table.alias, table: v.table.name, columns: v.columns };\n } else if (v.type === TypeEnum.joinData) {\n return {\n alias: (v as MetaJoin).table2.alias,\n table: (v as MetaJoin).table2.name,\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","import { useEffect, useState, useRef, useMemo, useCallback } from 'react';\n\nimport { TypeEnum, JoinEnum } 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 } from '../types';\nimport { getSubColumns } from '../utils';\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: { name: '', id: '', alias: '', datasourceId: '', datasourceName: '' },\n columns: [],\n },\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 [_cacheSource2TableMap, set_cacheSource2TableMap] = useState<{\n [datasourceId: string]: TableType[];\n }>({}); //数据源id 对应数据集列表\n const [_cacheColumnsMap, set_cacheColumnsMap] = useState<TableColumnsMapType>({}); //数据源id 对应数据集列表\n const [metaList, setMeta] = useState<MetaListType[]>(defaultMetaList); //数据源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<MetaListType[]>(defaultMetaList); //是否可关闭 如果弹框里面再弹框 则不可关闭\n const [popupClosable2, setClosable2] = useState<MetaListType[]>(defaultMetaList); //是否可关闭 如果弹框里面再弹框 则不可关闭\n\n // const [fetchDatasetFn, setFetchDatasetFn] = useState<(id: string) => Promise<any>>(\n // async () => {},\n // ); //fn\n const fetchDatasetFn: any = useRef();\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 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 typeof callback === 'function' && callback(columns);\n };\n\n // 回显\n const setPreData = async (data: MetaListType[]) => {\n if (data.length) {\n let _metaList = data.map((v: any, i) => {\n // 设置右侧column\n if (v.table2?.datasourceId && v.columns.length < 1) {\n let newMeta: MetaListType[] = data.slice();\n\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);\n },\n );\n return { ...v };\n }\n // 设置column\n if (v.table?.datasourceId && v.columns.length < 1) {\n let newMeta: MetaListType[] = data.slice();\n\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 setMeta(newMeta);\n },\n );\n return { ...v };\n }\n return { ...v };\n });\n metaKey = Math.max.apply(\n null,\n _metaList.map((v) => Number(v.metaKey)),\n );\n setMeta(_metaList);\n } else {\n setMeta(defaultMetaList);\n }\n };\n\n const addMeta = (type: string, index: number) => {\n let newMeta: MetaListType[] = metaList.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 datasourceId: '',\n datasourceName: '',\n column: '',\n column_id: '',\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 column: '',\n column_id: '',\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 datasourceId: '',\n datasourceName: '',\n column: '',\n column_id: '',\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 = { metaKey, type: TypeEnum.summarize, alias: SummarizeAlias, group: [], by: [] };\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 datasourceId: '',\n datasourceName: '',\n },\n };\n }\n\n // @ts-ignore\n newMeta.splice(index, 0, item);\n setMeta(newMeta);\n };\n\n const delMeta = (meta: any): void => {\n // TIPS 自定义列删除了后面都得删除 暂时不删除 因为过滤器和组合包括自定义列都没用到自定义列\n let index = metaList.indexOf(meta);\n let newMeta = metaList.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);\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);\n return void 0;\n }\n }\n let _metaList = newMeta.filter((v) => v !== meta);\n setMeta(_metaList);\n };\n\n const setColumns = (tableId: string, columns: initColumnsType[]) => {\n const map = { ..._cacheColumnsMap };\n map[tableId] = columns;\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(defaultMetaList);\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 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 };\n};\nexport default useStore;\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 = (arr: MetaSummarize_Group[], record: MetaSummarize_Group): 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\n return sql + ' AS ' + as + (count ? '_' + (count + 1) : '');\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","//获取指定名称的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 { 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.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.switchSubQuery': 'Switch 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 'customColumn.operator': 'operator',\n 'customColumn.field': 'field',\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 'filter.addFilter': 'add filter',\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.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.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.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 'customColumn.operator': '运算符',\n 'customColumn.field': '字段',\n 'customColumn.other': '其他',\n 'customColumn.update': '更新',\n 'customColumn.complete': '完成',\n 'customColumn.fieldFormula': '字段公式',\n 'customColumn.giveItAName': '给它一个名字吧',\n 'customColumn.cancel': '取消',\n 'customColumn.somethingAwesomeToDocument': '一些超棒的、值得记录的东西',\n 'filter.addFilter': '添加过滤器',\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.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","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","export const KEYCODE_SPACE = 0;\nexport const KEYCODE_BACKSPACE = 8;\nexport const KEYCODE_TAB = 9;\nexport const KEYCODE_ENTER = 13;\nexport const KEYCODE_ESCAPE = 27;\n\nexport const KEYCODE_LEFT = 37;\nexport const KEYCODE_UP = 38;\nexport const KEYCODE_RIGHT = 39;\nexport const KEYCODE_DOWN = 40;\n\nexport const KEY_COMMA = ',';\nexport const KEYCODE_FORWARD_SLASH = 191;\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","// 自定义列函数 tips\n\nexport interface ParameterType {\n key: string;\n explain: string;\n}\n\nexport interface FunctionInfoType {\n tip: string;\n name: string;\n desc: string;\n case: string;\n parameter: ParameterType[];\n}\nexport interface FunctionsType {\n [name: string]: FunctionInfoType;\n}\n\nexport const functions: FunctionsType = {\n abs: {\n tip: 'abs(列)',\n name: 'abs',\n desc: '返回指定列的绝对值(正值)。',\n case: 'abs([债务])',\n parameter: [{ key: '列', explain: '返回绝对值(正值)的列或数字。' }],\n },\n ceil: {\n tip: 'ceil(列)',\n name: 'ceil',\n desc: '将小数点向上舍入。',\n case: 'ceil([价格])',\n parameter: [{ key: '列', explain: '要四舍五入的栏目或数字。' }],\n },\n coalesce: {\n tip: 'coalesce(值1, 值2, …)',\n name: 'coalesce',\n desc: '按顺序查看每个参数中的值,并为每行返回第一个非空值。',\n case: 'coalesce([评论], [笔记], \"无评论\")',\n parameter: [\n { key: '值1', explain: '要返回的列或值。' },\n { key: '值2', explain: '如果value1为空,如果value2不为空则返回,以此类推。' },\n ],\n },\n\n concat: {\n tip: 'concat(值1, 值2, …)',\n name: 'concat',\n desc: '将两串或多串文字组合在一起。',\n case: 'concat([姓], \", \", [名])',\n parameter: [\n { key: '值1', explain: '栏目或文字开始。' },\n { key: '值2', explain: '这将被添加到value1的末尾,以此类推。' },\n ],\n },\n exp: {\n tip: 'exp(列)',\n name: 'exp',\n desc: '返回欧拉数e,升到所提供数字的幂。',\n case: 'exp([利息月数])',\n parameter: [{ key: '列', explain: '返回指数值的列或数字。' }],\n },\n floor: {\n tip: 'floor(列)',\n name: 'floor',\n desc: '将一个小数点向下舍入。',\n case: 'floor([价格])',\n parameter: [{ key: '列', explain: '要四舍五入的栏目或数字' }],\n },\n length: {\n tip: 'length(文本)',\n name: 'length',\n desc: '返回文本中的字符数。',\n case: 'length([评论])',\n parameter: [{ key: '文本', explain: '你想得到的列或文本的长度' }],\n },\n log: {\n tip: 'log(列)',\n name: 'log',\n desc: '返回数字的基数为10的对数。',\n case: 'log([价值])',\n parameter: [{ key: '列', explain: '要返回自然对数值的列或数字。' }],\n },\n lower: {\n tip: 'lower(文本)',\n name: 'lower',\n desc: '返回全部为小写的文本字符串。',\n case: 'lower([状态])',\n parameter: [{ key: '文本', explain: '含有要转换为小写的值的列。' }],\n },\n ltrim: {\n tip: 'ltrim(文本)',\n name: 'ltrim',\n desc: '从文本字符串中删除前导空格。',\n case: 'ltrim([评论])',\n parameter: [{ key: '文本', explain: '你要修剪的列或文本。' }],\n },\n power: {\n tip: 'power(列, 指数)',\n name: 'power',\n desc: '将一个数字提高到指数值的幂。',\n case: 'power([长度], 2)',\n parameter: [\n { key: '列', explain: '列或数字提高到指数。' },\n { key: '指数', explain: '指数的值。' },\n ],\n },\n replace: {\n tip: 'replace(文本, 找, 更换)',\n name: 'replace',\n desc: '用新文本替换输入文本的一部分。',\n case: 'replace([标题], \"巨大的\", \"巨大的\")',\n parameter: [\n { key: '文本', explain: '要搜索的栏目或文本。' },\n { key: '找', explain: '要查找的文字。' },\n { key: '更换', explain: '用作替代的文本' },\n ],\n },\n round: {\n tip: 'round(列)',\n name: 'tip',\n desc: '将小数点向上或向下舍入到最接近的整数值。',\n case: 'round([溫度])',\n parameter: [{ key: '列', explain: '要四舍五入到最接近的整数的列或数字。' }],\n },\n rtrim: {\n tip: 'rtrim(文本)',\n name: 'rtrim',\n desc: '从文本字符串中删除结尾的空格。',\n case: 'rtrim([评论])',\n parameter: [{ key: '文本', explain: '你要修剪的列或文本。' }],\n },\n sqrt: {\n tip: 'sqrt(列)',\n name: 'sqrt',\n desc: '返回平方根。',\n case: 'sqrt([下端])',\n parameter: [{ key: '列', explain: '返回列或数字的平方根值。' }],\n },\n substring: {\n tip: 'substring(文本, 位置, 长度)',\n name: 'substring',\n desc: '返回提供的文本的一部分。',\n case: 'substring([标题], 0, 10)',\n parameter: [\n { key: '文本', explain: '要返回一部分的列或文本。' },\n { key: '位置', explain: '开始复制字符的位置。' },\n { key: '长度', explain: '要返回的字符数。' },\n ],\n },\n trim: {\n tip: 'trim(文本)',\n name: 'trim',\n desc: '从文本字符串中删除开头和结尾的空格。',\n case: 'trim([评论])',\n parameter: [{ key: '文本', explain: '你要修剪的列或文本。' }],\n },\n upper: {\n tip: 'upper(文本)',\n name: 'upper',\n desc: '返回全部大写的文本。',\n case: 'upper([状态])',\n parameter: [{ key: '文本', explain: '具有要转换为大写字母的值的列。' }],\n },\n};\n\nexport default {\n getFuncInfo(name: string): FunctionInfoType | null {\n if (name in functions) {\n return functions[name];\n }\n return null;\n },\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","// 获取元素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 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 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\nexport const getScrollTop = () => {\n return document.documentElement.scrollTop;\n};\n\n// 浏览器可视宽高\nexport const getWindowSize = () => {\n return {\n width: document.body.clientWidth,\n height: document.body.clientHeight,\n };\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","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 didUpdate?.(props, containerRef.current);\n });\n\n useEffect(() => {\n return () => {\n containerRef.current?.parentNode?.removeChild(containerRef.current);\n };\n }, []);\n\n return containerRef.current\n ? ReactDOM.createPortal(children, containerRef.current)\n : null;\n});\n\n\nexport default Portal;","import * as React from 'react';\nimport _ from 'lodash';\n\nimport { getWindowSize, getScrollTop, getElementLeft, getElementTop } 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 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 }\n\n componentWillUnmount() {\n winResetEvent.removeEvent(this.resetId);\n this.props.container && this.props.container.removeEventListener('scroll', this.didUpdate);\n }\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 = returnDocument().body;\n mountNode.appendChild(popupContainer);\n };\n\n getCurrentNodePos = () => {\n const { node, container } = this.props;\n return {\n x: getElementLeft(node),\n y: getElementTop(node) - (container?.scrollTop || 0),\n h: node.offsetHeight,\n };\n };\n\n getContainer = () => {\n let pos = this.getCurrentNodePos();\n let { innerSpacing = 10 } = 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 = '999';\n this.attachParent(popupContainer);\n return popupContainer;\n };\n\n getComponent = () => {\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 >\n {React.cloneElement(this.props.children, {\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 } = this.props;\n let pos = this.getCurrentNodePos();\n let posY = pos.y - getScrollTop();\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 downH = winH - posY - pos.h; // 元素下面可用高度\n\n let maxHeight = 0;\n let topHeight = getScrollTop();\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 closable?: boolean;\n}\n","import './select-list.less';\nimport React from 'react';\n\nimport { OptionsTypeEnum } from '../expressions/suggest';\n\nexport interface ListProps {\n type: OptionsTypeEnum;\n name: string;\n list: string[];\n}\n\nexport interface PropsType {\n data: ListProps[];\n onSelect: (type: OptionsTypeEnum, val: string) => any;\n didUpdate?: Function; // 刷新弹框\n}\n\nconst SelectList = ({ data, onSelect }: PropsType) => {\n return (\n <div className='select-list__container'>\n <ul>\n {data.map((v: ListProps, i: number) => {\n return (\n <div key={i}>\n <li className='title'>{v.name}</li>\n {v.list.map((n: string) => {\n return (\n <li className='option' key={n} onClick={() => onSelect(v.type, n)}>\n {n}\n </li>\n );\n })}\n </div>\n );\n })}\n </ul>\n </div>\n );\n};\n\nexport default SelectList;\n","import './function-tip.less';\nimport React from 'react';\n\nimport sqlFormula, { ParameterType, FunctionInfoType } from '../../../../sql-formula';\n\ninterface PropsType {\n funcName: string;\n didUpdate?: Function; // 刷新弹框\n}\n\nconst FunctionTip = ({ funcName }: PropsType) => {\n let data: FunctionInfoType | null = sqlFormula.getFuncInfo(funcName);\n if (!data) return null;\n\n return (\n <div className='function-tip__container'>\n <p className='function-name'>{data.tip}</p>\n <div className='function-desc'>\n <p className='desc'>{data.desc}</p>\n <p className='case'>{data.case}</p>\n </div>\n <div className='funciton-parameter'>\n {data.parameter.map((v: ParameterType, i: number) => {\n return (\n <div key={i}>\n <h4 className='key'>{v.key}</h4>\n <p className='explain'>{v.explain}</p>\n </div>\n );\n })}\n </div>\n </div>\n );\n};\n\nexport default FunctionTip;\n","import React, { useState, useMemo, useRef, useEffect } from 'react';\nimport cx from 'classnames';\n\nimport { setCaretPosition, getSelectionPosition } from '../../../utils/selection';\nimport {\n KEYCODE_ENTER,\n KEYCODE_ESCAPE,\n KEYCODE_LEFT,\n KEYCODE_UP,\n KEYCODE_RIGHT,\n KEYCODE_DOWN,\n} from './keyboard';\nimport suggest, {\n partialMatch,\n SelectPopupTypeEnum,\n ChoosePopupResultType,\n OptionsTypeEnum,\n} from './expressions/suggest';\nimport { MetaData_ColumnsType } from '../../../store/types';\n\nimport TokenizedInput from './tokenizedI-input';\nimport Popup from '../../popup';\nimport SelectList from './dialog/select-list';\nimport FunctionTip from './dialog/function-tip';\n\nimport { useStore } from '../../../hooks/use-provider';\n\ninterface PopupType {\n visible: boolean;\n content?: React.ReactElement;\n innerSpacing?: number;\n}\n\nconst ErrorMessage = ({ msg }: { msg: string }) => {\n if (!msg) return null;\n return (\n <div>\n <div className='text-error text-sm mt-2 mb-2'>{msg}</div>\n </div>\n );\n};\n\ninterface PropsType {\n store?: any;\n data: MetaData_ColumnsType[]; // 字段列表\n expression: string; // 公式供回显使用\n onChange: (formula: string) => void;\n}\n\nconst ExpressionEditor = (props: PropsType) => {\n const { data, expression } = props;\n const store = useStore();\n\n const [popup, setPopup] = useState<PopupType>({ visible: false }); // 弹框信息\n const input = useRef<any>(null);\n const [source, setSource] = useState(expression);\n\n const [errorMessage, setErrorMessage] = useState(''); // 报错信息 'Unknown Field: a'\n const [error, setError] = useState<boolean>(false);\n\n const popupContent = useMemo(() => {\n let { visible, content } = popup;\n if (!visible) return null;\n return content;\n }, [popup]);\n\n useEffect(() => {\n _setCaretPosition(source.length, source.length === 0);\n _triggerAutosuggest();\n return () => {\n closePopup();\n };\n }, []);\n\n function closePopup() {\n setPopup({ visible: false });\n store.setClosable(true);\n }\n\n // 设置关闭位置\n function _setCaretPosition(position: number, autosuggest?: boolean) {\n setCaretPosition(input.current, position);\n if (autosuggest) {\n setTimeout(() => _triggerAutosuggest());\n }\n }\n\n // 根据当前光标位置判断弹出框内容\n function onExpressionChange(source: string): void {\n const inputElement = input.current;\n if (!inputElement) return;\n\n setSource(source);\n closePopup();\n\n const [selectionStart, selectionEnd] = getSelectionPosition(inputElement);\n const hasSelection = selectionStart !== selectionEnd;\n const targetOffset = !hasSelection ? selectionEnd : null;\n if (targetOffset === null) return void 0; // 框选\n setCaretPosition(input.current, selectionStart);\n\n const popupInfo: ChoosePopupResultType = suggest.choosePopup({\n source,\n targetOffset,\n fields: data,\n });\n let content;\n if (popupInfo.type === SelectPopupTypeEnum.FUNCTION_DESC) {\n content = <FunctionTip funcName={popupInfo.functionName} />;\n }\n if (popupInfo.type === SelectPopupTypeEnum.SELECT_LIST) {\n content = (\n <SelectList\n data={popupInfo.data}\n onSelect={(type: OptionsTypeEnum, val) => {\n let value: string = '';\n let len: number = 0;\n let partialSource = source.slice(0, targetOffset);\n let leftoverSource = source.slice(targetOffset);\n const matchPrefix = partialMatch(partialSource);\n if (matchPrefix && !/^\\[.*\\]$/.test(matchPrefix)) {\n partialSource = partialSource.slice(0, -matchPrefix.length);\n }\n\n // 去掉后面空格\n if (/.*\\s$/.test(partialSource)) {\n partialSource = partialSource.slice(0, -1);\n }\n // 去掉前面空格\n if (/^\\s.*/.test(leftoverSource)) {\n leftoverSource = leftoverSource.slice(1);\n }\n\n if (type === OptionsTypeEnum.FUNCTION) {\n value += partialSource + ' ' + val + '()';\n len = value.length - 1;\n }\n if (type === OptionsTypeEnum.OTHER) {\n value += partialSource + ' ' + '()';\n len = value.length - 1;\n }\n if (type === OptionsTypeEnum.FIELD) {\n value += partialSource + ' ' + `[${val}]`;\n len = value.length;\n }\n if (type === OptionsTypeEnum.OPERATOR) {\n value += partialSource + ' ' + val;\n len = value.length;\n }\n\n if (leftoverSource) {\n value += ' ' + leftoverSource;\n }\n setTimeout(() => setCaretPosition(input.current, len));\n\n setSource(value);\n closePopup();\n }}\n />\n );\n }\n if (popupInfo.type === SelectPopupTypeEnum.EMPTY || !content) {\n return void 0;\n }\n\n setPopup({\n visible: true,\n content,\n });\n store.setClosable(false);\n }\n\n // 键盘点击 方向键 & 回车 & esc\n function onInputKeyDown(e: any) {\n if (e.keyCode === KEYCODE_LEFT || e.keyCode === KEYCODE_RIGHT) {\n setTimeout(() => _triggerAutosuggest());\n return;\n }\n if (e.keyCode === KEYCODE_ESCAPE) {\n e.stopPropagation();\n e.preventDefault();\n closePopup();\n return;\n }\n\n if (e.keyCode === KEYCODE_ENTER) {\n e.preventDefault();\n } else if (e.keyCode === KEYCODE_UP) {\n e.preventDefault();\n } else if (e.keyCode === KEYCODE_DOWN) {\n e.preventDefault();\n }\n }\n\n // TODO 校验公式待完成\n function checkExpression(expression: string): [false, string] | [true] {\n // let _expression = expression.replace(/\\s/g, '');\n return [true];\n }\n\n // 失去焦点 检查语法错误情况,并将表达式传给父级\n function onInputBlur(e: any) {\n if (e.target === document.activeElement) {\n // `Invalid expression`\n return;\n }\n const [pass, errorMessage] = checkExpression(source);\n if (pass) {\n props.onChange(source);\n setErrorMessage('');\n } else {\n // props.onError(errorMessage);\n setErrorMessage(errorMessage as string);\n }\n }\n\n // 计算当前是否弹框,和弹框内容\n function _triggerAutosuggest() {\n onExpressionChange(source);\n }\n\n return (\n <>\n <div className={`mt-2 mb-2 relative`}>\n <div\n className={`input font-bold absolute top-0 left-0`}\n style={{ fontSize: 12, pointerEvents: 'none', borderColor: 'transparent' }}\n >\n =\n </div>\n\n <TokenizedInput\n ref={input}\n className={cx(`input font-bold`, { 'border-error': error })}\n style={{ fontSize: 12, paddingLeft: 26 }}\n value={source}\n onChange={(e: any) => onExpressionChange(e.target.value)}\n onKeyDown={onInputKeyDown}\n onBlur={onInputBlur}\n onFocus={() => setTimeout(() => _triggerAutosuggest())}\n onClick={() => setTimeout(() => _triggerAutosuggest())}\n />\n\n <ErrorMessage msg={errorMessage} />\n </div>\n <Popup\n visible={popup.visible}\n closable={true}\n node={input.current}\n innerSpacing={popup.innerSpacing}\n hideVisible={closePopup}\n >\n {popupContent}\n </Popup>\n </>\n );\n};\n\nexport default ExpressionEditor;\n","import './index.less';\n\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\nimport _ from 'lodash';\nimport cx from 'classnames';\n\nimport { MetaCustom_Item, MetaData_ColumnsType } from '../../../store/types';\nimport { __ } from '../../../locale';\nimport ExpressionEditor from './expression-editor';\n\nconst WIDTH = 480;\ninterface PropsType {\n value: MetaCustom_Item | null;\n data: MetaData_ColumnsType[]; // 表下面可选则的字段列表\n onChange: (record: MetaCustom_Item) => void; // 选中回调事件\n onClose: Function; // 关闭弹框\n}\n\n// 自定义列\nconst CustomColumn = ({ value, data = [], onChange, onClose = () => {} }: PropsType) => {\n const [name, setName] = useState<string>(value?.name || ''); // 表达式名字\n const [expression, setExpression] = useState<string>(value?.formula || ''); // 表达式\n\n const isUpdate = !!value;\n\n // 提交按钮是否可用\n const usable = useMemo(() => {\n return expression && name;\n }, [expression, name]);\n\n function onOk() {\n typeof onChange === 'function' && onChange({ name, formula: expression });\n }\n\n let buttonText = isUpdate ? __('customColumn.update') : __('customColumn.complete');\n return (\n <div className={cx(`Sqb-CustomColumn--box`)}>\n <div style={{ width: WIDTH }}>\n <div className='p-4'>\n <div\n className={`font-bold uppercase tracking-wider`}\n style={{ fontSize: 12, color: '#949aab' }}\n >\n {__('customColumn.fieldFormula')}\n </div>\n\n <div>\n <ExpressionEditor\n data={data}\n expression={value?.formula || ''}\n onChange={(str: string) => {\n setExpression(str);\n }}\n />\n </div>\n\n <div\n className={`mt-6 font-bold uppercase tracking-wider`}\n style={{ fontSize: 12, color: '#949aab' }}\n >\n {__('customColumn.giveItAName')}\n </div>\n\n <div>\n <input\n type='text'\n value={name}\n className={`input mt-2 mb-2 w-full block`}\n placeholder={__('customColumn.somethingAwesomeToDocument')}\n onInput={(e: any) => {\n setName(e.target.value);\n }}\n />\n </div>\n </div>\n <div className={`btns mt-4 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 {buttonText}\n </button>\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nexport default CustomColumn;\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);\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","/**\n * 选择保留哪些表字段\n * 谁在用?\n * 1、数据模块\n * 2、关联模块\n */\nimport './index.less';\nimport React, { useMemo, useState } from 'react';\nimport cloneDeep from 'lodash/cloneDeep';\nimport cx from 'classnames';\n\nimport { MetaData_ColumnsType } from '../../../store/types';\nimport { __ } from '../../../locale';\nimport { NotSelectIcon, SelectIcon } from '../../icons';\n\ninterface PropsType {\n data: MetaData_ColumnsType[]; // 列表数据\n onChange: (record: MetaData_ColumnsType[]) => void; // 选中回调事件\n}\n\n// 选择表中参数\nconst SelectColumn = ({ data = [], onChange }: PropsType) => {\n const [columns, setColumns] = useState<MetaData_ColumnsType[]>(data.slice());\n\n const isAllSelect = useMemo(() => {\n return columns.filter((v: any) => v.select).length === columns.length;\n }, [columns]);\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 setColumns(columns);\n typeof onChange === 'function' && onChange(columns);\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 {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 </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 'antd';\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 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 // 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 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.alias); // 当前选择的表\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.alias ? true : v.alias === _value.alias; // 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.alias);\n setCurColumn(_value.name);\n }, [_value]);\n useEffect(() => {\n setTableList(\n data.map((v: DataType, i: number) => {\n let open = !i && !_value.alias ? true : v.alias === _value.alias; // 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 } = tableItem;\n let isMultiple = tableList.length > 1;\n\n let isSummarize = tableAlias === SummarizeAlias;\n return (\n <div key={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: tableAlias === v.alias ? false : v.open,\n })),\n );\n } else {\n setTableList(\n newTables.map((v: TableListType) => ({\n ...v,\n open: tableAlias === v.alias || v.alias === SummarizeAlias,\n })),\n );\n }\n }}\n >\n <a>\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}.${table || tableAlias}`\n : table || tableAlias\n }\n >\n {datasourceName\n ? `${datasourceName}.${table || tableAlias}`\n : table || tableAlias}\n </h3>\n </div>\n {isMultiple && (\n <span className={'List-title-arrow'}>\n {open ? <UpArrowIcon2 /> : <DownArrowIcon2 />}\n </span>\n )}\n </a>\n </div>\n </div>\n )}\n\n {open && (\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 === tableAlias && _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 === tableAlias,\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 ...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 ...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 <a className={'p-2'}>\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 </a>\n {OPEN_GROUP && isGroup && groupe !== SQL_GROUP_TYPE.STRING && (\n <Popover\n placement='rightTop'\n onVisibleChange={(visible) => {\n if (visible) {\n setCurTable(tableAlias);\n setCurColumn(name);\n store.setClosable(false);\n } else {\n setCurTable(value.alias);\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 onClick={({ 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 ...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 } from '@gingkoo/pandora-icons';\nimport { Button, Tooltip, Input, Modal2 } from '@gingkoo/pandora';\nimport _ from 'lodash';\nimport cx from 'classnames';\nimport { Menu, Dropdown, DatePicker, ConfigProvider } from 'antd';\nimport { DownOutlined } from '@ant-design/icons';\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 } from '../../../store/types';\nimport { NUMBER_GROUP, DATE_GROUP } from '../const';\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];\nconst STRING_LIST = ['是', '不是', '包含', '不包含', '为空', '不为空', '以...开始', '以...结束'];\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}\n\nconst SelectFilterColumn = ({ data = [], value, onChange, didUpdate }: PropsType) => {\n const [curColumn, setCurColumn] = useState<ColumnType>(value);\n const [condition, setCondition] = useState<string>(value.condition);\n const [isField, setIsField] = useState<boolean>(value.isField || false);\n const [curVal, setVal] = useState<string[]>(value.val);\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 (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) {\n return false;\n }\n return true;\n }, [curVal, condition, curColumn]);\n\n useEffect(() => {\n didUpdate?.();\n }, [condition]);\n\n function generateQuotes(val: string[], curColumn: ColumnType) {\n let [firstVal = '', secondVal = ''] = val;\n let quotes = '';\n if (condition === '以...开始') {\n if (isEn) {\n quotes = (curColumn as ColumnType).name + ' ' + `startWith ${firstVal}`;\n } else {\n quotes = (curColumn as ColumnType).name + ' ' + `以 ${firstVal} 开始`;\n }\n } else if (condition === '以...结束') {\n if (isEn) {\n quotes = (curColumn as ColumnType).name + ' ' + `endWith ${firstVal}`;\n } else {\n quotes = (curColumn as ColumnType).name + ' ' + `以 ${firstVal} 结束`;\n }\n } else if (condition === '介于之间') {\n if (isEn) {\n quotes = (curColumn as ColumnType).name + ' ' + `Between ${firstVal} and ${secondVal}`;\n } else {\n quotes = (curColumn as ColumnType).name + ' ' + `介于${firstVal}和${secondVal}之间`;\n }\n } else if (condition === '前') {\n if (isEn) {\n quotes = (curColumn as ColumnType).name + ' ' + `previous ${firstVal}${secondVal}`;\n } else {\n quotes = (curColumn as ColumnType).name + ' ' + `上一个${firstVal}${secondVal}`;\n }\n } else if (condition === '下一个') {\n if (isEn) {\n quotes = (curColumn as ColumnType).name + ' ' + `next ${firstVal}${secondVal}`;\n } else {\n quotes = (curColumn as ColumnType).name + ' ' + `下一个${firstVal}${secondVal}`;\n }\n } else if (condition === '在') {\n if (isEn) {\n quotes = (curColumn as ColumnType).name + ' is ' + firstVal;\n } else {\n quotes = (curColumn as ColumnType).name + ' 是 ' + firstVal;\n }\n } else if (condition === '是空的') {\n if (isEn) {\n quotes = (curColumn as ColumnType).name + ' is empty';\n } else {\n quotes = (curColumn as ColumnType).name + ' 为空';\n }\n } else if (condition === '不是空的') {\n if (isEn) {\n quotes = (curColumn as ColumnType).name + ' not empty';\n } else {\n quotes = (curColumn as ColumnType).name + ' 不为空';\n }\n } else if (condition === '当前') {\n if (firstVal === '天') {\n if (isEn) {\n quotes = (curColumn as ColumnType).name + ' ' + `today`;\n } else {\n quotes = (curColumn as ColumnType).name + ' ' + `今天`;\n }\n } else {\n if (isEn) {\n quotes = (curColumn as ColumnType).name + ' ' + `this is ${firstVal}`;\n } else {\n quotes = (curColumn as ColumnType).name + ' ' + `这个${firstVal}`;\n }\n }\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.is',\n 不是: 'filter.isNo',\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 = (curColumn as ColumnType).name + ' ' + cond + ' ' + curColumn.table2.name;\n } else {\n quotes = (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 val: curVal, // 选择结果 如果有两个 长度就为2\n isField: isField, //是否是选择字段\n condition, // 选择条件\n quotes, // 前端显示用户看的文字\n groupSql: curColumn.alias === SummarizeAlias ? curColumn.sql : '',\n });\n }\n\n function goPrevPage() {\n setCurColumn({\n table: '', // 表名\n tableId: '', // 表名\n alias: '', // 表的别名\n name: '', // 字段名\n id: '', // 字段名\n sql: '',\n datasourceId: '',\n datasourceName: '',\n database_type: '', // 字段类型\n });\n setCondition('');\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 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 menu={{\n items: [\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 setVal([key]);\n },\n }}\n >\n <Button className='operator-btn' style={{ width: 300 }}>\n {firstVal} <DownOutlined />\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 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} <DownOutlined />\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 (\n ~[\n '等于',\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 const onRepeat = () => {\n setIsField(!isField);\n setVal([]);\n setCurColumn({ ...curColumn, table2: null });\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 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: __(\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.is',\n 不是: 'filter.isNo',\n 包含: 'filter.contain',\n 不包含: 'filter.notInclude',\n '以...开始': 'filter.startWith',\n '以...结束': 'filter.endWith',\n 早于: 'filter.earlierThan',\n 晚于: 'filter.laterThan',\n 是空的: 'filter.isEmpty',\n }[v]!,\n ),\n };\n });\n\n return (\n <div className='filter-page'>\n <div className='header'>\n <div className='left-info'>\n <span onClick={goPrevPage}>\n <LeftArrowIcon />\n {curColumn.name}\n </span>\n </div>\n <div className='right-info'>\n <Dropdown\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 trigger={['click']}\n >\n <Button className='operator-btn' style={{ width: 104 }}>\n {__(\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.is',\n 不是: 'filter.isNo',\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 <DownOutlined />\n </Button>\n </Dropdown>\n </div>\n </div>\n <div className='content'>\n {isField ? (\n <div\n className={cx(`Sqb-TableName`, { notSelected: !table2Selected })}\n onClick={selectTable}\n >\n {table2Selected\n ? `${curColumn.table2?.datasourceName}.${curColumn.table2?.name}`\n : __('SqlQueryBuilder.pickTable')}\n </div>\n ) : (\n <div className='content_l'>{renderFilter(type, condition)}</div>\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>{__('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: any) => {\n return <SelectFilterColumn {...props} />;\n};\n","/**\n * 关联模块 选择表字段\n */\nimport './index.less';\nimport React, { useState } from 'react';\nimport _ from 'lodash';\nimport { Tooltip } from 'antd';\nimport cx from 'classnames';\n\nimport { ColumnsPopupThemeEnum } from '../../../store/enum';\nimport { DataType, ColumnType } from '../select-join-column';\nimport { NUMBER_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) => o.database_type && NUMBER_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='rightTop' 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';\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 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 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 _ from 'lodash';\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, { 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';\nimport cx from 'classnames';\n\nimport { __ } from '../../../locale';\nimport { TypeEnum } from '../../../store/enum';\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} from '../../icons';\n\ntype MetaIconDomProps = {\n show: boolean;\n className?: string;\n type: TypeEnum;\n};\n\ninterface PropsType {\n meta: MetaListType;\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]);\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];\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];\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];\n\nconst metaIcon = (size: IconSIzeEnum, handleClick: Function): any => {\n return ({ type }: MetaIconDomProps) => {\n let info = IconTypeMap.get(type) as IconInfoType;\n return (\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 );\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) => {\n let { meta } = props;\n let { type } = meta;\n let isLast = store.metaList.indexOf(meta) === store.metaList.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 } = props;\n let { type } = meta;\n let index = store.metaList.indexOf(meta);\n let {\n ExistAboveGroupBy,\n ExistBelowGroupBy,\n prevTypes,\n nextTypes,\n prevList,\n nextList,\n prevGroupBy,\n nextGroupBy,\n } = getHelper(store.metaList, meta);\n\n let nextType = store.metaList[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];\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];\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];\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 } = props;\n const store = useStore();\n // @ts-ignore\n if (!store.metaList[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);\n\n function handleClick(type: string) {\n let index = store.metaList.indexOf(meta);\n store.addMeta(type, index + 1);\n }\n\n const MetaIconDom = metaIcon(size, handleClick);\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 from 'react';\nimport { Tooltip } from 'antd';\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='bottom' title={__('data.del')}>\n <CloseIcon2 className={`Sqb-item-close`} onClick={props.onClose} />\n </Tooltip>\n )}\n </div>\n );\n};\n\nexport default Header;\n","import React, { useEffect } from 'react';\nimport cx from 'classnames';\n\nimport { __ } from '../../locale';\nimport { MetaData, MetaData_TableType, MetaData_ColumnsType } from '../../store/types';\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}\n\nconst TableData = (props: PropsType) => {\n const { meta } = props;\n const store = useStore();\n let selected = Boolean(meta.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.slice()[0] as MetaData;\n newMetaList.table = data;\n store.fetchColumns(data, data.datasourceId, (columns: MetaData_ColumnsType[]) => {\n newMetaList.columns = columns;\n // ① 主表动了 其他都得重新选\n store.setMeta([newMetaList]);\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 data={columns as MetaData_ColumnsType[]}\n onChange={(data: MetaData_ColumnsType[]) => {\n let newMetaList = store.metaList.slice();\n // @ts-ignore\n newMetaList[0].columns = data;\n store.setMeta(newMetaList);\n }}\n />\n ),\n });\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 <div\n className={cx(`Sqb-TableName`, {\n notSelected: !selected,\n })}\n onClick={selectTable}\n >\n {selected\n ? `${meta.table.datasourceName}.${meta.table.name}`\n : __('SqlQueryBuilder.pickTable')}\n </div>\n {selected && store.showMainColumn && store.showFields && (\n <div className={`Sqb-TableColumns`} onClick={selectColumns}>\n {__('SqlQueryBuilder.columns')}\n </div>\n )}\n </div>\n </div>\n\n <NextDom meta={meta} />\n </div>\n </Wrapper>\n );\n};\n\nexport default TableData;\n","import React, { useEffect, useState } from 'react';\nimport cx from 'classnames';\nimport { Button, Tooltip, Input, Modal2 } from '@gingkoo/pandora';\nimport { FfPlus, FfLine, Repeat, RelatedWork } from '@gingkoo/pandora-icons';\nimport Metabase from '../../index';\nimport isEqual from 'lodash/isEqual';\nimport cloneDeep from 'lodash/cloneDeep';\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 } from '../../utils';\n\nimport Wrapper from './components/Wrapper';\nimport NextDom from './components/meta-icon';\nimport Header from './components/header';\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\ninterface PropsType {\n meta: MetaJoin;\n}\n\nenum FlagLocation {\n TABLE_1 = 'table1',\n TABLE_2 = 'table2',\n}\n\nenum ExpressionsEnum {\n LEFT = 'left_column',\n RIGHT = 'right_column',\n}\n\nconst JoinData = (props: PropsType) => {\n const { meta } = props;\n const store = useStore();\n let { metaKey } = meta;\n let index = findIndex(store.metaList, meta);\n let table1Selected = Boolean(meta.table1.name);\n let table2Selected = Boolean(meta.table2.name);\n let subQuerySelected = Boolean(meta.subquery?.[0]?.table?.name);\n let columnsSelected = meta.table1.column && meta.table2.column;\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 onChange={(data: MetaData_ColumnsType[]) => {\n let newMetaList = store.metaList.slice();\n (newMetaList[index] as MetaJoin).columns = data;\n store.setMeta(newMetaList);\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 };\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.slice();\n\n /**\n * ExistAboveGroupBy: boolean; // 当前元素上面是否存在 聚合\n * prevList: MetaListType[]; // 同 prevTypes 但是放的是 meta[]\n * prevTypes: TypeEnum[]; // 当前元素和上面最近的聚合 中间的types列表\n */\n let { ExistAboveGroupBy, prevList } = getHelper(store.metaList, meta);\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('_')[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 alias,\n column: '',\n column_id: '',\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);\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.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.slice();\n (newMeta[index] as MetaJoin).joinType = type;\n store.setMeta(newMeta);\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].column,\n id: meta[type].column_id,\n table: meta[type].name,\n tableId: meta[type].id,\n alias: meta[type].alias,\n database_type: '',\n datasourceId: '',\n datasourceName: '',\n };\n\n let { ExistAboveGroupBy, prevList, prevGroupBy } = getHelper(store.metaList, meta);\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 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 datasourceId: v.table2.datasourceId,\n datasourceName: v.table2.datasourceName,\n columns: v.columns,\n };\n }),\n );\n }\n } else {\n data = store.metaList.slice(0, index).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 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 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 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 { table, alias, name, sql, datasourceId, datasourceName, id = '' } = record;\n let newMeta = store.metaList.slice();\n ((newMeta[index] as MetaJoin)[type] as MetaJoin_TalbeType).column = name;\n ((newMeta[index] as MetaJoin)[type] as MetaJoin_TalbeType).column_id = id;\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).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);\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, meta);\n let table_type = type === ExpressionsEnum.LEFT ? FlagLocation.TABLE_1 : FlagLocation.TABLE_2;\n let value: ColumnType = {\n name: meta.expressions[_ind][type],\n id: meta.expressions[_ind][`${type}_id`],\n table: meta[table_type].name,\n tableId: meta[table_type].id,\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(store.metaList, meta);\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 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 datasourceId: v.table2.datasourceId,\n datasourceName: v.table2.datasourceName,\n columns: v.columns,\n };\n }),\n );\n }\n } else {\n data = store.metaList.slice(0, index).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 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 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.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 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 { table, alias, name, sql, datasourceId, datasourceName, id = '' } = record;\n let newMeta = store.metaList.slice();\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);\n store.setPopup({ visible: false });\n }}\n />\n ),\n });\n }\n function onIsString(type: 'left_isString' | 'right_isString', _ind: number) {\n let index = findIndex(store.metaList, meta);\n let newMeta = store.metaList.slice();\n (newMeta[index] as MetaJoin).expressions[_ind][type] = !(newMeta[index] as MetaJoin)\n .expressions[_ind][type];\n store.setMeta(newMeta);\n }\n function onChangeString(type: 'left_string' | 'right_string', _ind: number, val: string) {\n let index = findIndex(store.metaList, meta);\n let newMeta = store.metaList.slice();\n (newMeta[index] as MetaJoin).expressions[_ind][type] = val;\n store.setMeta(newMeta);\n }\n\n // 子查询弹窗\n const showSubQuery = (val: any = []) => {\n const { subToolbar, toolbar, ...other } = store.preProps;\n\n let newMeta: MetaListType[] = store.metaList.slice();\n let index = findIndex(store.metaList, meta);\n let oldList = cloneDeep((newMeta[index] as MetaJoin).subquery);\n\n let o = Modal2.openModal({\n title: __('SqlQueryBuilder.subquery'),\n transparentMask: true,\n zIndex: 200,\n content: (\n <>\n <Metabase\n {...other}\n _showSubquery={store.showSubquery}\n toolbar={subToolbar || 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 column: '',\n column_id: '',\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 store.setMeta(newMeta);\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, meta);\n let newMeta: MetaListType[] = store.metaList.slice();\n (newMeta[index] as MetaJoin).isSubquery = !(newMeta[index] as MetaJoin).isSubquery;\n (newMeta[index] as MetaJoin).table2 = {\n column: '',\n column_id: '',\n name: '', // 表名\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);\n };\n\n return (\n <Wrapper className={cx(`Sqb-item`)} key={metaKey}>\n <div className={cx(`Sqb-hover-parent`)}>\n <Header title={__('SqlQueryBuilder.joinData')} onClose={() => store.delMeta(meta)} />\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 ? `${meta.subquery?.[0].table.datasourceName}.${meta.subquery?.[0].table.name}`\n : __('SqlQueryBuilder.setSubQuery')}\n </div>\n ) : (\n <div\n className={cx(`Sqb-TableName`, { notSelected: !table2Selected })}\n onClick={selectTable}\n >\n {table2Selected\n ? `${meta.table2.datasourceName}.${meta.table2.name}`\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.column })}\n v-data={FlagLocation.TABLE_1}\n onClick={selectJoinColumn}\n >\n {meta.table1.column ? meta.table1.column : __('SqlQueryBuilder.pickTable')}\n </div>\n <span className={'mr-2 text-gray-500'}>=</span>\n <div\n className={cx(`Sqb-TableName`, { notSelected: !meta.table2.column })}\n v-data={FlagLocation.TABLE_2}\n onClick={selectJoinColumn}\n >\n {meta.table2.column ? meta.table2.column : __('SqlQueryBuilder.pickTable')}\n </div>\n </div>\n )}\n {meta.table1.column_id &&\n meta.table2.column_id &&\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_isString ? (\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 <div\n className={cx(`Sqb-TableName`, { notSelected: !v.left_column })}\n v-data={ExpressionsEnum.LEFT}\n v-index={i}\n onClick={selectMoreJoinColumn}\n >\n {v.left_column ? v.left_column : __('SqlQueryBuilder.pickTable')}\n </div>\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={() => {\n onIsString('left_isString', i);\n }}\n />\n </Tooltip>\n\n <span className={'mr-2 text-gray-500'}>=</span>\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={() => {\n onIsString('right_isString', 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, meta);\n\n let newMeta: MetaListType[] = store.metaList.slice();\n (newMeta[index] as MetaJoin).expressions.splice(i + 1, 0, {\n operator: 'and',\n left_column: '',\n left_column_id: '',\n left_string: '',\n left_isString: false,\n right_column: '',\n right_column_id: '',\n right_string: '',\n right_isString: false,\n });\n store.setMeta(newMeta);\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, meta);\n\n let newMeta: MetaListType[] = store.metaList.slice();\n (newMeta[index] as MetaJoin).expressions.splice(i, 1);\n store.setMeta(newMeta);\n }}\n />\n </Tooltip>\n )}\n </div>\n );\n })}\n {meta.table1.column_id &&\n meta.table2.column_id &&\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, meta);\n\n let newMeta: MetaListType[] = store.metaList.slice();\n (newMeta[index] as MetaJoin).expressions = [\n {\n operator: 'and',\n left_column: '',\n left_column_id: '',\n left_string: '',\n left_isString: false,\n right_column: '',\n right_column_id: '',\n right_string: '',\n right_isString: false,\n },\n ];\n store.setMeta(newMeta);\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} />\n </div>\n </Wrapper>\n );\n};\n\nexport default JoinData;\n","// @ts-nocheck\nimport React from 'react';\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} from '../../store/types';\nimport { getHelper } from '../../utils';\nimport { TypeEnum } from '../../store/enum';\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}\n\nconst CustomColumn = (props: PropsType) => {\n const { meta } = props;\n const store = useStore();\n let { customColumn } = meta;\n let index = findIndex(store.metaList, meta);\n\n function getAvailableColumns(): MetaData_ColumnsType[] {\n let newMeta = store.metaList.slice();\n let columns: MetaData_ColumnsType[] = [];\n let { ExistAboveGroupBy, prevList } = getHelper(store.metaList, 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\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.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);\n closePopup();\n }}\n onClose={closePopup}\n />\n ),\n });\n }\n\n function handleAdd(e: any) {\n let newMeta = store.metaList.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 onChange={(data: MetaCustom_Item) => {\n newMeta[index].customColumn.push(data);\n store.setMeta(newMeta);\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.slice();\n // TIPS 删除了后面都得删除 暂时不删除 因为过滤器和组合都没用到自定义列\n newMeta[index].customColumn = customColumn.filter(\n (_: MetaCustom_Item, i: number) => i !== itemId,\n );\n store.setMeta(newMeta);\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);\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) => handleUpdate(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 </div>\n\n <NextDom meta={meta} />\n </div>\n </Wrapper>\n );\n};\n\nexport default CustomColumn;\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 {\n MetaFilter,\n MetaFilter_Item,\n MetaSummarize,\n MetaListType,\n MetaJoin,\n MetaSummarize_Group,\n MetaSummarize_By,\n MetaData,\n} from '../../store/types';\nimport { DataType } from '../dialog/select-join-column';\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';\n\nimport { useStore } from '../../hooks/use-provider';\n\ninterface PropsType {\n meta: MetaFilter;\n}\n\nconst Filter = (props: PropsType) => {\n const { meta } = props;\n const store = useStore();\n let { filter } = meta;\n let index = findIndex(store.metaList, meta);\n let notSelected = !meta.filter.length;\n\n function getColumns(): DataType[] {\n let { ExistAboveGroupBy, prevList, prevGroupBy } = getHelper(store.metaList, meta);\n let newMeta = store.metaList.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 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 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\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 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 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 function handleUpdate(e: any, i: number) {\n let newMeta = store.metaList.slice();\n let data = getColumns();\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);\n closePopup();\n }}\n />\n ),\n });\n }\n\n function handleAdd(e: any) {\n let newMeta = store.metaList.slice();\n let data: DataType[] = getColumns();\n\n let value: MetaFilter_Item = {\n table: '', // 表名\n tableId: '', // 表名\n alias: '', // 表的别名\n name: '', // 字段名\n id: '', // 字段名\n database_type: '', // 字段类型\n condition: '', // 选择条件\n val: [], // 选择结果 如果有两个 长度就为2\n quotes: '', // 前端显示用户看的文字\n datasourceId: '',\n datasourceName: '',\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={(data: MetaFilter_Item) => {\n (newMeta[index] as MetaFilter).filter.push(data);\n store.setMeta(newMeta);\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.slice();\n // @ts-ignore\n newMeta[index].filter = filter.filter((_: any, i: number) => i !== itemId);\n store.setMeta(newMeta);\n }\n\n function closePopup() {\n store.setPopup({ visible: false });\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);\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 className={`Sqb-TableName purple-name`}\n key={i}\n onClick={(e) => handleUpdate(e, i)}\n >\n {v.quotes}\n <span style={{ fontSize: 0 }} onClick={(e) => handleDel(e, i)}>\n <CloseIcon />\n </span>\n </div>\n );\n })}\n\n <div className={cx(`Sqb-TableName purple-name`, { notSelected })} onClick={handleAdd}>\n {notSelected ? __('filter.addFiltersToNarrowDownYourAnswers') : <AddIcon />}\n </div>\n </div>\n </div>\n\n <NextDom meta={meta} />\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} from '../../../store/types';\nimport SelectJoinColumn, { DataType, ColumnType } from '../../dialog/select-join-column';\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}\n\nconst GroupBy = (props: PropsType) => {\n const { meta } = props;\n const store = useStore();\n let { by } = meta;\n let index = findIndex(store.metaList, meta);\n let notBySelected = !meta.by.length;\n\n function getColumns(): DataType[] {\n let { ExistAboveGroupBy, prevList, prevGroupBy } = getHelper(store.metaList, 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 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 { alias: v.table2.alias, table: v.table2.name, columns: v.columns };\n }),\n );\n }\n } else {\n // @ts-ignore\n data = store.metaList\n .slice(0, index)\n .map((v: MetaListType) => {\n if (v.type === TypeEnum.data) {\n return { alias: v.table.alias, table: v.table.name, columns: v.columns };\n } else if (v.type === TypeEnum.joinData) {\n return {\n alias: (v as MetaJoin).table2.alias,\n table: (v as MetaJoin).table2.name,\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.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 return {\n ...v,\n sql: `${v.alias}.${v.realName || v.name} AS ${v.alias}__${v.name}`,\n };\n });\n if (value.quotes !== data.quotes) {\n newMeta = newMeta.filter((_: MetaListType, _i: number) => _i <= index);\n }\n store.setMeta(newMeta);\n closePopup();\n }}\n />\n ),\n });\n }\n\n function handleAdd(e: any) {\n let newMeta = store.metaList.slice();\n let data: DataType[] = getColumns();\n let value: MetaSummarize_By = {\n table: '',\n tableId: '',\n alias: '',\n name: '',\n id: '',\n sql: '',\n database_type: '',\n condition: '',\n quotes: '',\n datasourceId: '',\n datasourceName: '',\n column: '',\n column_id: '',\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 console.log('🚀 ~ handleAdd ~ data:', data);\n // @ts-ignore\n newMeta[index].by.push(data);\n // @ts-ignore\n newMeta[index].by = newMeta[index].by.map((v: MetaSummarize_By) => {\n return {\n ...v,\n sql: `${v.alias}.${v.realName || v.name} AS ${v.alias}__${v.name}`,\n };\n });\n store.setMeta(newMeta);\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.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);\n }\n\n function closePopup() {\n store.setPopup({ visible: false });\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 <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 {\n MetaListType,\n MetaSummarize,\n MetaSummarize_Group,\n MetaSummarize_By,\n MetaJoin,\n} from '../../../store/types';\nimport { DataType } from '../../dialog/select-join-column';\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}\n\nconst SelectIndex = (props: PropsType) => {\n const { meta } = props;\n const store = useStore();\n let { group } = meta;\n let index = findIndex(store.metaList, meta);\n let notGroupSelected = !group.length;\n\n function getColumns(): DataType[] {\n let { ExistAboveGroupBy, prevList, prevGroupBy } = getHelper(store.metaList, 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 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 { alias: v.table2.alias, table: v.table2.name, columns: v.columns };\n }),\n );\n }\n } else {\n // @ts-ignore\n data = store.metaList\n .slice(0, index)\n .map((v: MetaListType) => {\n if (v.type === TypeEnum.data) {\n return { alias: v.table.alias, table: v.table.name, columns: v.columns };\n } else if (v.type === TypeEnum.joinData) {\n return {\n alias: (v as MetaJoin).table2.alias,\n table: (v as MetaJoin).table2.name,\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.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 return {\n ...v,\n //@ts-ignore\n sql: summarizeToSql(newMeta[index].group, v),\n };\n });\n if (value.quotes !== data.quotes) {\n newMeta = newMeta.filter((_: MetaListType, _i: number) => _i <= index);\n }\n store.setMeta(newMeta);\n closePopup();\n }}\n />\n ),\n });\n }\n\n function handleAdd(e: any) {\n let newMeta = store.metaList.slice();\n let data: DataType[] = getColumns();\n let value: MetaSummarize_Group = {\n table: '',\n tableId: '',\n alias: '',\n name: '',\n id: '',\n sql: '',\n database_type: '',\n condition: '',\n quotes: '',\n datasourceId: '',\n datasourceName: '',\n column: '',\n column_id: '',\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 return {\n ...v,\n // @ts-ignore\n sql: summarizeToSql(newMeta[index].group, v),\n };\n });\n store.setMeta(newMeta);\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.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);\n }\n\n function closePopup() {\n store.setPopup({ visible: false });\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 <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}\n\nconst Summarize = (props: PropsType) => {\n const { meta } = 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);\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} />\n </div>\n <div className={'pass'}>{__('SqlQueryBuilder.by')}</div>\n <div className={`Sqb-NotebookCell green-bg`}>\n <GroupBy meta={meta} />\n </div>\n </div>\n </div>\n\n <NextDom meta={meta} />\n </div>\n </Wrapper>\n );\n};\n\nexport default Summarize;\n","import React from 'react';\nimport cx from 'classnames';\nimport _ from 'lodash';\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';\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}\n\nconst Sort = (props: PropsType) => {\n const { meta } = props;\n const store = useStore();\n let { sort } = meta;\n let index = findIndex(store.metaList, meta);\n\n function getColumns(): DataType[] {\n let { ExistAboveGroupBy, prevGroupBy } = getHelper(store.metaList, 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 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\n .slice(0, index)\n .map((v: MetaListType) => {\n if (v.type === TypeEnum.data) {\n return { alias: v.table.alias, table: v.table.name, columns: v.columns };\n } else if (v.type === TypeEnum.joinData) {\n return {\n alias: (v as MetaJoin).table2.alias,\n table: (v as MetaJoin).table2.name,\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.slice();\n let value: ColumnType = {\n table: '',\n tableId: '',\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, alias, sql } = record;\n if (alias === SummarizeAlias) {\n let aliasColumns = (sql as string)?.split(' AS ')?.[1] || '';\n if (store.metaList[index - 1].type === TypeEnum.summarize) {\n //@ts-ignore\n newMeta[index].sort = [\n //@ts-ignore\n ...newMeta[index].sort,\n { table, alias, name, sort: SortEnum.asc, sql: aliasColumns },\n ];\n } else {\n //@ts-ignore\n newMeta[index].sort = [\n //@ts-ignore\n ...newMeta[index].sort,\n {\n table,\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 { table, alias, name, sort: SortEnum.asc, sql: `${alias}.${name}` },\n ];\n }\n store.setMeta(newMeta);\n store.setPopup({ visible: false });\n }}\n />\n ),\n });\n }\n\n function handleSort(itemIndex: number) {\n let newMeta = store.metaList.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);\n }\n\n function delSortColumn(e: any, itemIndex: number) {\n e.stopPropagation();\n let newMeta = store.metaList.slice();\n //@ts-ignore\n newMeta[index].sort = sort.filter((_: any, i: number) => i !== itemIndex);\n store.setMeta(newMeta);\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)}\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} />\n </div>\n </Wrapper>\n );\n};\n\nexport default Sort;\n","import React from 'react';\nimport { InputNumber } from 'antd';\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}\n\nconst RowLimit = (props: PropsType) => {\n const { meta } = props;\n const store = useStore();\n let index = findIndex(store.metaList, meta);\n\n function handleChange(inputValue: any) {\n let newMeta = store.metaList.slice();\n // @ts-ignore\n newMeta[index].limit = inputValue;\n store.setMeta(newMeta);\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)}\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} />\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';\n\ninterface PropsType {\n meta: MetaData;\n}\n\nconst PrevResult = 'Previous results';\n\nconst PermissionTable = (props: PropsType) => {\n const { meta } = props;\n const store = useStore();\n let index = findIndex(store.metaList, meta);\n\n function selectTable(e: any) {\n let { ExistAboveGroupBy, prevList, prevGroupBy } = getHelper(store.metaList, meta);\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 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 id: v.table2.id,\n datasourceId: v.table2.datasourceId,\n datasourceName: v.table2.datasourceName,\n };\n }),\n );\n }\n } else {\n data = store.metaList.slice(0, index).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 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 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)}\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} />\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 { Toast } from '@gingkoo/pandora';\nimport { Button } from 'antd';\n// import { toJS } from 'mobx';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { LoadingOutlined } from '@ant-design/icons';\nimport Styled from 'styled-components';\n\nimport { handleSqlStruct } from '../../store/helper';\nimport { MetaData } from '../../store/types';\n\nimport { __ } from '../../locale';\nimport modulesMap from '../modules';\n\nimport Popup from '../popup';\nimport { useStore } from '../../hooks/use-provider';\nimport type { MetabaseProps } 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\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 return (\n // @ts-ignore\n <VisualBox ref={popupContainer}>\n <div className={'Sqb'}>\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 icon={saveLoading ? <LoadingOutlined /> : null}\n disabled={saveLoading}\n onClick={async () => {\n if (!(store.metaList[0] as MetaData).table.name) {\n return Toast.warning(__('data.pleaseSelectDataTable'));\n }\n if (saveLoading) return null;\n setSaveLoading(true);\n await onOk(store.metaList);\n setSaveLoading(false);\n }}\n >\n {btnText || __('SqlQueryBuilder.visualize')}\n </Button>\n ) : null}\n\n {popupContainer.current && (\n <Popup\n container={popupContainer.current}\n visible={store.popupData.visible}\n node={store.popupData.node}\n closable={store.popupClosable}\n hideVisible={() => {\n store.setPopup({ visible: false });\n }}\n >\n {popupContent}\n </Popup>\n )}\n {popupContainer.current && (\n <Popup\n container={popupContainer.current}\n visible={store.popupData2.visible}\n node={store.popupData2.node}\n closable={store.popupClosable2}\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 { ConfigProvider } from 'antd';\nimport zhCN from 'antd/locale/zh_CN';\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';\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 = false,\n _showSubquery = true,\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 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(_showSubquery);\n }, [showFields, fieldNameTpl, tableNameTpl, toolbar, showSubquery, _showSubquery]);\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","SortEnum","TypeEnum","JoinEnum","ColumnsPopupThemeEnum","SpecialType","SQL_COLUMN_TYPE","SQL_GROUP_TYPE","DataTypeEnum","EleComponentEnum","findIndex","arr","item","indexOf","getHelper","list","types","map","v","type","curIndex","leftTypes","slice","rightTypes","leftList","rightList","ExistAboveGroupBy","ExistBelowGroupBy","prevTypes","nextTypes","prevList","nextList","prevGroupBy","nextGroupBy","summarize","i","lastIndexOf","getSubColumns","metaList","obj","metaKey","customColumn","name","formula","data","_data","table","alias","tableId","columns","group","length","concat","name_zh","quotes","realName","sql","split","database_type","FLOAT","special_type","select","by","joinData","filter","table2","SummarizeAlias","defaultToolbar","defaultMetaList","id","datasourceId","datasourceName","showFields","setShowFields","useState","showSubquery","setShowSubquery","_showSubquery","_setShowSubquery","toolbar","setToolbar","fieldNameTpl","setFieldNameTpl","tableNameTpl","setTableNameTpl","sourceList","setSourceList","_cacheSource2TableMap","set_cacheSource2TableMap","_cacheColumnsMap","set_cacheColumnsMap","setMeta","popupData","setPopup","visible","node","content","popupData2","setPopup2","popupClosable","setClosable","popupClosable2","setClosable2","fetchDatasetFn","useRef","setFetchDatasetFn","fn","current","fetchColumnsFn","setFetchColumnsFn","preProps","setProps","val","showMainColumn","useMemo","summarizeList","showToolbar","fetchDataset","tables","getDataset","_tables","setDataset","fetchColumns","callback","did","column","groupSql","extra","tableName","getColumns","setColumns","setPreData","_metaList","newMeta","isSubquery","newColumns","items","subquery","flatMap","Math","max","apply","Number","addMeta","index","mainTable","table1","column_id","joinType","left","expressions","sort","rowLimit","limit","permissionTable","splice","delMeta","meta","reset","NUMBER_GROUP","LONG","CURRENCY","STRING","DATE_GROUP","DATE","filterToSql","record","condition","condition_1","condition_2","columnName","NUMBER","transformDate","dataStr","replace","c_1","c_2","summarizeToSql","as","field","count","forEach","_flatArr","res","push","_recursionArr","reverseData","reverse","layeredData","nextMeta","nextNextMeta","nextNextNextMeta","handleNesting","hasInnerSql","Boolean","innerSqlStruct","tableData","filterData","sortData","queryColumns","joinTables","joinCondition","o","customColumns","str","substr","_str","filters","join","groupBy","calcColumns","groupColumns","orderInfos","privilegeTable","handleSqlStruct","compressionStructure","JSON","parse","stringify","d","n","s","c","restoreStructure","e","getCookie","document","cookie","match","RegExp","console","log","locales","activeLocale","isEn","register","warn","__","loading","Loading","show","msg","_jsxs","className","getTextNodeAtPosition","root","treeWalker","createTreeWalker","NodeFilter","SHOW_TEXT","elem","textContent","FILTER_REJECT","FILTER_ACCEPT","nextNode","position","getSelectionPosition","element","setSelectionRange","createTextRange","selectionStart","selectionEnd","selection","window","getSelection","range","getRangeAt","cloneRange","startContainer","startOffset","setStart","end","toString","setEnd","start","setSelectionPosition","focus","collapse","moveEnd","moveStart","startPos","endPos","removeAllRanges","Range","addRange","getCaretPosition","saveSelection","setCaretPosition","KEYCODE_ENTER","KEYCODE_ESCAPE","KEYCODE_LEFT","KEYCODE_UP","KEYCODE_RIGHT","KEYCODE_DOWN","t","TOKEN","Operator","String","Identifier","OPERATOR","Comma","OpenParenthesis","CloseParenthesis","Plus","Minus","Star","Slash","Equal","NotEqual","LessThan","GreaterThan","LessThanEqual","Not","And","Or","tokenize","expression","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","ref","_t5","_t6","_t7","functions","abs","tip","desc","case","parameter","key","explain","ceil","coalesce","floor","lower","ltrim","power","round","rtrim","sqrt","substring","trim","upper","getFuncInfo","OptionsTypeEnum","SelectPopupTypeEnum","Suggest","choosePopup","targetOffset","fields","partialSource","matchPrefix","partialMatch","_fields","last","functionDisplayName","enclosingFunction","FUNCTION_DESC","functionName","SELECT_LIST","_partialSource","prevStr","FIELD","FUNCTION","Object","keys","OTHER","fieldList","includes","funcList","first","EMPTY","lastToken","isOpen","OP","isClose","parenCount","MBQL_CLAUSES","displayName","args","sum","distinct","stddev","requiresFeature","avg","min","share","var","median","percentile","multiple","contains","hasOptions","between","and","or","not","tokenName","clause","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","props","cx","TokenizedInput","defaultProps","style","componentDidMount","ReactDOM","findDOMNode","componentDidUpdate","addEventListener","onSelectionChange","inputNode","restore","innerHTML","ReactDOMServer","renderToStaticMarkup","activeElement","componentWillUnmount","removeEventListener","setValue","onChange","target","onInput","onFocus","onBlur","onKeyDown","onClick","forwardedRef","contentEditable","spellCheck","forwardRef","TokenizedInputWithForwardedRef","getComputedTranslate","getComputedStyle","x","y","transform","webkitTransform","mozTransform","mat","parseFloat","getElementTop","elemTop","offsetTop","pElem","offsetParent","getElementLeft","elemLeft","offsetLeft","getScrollTop","documentElement","scrollTop","getWindowSize","width","body","clientWidth","height","clientHeight","throttle","wait","Date","now","timer","diff","clearTimeout","_self","setTimeout","bind","sleep","Promise","resolve","reject","flatArray","replaceTpl","inputString","values","variableName","WinResetEvent","eventStack","funcId","constructor","addEvent","context","delay","removeEvent","cb","winResetEvent","Portal","didUpdate","getContainer","containerRef","useImperativeHandle","initRef","useEffect","parentNode","removeChild","createPortal","returnDocument","outSpacing","generateTrigger","PortalComponent","Trigger","resetId","createRef","container","bindEvent","that","ele","closePopup","closable","hideVisible","attachParent","popupContainer","mountNode","appendChild","getCurrentNodePos","h","offsetHeight","innerSpacing","createElement","top","pointerEvents","zIndex","getComponent","overflowX","overflowY","backgroundColor","transition","boxShadow","borderRadius","stopPropagation","cloneElement","posY","realHeight","childNodes","winH","downH","maxHeight","topHeight","cssText","portal","SelectList","onSelect","FunctionTip","funcName","sqlFormula","ErrorMessage","ExpressionEditor","store","popup","input","setSource","errorMessage","setErrorMessage","setError","popupContent","_setCaretPosition","_triggerAutosuggest","autosuggest","onExpressionChange","inputElement","hasSelection","popupInfo","suggest","len","leftoverSource","test","onInputKeyDown","keyCode","preventDefault","checkExpression","onInputBlur","pass","_Fragment","fontSize","borderColor","paddingLeft","Popup","WIDTH","CustomColumn","onClose","setName","setExpression","isUpdate","usable","onOk","buttonText","color","placeholder","marginLeft","disabled","CloseIcon2","viewBox","fill","role","FilterIcon","SummarizeIcon","JoinDataIcon","PermissionTableIcon","CustomColumnIcon","SortIcon","RowLimitIcon","LeftJoinIcon","InnerJoinIcon","UpArrowIcon","DownArrowIcon","CloseIcon","AddIcon","TableIcon","SearchIcon","NotSelectIcon","SelectIcon","CircleIcon","LetterAaIcon","CalendarIcon","WellIcon","ForeignKeyIcon","UpArrowIcon2","DownArrowIcon2","LeftArrowIcon","DataSourceIcon","SelectColumn","isAllSelect","AllSelectElement","Array","isArray","cloneDeep","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","toLocaleLowerCase","tableItem","isMultiple","isSummarize","shrink","active","newTables","overflow","title","autoFocus","RangePicker","DatePicker","NUMBER_LIST","STRING_LIST","DATE_LIST","SelectFilterColumn","setCondition","isField","setIsField","curVal","setVal","table2Selected","generateQuotes","firstVal","secondVal","cond","等于","不等于","大于","小于","介于之间","大于或等于","小于或等于","为空","不为空","是","不是","包含","不包含","早于","晚于","是空的","addFilter","goPrevPage","getData","columnType","toUpperCase","conditions","renderFilter","conditionText","display","flexDirection","Input","newVal","showTime","format","moment","Dropdown","trigger","menu","label","Button","DownOutlined","onRepeat","nextPage","selectTable","currentTarget","purple","setDefaultVal","notSelected","Tooltip","primary","ghost","icon","Repeat","_condition","greenGrass","FormulaList","QuotesMap","localeMap","总行数","计数","总和","平均值","不重复值的总数","累积求和","累积行数","累积计数","标准差","最小值","最大值","总的数据行数","一个字段所有数值的总和","一个字段所有数值的平均值","一个字段所有互不重复的值的总数","一个字段所有数值的标准差","一个字段的最小值","一个字段的最大值","Special","SelectSummarize","handleSelect","availableData","placement","JoinList","marginRight","cursor","right","inner","SelectJoin","SelectTable","setLoading","datasource","setList","originList","setOriginList","getTables","newList","PrevResult","SelectPermissionTable","Wrapper","opacity","setOpacity","setMaxHeight","couterRef","animation","IconSIzeEnum","IconTypeMap","DisplayOrder","OrderType","OrderNewType","metaIcon","size","handleClick","info","small","SMALL","large","LARGE","judgeSize","nextLen","isLast","findNextIcon","nextType","available","curLocation","nextLocation","unshift","joinIndex","customIndex","filterIndex","curNewLocation","sortList","NextDom","MetaIconDom","Header","TableData","selected","readonly","newMetaList","selectColumns","FlagLocation","ExpressionsEnum","JoinData","table1Selected","subQuerySelected","columnsSelected","joins","aliasRegExp","lens","_table2","selectJoin","selectJoinColumn","getAttribute","TABLE_1","reduce","mo","selectMoreJoinColumn","_ind","table_type","LEFT","TABLE_2","onIsString","onChangeString","showSubQuery","subToolbar","other","oldList","Modal2","openModal","transparentMask","Metabase","btnText","isEqual","close","switchSubQuery","RelatedWork","operator","left_isString","left_string","left_column","right_isString","right_string","right_column","RIGHT","FfPlus","left_column_id","right_column_id","danger","FfLine","getAvailableColumns","handleUpdate","CustomColumnPopup","handleAdd","handleDel","itemId","Filter","SelectFilter","isPermanent","GroupBy","notBySelected","_i","SelectIndex","notGroupSelected","Summarize","Sort","addSortColumn","selectedSort","aliasColumns","asc","handleSort","itemIndex","delSortColumn","RowLimit","handleChange","inputValue","InputNumber","precision","PermissionTable","VisualBox","Styled","div","attrs","saveLoading","setSaveLoading","popupContent2","metaType","hidden","modulesMap","LoadingOutlined","Toast","warning","SqlVisionBuilder","useData"],"mappings":"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","x_google_ignoreList":[9]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/hooks/use-provider.tsx","../../src/store/enum.ts","../../src/utils.ts","../../src/hooks/use-state.ts","../../src/store/helper.ts","../../src/utils/cookies.ts","../../src/locale/index.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/selection.ts","../../src/components/dialog/custom-column/keyboard.ts","../../src/components/dialog/custom-column/expressions/tokenizer.ts","../../src/sql-formula.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/helper-dom.ts","../../src/utils/helper.ts","../../src/utils/event.ts","../../src/common/Portal/index.tsx","../../src/components/popup.tsx","../../src/components/dialog/custom-column/dialog/select-list.tsx","../../src/components/dialog/custom-column/dialog/function-tip.tsx","../../src/components/dialog/custom-column/expression-editor.tsx","../../src/components/dialog/custom-column/index.tsx","../../src/components/icons.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/Wrapper.tsx","../../src/components/modules/components/meta-icon.tsx","../../src/components/modules/components/header.tsx","../../src/components/modules/table-data.tsx","../../src/components/modules/join-data.tsx","../../src/components/modules/custom-column.tsx","../../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","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}\n\nexport enum JoinEnum {\n left = 'LEFT JOIN',\n right = 'RIGHT JOIN',\n inner = 'INNER JOIN',\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","import { TypeEnum, SQL_COLUMN_TYPE } from './store/enum';\nimport {\n MetaListType,\n MetaSummarize,\n MetaJoin,\n MetaCustom,\n MetaSummarize_Group,\n MetaSummarize_By,\n} from './store/types';\nimport { DataType, ColumnType } from './components/dialog/select-join-column';\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 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 { alias: v.table2.alias, table: v.table2.name, columns: v.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 return { alias: v.table.alias, table: v.table.name, columns: v.columns };\n } else if (v.type === TypeEnum.joinData) {\n return {\n alias: (v as MetaJoin).table2.alias,\n table: (v as MetaJoin).table2.name,\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","import { useEffect, useState, useRef, useMemo, useCallback } from 'react';\n\nimport { TypeEnum, JoinEnum } 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 } from '../types';\nimport { getSubColumns } from '../utils';\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: { name: '', id: '', alias: '', datasourceId: '', datasourceName: '' },\n columns: [],\n },\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 [_cacheSource2TableMap, set_cacheSource2TableMap] = useState<{\n [datasourceId: string]: TableType[];\n }>({}); //数据源id 对应数据集列表\n const [_cacheColumnsMap, set_cacheColumnsMap] = useState<TableColumnsMapType>({}); //数据源id 对应数据集列表\n const [metaList, setMeta] = useState<MetaListType[]>(defaultMetaList); //数据源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<MetaListType[]>(defaultMetaList); //是否可关闭 如果弹框里面再弹框 则不可关闭\n const [popupClosable2, setClosable2] = useState<MetaListType[]>(defaultMetaList); //是否可关闭 如果弹框里面再弹框 则不可关闭\n\n // const [fetchDatasetFn, setFetchDatasetFn] = useState<(id: string) => Promise<any>>(\n // async () => {},\n // ); //fn\n const fetchDatasetFn: any = useRef();\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 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 typeof callback === 'function' && callback(columns);\n };\n\n // 回显\n const setPreData = async (data: MetaListType[]) => {\n if (data.length) {\n let _metaList = data.map((v: any, i) => {\n // 设置右侧column\n if (v.table2?.datasourceId && v.columns.length < 1) {\n let newMeta: MetaListType[] = data.slice();\n\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);\n },\n );\n return { ...v };\n }\n // 设置column\n if (v.table?.datasourceId && v.columns.length < 1) {\n let newMeta: MetaListType[] = data.slice();\n\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 setMeta(newMeta);\n },\n );\n return { ...v };\n }\n return { ...v };\n });\n metaKey = Math.max.apply(\n null,\n _metaList.map((v) => Number(v.metaKey)),\n );\n setMeta(_metaList);\n } else {\n setMeta(defaultMetaList);\n }\n };\n\n const addMeta = (type: string, index: number) => {\n let newMeta: MetaListType[] = metaList.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 datasourceId: '',\n datasourceName: '',\n column: '',\n column_id: '',\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 column: '',\n column_id: '',\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 datasourceId: '',\n datasourceName: '',\n column: '',\n column_id: '',\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 = { metaKey, type: TypeEnum.summarize, alias: SummarizeAlias, group: [], by: [] };\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 datasourceId: '',\n datasourceName: '',\n },\n };\n }\n\n // @ts-ignore\n newMeta.splice(index, 0, item);\n setMeta(newMeta);\n };\n\n const delMeta = (meta: any): void => {\n // TIPS 自定义列删除了后面都得删除 暂时不删除 因为过滤器和组合包括自定义列都没用到自定义列\n let index = metaList.indexOf(meta);\n let newMeta = metaList.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);\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);\n return void 0;\n }\n }\n let _metaList = newMeta.filter((v) => v !== meta);\n setMeta(_metaList);\n };\n\n const setColumns = (tableId: string, columns: initColumnsType[]) => {\n const map = { ..._cacheColumnsMap };\n map[tableId] = columns;\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(defaultMetaList);\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 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 };\n};\nexport default useStore;\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 = (arr: MetaSummarize_Group[], record: MetaSummarize_Group): 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\n return sql + ' AS ' + as + (count ? '_' + (count + 1) : '');\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","//获取指定名称的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 { 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.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.switchSubQuery': 'Switch 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 'customColumn.operator': 'operator',\n 'customColumn.field': 'field',\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 'filter.addFilter': 'add filter',\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.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.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.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 'customColumn.operator': '运算符',\n 'customColumn.field': '字段',\n 'customColumn.other': '其他',\n 'customColumn.update': '更新',\n 'customColumn.complete': '完成',\n 'customColumn.fieldFormula': '字段公式',\n 'customColumn.giveItAName': '给它一个名字吧',\n 'customColumn.cancel': '取消',\n 'customColumn.somethingAwesomeToDocument': '一些超棒的、值得记录的东西',\n 'filter.addFilter': '添加过滤器',\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.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","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","export const KEYCODE_SPACE = 0;\nexport const KEYCODE_BACKSPACE = 8;\nexport const KEYCODE_TAB = 9;\nexport const KEYCODE_ENTER = 13;\nexport const KEYCODE_ESCAPE = 27;\n\nexport const KEYCODE_LEFT = 37;\nexport const KEYCODE_UP = 38;\nexport const KEYCODE_RIGHT = 39;\nexport const KEYCODE_DOWN = 40;\n\nexport const KEY_COMMA = ',';\nexport const KEYCODE_FORWARD_SLASH = 191;\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","// 自定义列函数 tips\n\nexport interface ParameterType {\n key: string;\n explain: string;\n}\n\nexport interface FunctionInfoType {\n tip: string;\n name: string;\n desc: string;\n case: string;\n parameter: ParameterType[];\n}\nexport interface FunctionsType {\n [name: string]: FunctionInfoType;\n}\n\nexport const functions: FunctionsType = {\n abs: {\n tip: 'abs(列)',\n name: 'abs',\n desc: '返回指定列的绝对值(正值)。',\n case: 'abs([债务])',\n parameter: [{ key: '列', explain: '返回绝对值(正值)的列或数字。' }],\n },\n ceil: {\n tip: 'ceil(列)',\n name: 'ceil',\n desc: '将小数点向上舍入。',\n case: 'ceil([价格])',\n parameter: [{ key: '列', explain: '要四舍五入的栏目或数字。' }],\n },\n coalesce: {\n tip: 'coalesce(值1, 值2, …)',\n name: 'coalesce',\n desc: '按顺序查看每个参数中的值,并为每行返回第一个非空值。',\n case: 'coalesce([评论], [笔记], \"无评论\")',\n parameter: [\n { key: '值1', explain: '要返回的列或值。' },\n { key: '值2', explain: '如果value1为空,如果value2不为空则返回,以此类推。' },\n ],\n },\n\n concat: {\n tip: 'concat(值1, 值2, …)',\n name: 'concat',\n desc: '将两串或多串文字组合在一起。',\n case: 'concat([姓], \", \", [名])',\n parameter: [\n { key: '值1', explain: '栏目或文字开始。' },\n { key: '值2', explain: '这将被添加到value1的末尾,以此类推。' },\n ],\n },\n exp: {\n tip: 'exp(列)',\n name: 'exp',\n desc: '返回欧拉数e,升到所提供数字的幂。',\n case: 'exp([利息月数])',\n parameter: [{ key: '列', explain: '返回指数值的列或数字。' }],\n },\n floor: {\n tip: 'floor(列)',\n name: 'floor',\n desc: '将一个小数点向下舍入。',\n case: 'floor([价格])',\n parameter: [{ key: '列', explain: '要四舍五入的栏目或数字' }],\n },\n length: {\n tip: 'length(文本)',\n name: 'length',\n desc: '返回文本中的字符数。',\n case: 'length([评论])',\n parameter: [{ key: '文本', explain: '你想得到的列或文本的长度' }],\n },\n log: {\n tip: 'log(列)',\n name: 'log',\n desc: '返回数字的基数为10的对数。',\n case: 'log([价值])',\n parameter: [{ key: '列', explain: '要返回自然对数值的列或数字。' }],\n },\n lower: {\n tip: 'lower(文本)',\n name: 'lower',\n desc: '返回全部为小写的文本字符串。',\n case: 'lower([状态])',\n parameter: [{ key: '文本', explain: '含有要转换为小写的值的列。' }],\n },\n ltrim: {\n tip: 'ltrim(文本)',\n name: 'ltrim',\n desc: '从文本字符串中删除前导空格。',\n case: 'ltrim([评论])',\n parameter: [{ key: '文本', explain: '你要修剪的列或文本。' }],\n },\n power: {\n tip: 'power(列, 指数)',\n name: 'power',\n desc: '将一个数字提高到指数值的幂。',\n case: 'power([长度], 2)',\n parameter: [\n { key: '列', explain: '列或数字提高到指数。' },\n { key: '指数', explain: '指数的值。' },\n ],\n },\n replace: {\n tip: 'replace(文本, 找, 更换)',\n name: 'replace',\n desc: '用新文本替换输入文本的一部分。',\n case: 'replace([标题], \"巨大的\", \"巨大的\")',\n parameter: [\n { key: '文本', explain: '要搜索的栏目或文本。' },\n { key: '找', explain: '要查找的文字。' },\n { key: '更换', explain: '用作替代的文本' },\n ],\n },\n round: {\n tip: 'round(列)',\n name: 'tip',\n desc: '将小数点向上或向下舍入到最接近的整数值。',\n case: 'round([溫度])',\n parameter: [{ key: '列', explain: '要四舍五入到最接近的整数的列或数字。' }],\n },\n rtrim: {\n tip: 'rtrim(文本)',\n name: 'rtrim',\n desc: '从文本字符串中删除结尾的空格。',\n case: 'rtrim([评论])',\n parameter: [{ key: '文本', explain: '你要修剪的列或文本。' }],\n },\n sqrt: {\n tip: 'sqrt(列)',\n name: 'sqrt',\n desc: '返回平方根。',\n case: 'sqrt([下端])',\n parameter: [{ key: '列', explain: '返回列或数字的平方根值。' }],\n },\n substring: {\n tip: 'substring(文本, 位置, 长度)',\n name: 'substring',\n desc: '返回提供的文本的一部分。',\n case: 'substring([标题], 0, 10)',\n parameter: [\n { key: '文本', explain: '要返回一部分的列或文本。' },\n { key: '位置', explain: '开始复制字符的位置。' },\n { key: '长度', explain: '要返回的字符数。' },\n ],\n },\n trim: {\n tip: 'trim(文本)',\n name: 'trim',\n desc: '从文本字符串中删除开头和结尾的空格。',\n case: 'trim([评论])',\n parameter: [{ key: '文本', explain: '你要修剪的列或文本。' }],\n },\n upper: {\n tip: 'upper(文本)',\n name: 'upper',\n desc: '返回全部大写的文本。',\n case: 'upper([状态])',\n parameter: [{ key: '文本', explain: '具有要转换为大写字母的值的列。' }],\n },\n};\n\nexport default {\n getFuncInfo(name: string): FunctionInfoType | null {\n if (name in functions) {\n return functions[name];\n }\n return null;\n },\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","// 获取元素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 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 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\nexport const getScrollTop = () => {\n return document.documentElement.scrollTop;\n};\n\n// 浏览器可视宽高\nexport const getWindowSize = () => {\n return {\n width: document.body.clientWidth,\n height: document.body.clientHeight,\n };\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","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 didUpdate?.(props, containerRef.current);\n });\n\n useEffect(() => {\n return () => {\n containerRef.current?.parentNode?.removeChild(containerRef.current);\n };\n }, []);\n\n return containerRef.current\n ? ReactDOM.createPortal(children, containerRef.current)\n : null;\n});\n\n\nexport default Portal;","import * as React from 'react';\nimport _ from 'lodash';\n\nimport { getWindowSize, getScrollTop, getElementLeft, getElementTop } 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 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 }\n\n componentWillUnmount() {\n winResetEvent.removeEvent(this.resetId);\n this.props.container && this.props.container.removeEventListener('scroll', this.didUpdate);\n }\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 = returnDocument().body;\n mountNode.appendChild(popupContainer);\n };\n\n getCurrentNodePos = () => {\n const { node, container } = this.props;\n return {\n x: getElementLeft(node),\n y: getElementTop(node) - (container?.scrollTop || 0),\n h: node.offsetHeight,\n };\n };\n\n getContainer = () => {\n let pos = this.getCurrentNodePos();\n let { innerSpacing = 10 } = 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 = '999';\n this.attachParent(popupContainer);\n return popupContainer;\n };\n\n getComponent = () => {\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 >\n {React.cloneElement(this.props.children, {\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 } = this.props;\n let pos = this.getCurrentNodePos();\n let posY = pos.y - getScrollTop();\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 downH = winH - posY - pos.h; // 元素下面可用高度\n\n let maxHeight = 0;\n let topHeight = getScrollTop();\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 closable?: boolean;\n}\n","import './select-list.less';\nimport React from 'react';\n\nimport { OptionsTypeEnum } from '../expressions/suggest';\n\nexport interface ListProps {\n type: OptionsTypeEnum;\n name: string;\n list: string[];\n}\n\nexport interface PropsType {\n data: ListProps[];\n onSelect: (type: OptionsTypeEnum, val: string) => any;\n didUpdate?: Function; // 刷新弹框\n}\n\nconst SelectList = ({ data, onSelect }: PropsType) => {\n return (\n <div className='select-list__container'>\n <ul>\n {data.map((v: ListProps, i: number) => {\n return (\n <div key={i}>\n <li className='title'>{v.name}</li>\n {v.list.map((n: string) => {\n return (\n <li className='option' key={n} onClick={() => onSelect(v.type, n)}>\n {n}\n </li>\n );\n })}\n </div>\n );\n })}\n </ul>\n </div>\n );\n};\n\nexport default SelectList;\n","import './function-tip.less';\nimport React from 'react';\n\nimport sqlFormula, { ParameterType, FunctionInfoType } from '../../../../sql-formula';\n\ninterface PropsType {\n funcName: string;\n didUpdate?: Function; // 刷新弹框\n}\n\nconst FunctionTip = ({ funcName }: PropsType) => {\n let data: FunctionInfoType | null = sqlFormula.getFuncInfo(funcName);\n if (!data) return null;\n\n return (\n <div className='function-tip__container'>\n <p className='function-name'>{data.tip}</p>\n <div className='function-desc'>\n <p className='desc'>{data.desc}</p>\n <p className='case'>{data.case}</p>\n </div>\n <div className='funciton-parameter'>\n {data.parameter.map((v: ParameterType, i: number) => {\n return (\n <div key={i}>\n <h4 className='key'>{v.key}</h4>\n <p className='explain'>{v.explain}</p>\n </div>\n );\n })}\n </div>\n </div>\n );\n};\n\nexport default FunctionTip;\n","import React, { useState, useMemo, useRef, useEffect } from 'react';\nimport cx from 'classnames';\n\nimport { setCaretPosition, getSelectionPosition } from '../../../utils/selection';\nimport {\n KEYCODE_ENTER,\n KEYCODE_ESCAPE,\n KEYCODE_LEFT,\n KEYCODE_UP,\n KEYCODE_RIGHT,\n KEYCODE_DOWN,\n} from './keyboard';\nimport suggest, {\n partialMatch,\n SelectPopupTypeEnum,\n ChoosePopupResultType,\n OptionsTypeEnum,\n} from './expressions/suggest';\nimport { MetaData_ColumnsType } from '../../../store/types';\n\nimport TokenizedInput from './tokenizedI-input';\nimport Popup from '../../popup';\nimport SelectList from './dialog/select-list';\nimport FunctionTip from './dialog/function-tip';\n\nimport { useStore } from '../../../hooks/use-provider';\n\ninterface PopupType {\n visible: boolean;\n content?: React.ReactElement;\n innerSpacing?: number;\n}\n\nconst ErrorMessage = ({ msg }: { msg: string }) => {\n if (!msg) return null;\n return (\n <div>\n <div className='text-error text-sm mt-2 mb-2'>{msg}</div>\n </div>\n );\n};\n\ninterface PropsType {\n store?: any;\n data: MetaData_ColumnsType[]; // 字段列表\n expression: string; // 公式供回显使用\n onChange: (formula: string) => void;\n}\n\nconst ExpressionEditor = (props: PropsType) => {\n const { data, expression } = props;\n const store = useStore();\n\n const [popup, setPopup] = useState<PopupType>({ visible: false }); // 弹框信息\n const input = useRef<any>(null);\n const [source, setSource] = useState(expression);\n\n const [errorMessage, setErrorMessage] = useState(''); // 报错信息 'Unknown Field: a'\n const [error, setError] = useState<boolean>(false);\n\n const popupContent = useMemo(() => {\n let { visible, content } = popup;\n if (!visible) return null;\n return content;\n }, [popup]);\n\n useEffect(() => {\n _setCaretPosition(source.length, source.length === 0);\n _triggerAutosuggest();\n return () => {\n closePopup();\n };\n }, []);\n\n function closePopup() {\n setPopup({ visible: false });\n store.setClosable(true);\n }\n\n // 设置关闭位置\n function _setCaretPosition(position: number, autosuggest?: boolean) {\n setCaretPosition(input.current, position);\n if (autosuggest) {\n setTimeout(() => _triggerAutosuggest());\n }\n }\n\n // 根据当前光标位置判断弹出框内容\n function onExpressionChange(source: string): void {\n const inputElement = input.current;\n if (!inputElement) return;\n\n setSource(source);\n closePopup();\n\n const [selectionStart, selectionEnd] = getSelectionPosition(inputElement);\n const hasSelection = selectionStart !== selectionEnd;\n const targetOffset = !hasSelection ? selectionEnd : null;\n if (targetOffset === null) return void 0; // 框选\n setCaretPosition(input.current, selectionStart);\n\n const popupInfo: ChoosePopupResultType = suggest.choosePopup({\n source,\n targetOffset,\n fields: data,\n });\n let content;\n if (popupInfo.type === SelectPopupTypeEnum.FUNCTION_DESC) {\n content = <FunctionTip funcName={popupInfo.functionName} />;\n }\n if (popupInfo.type === SelectPopupTypeEnum.SELECT_LIST) {\n content = (\n <SelectList\n data={popupInfo.data}\n onSelect={(type: OptionsTypeEnum, val) => {\n let value: string = '';\n let len: number = 0;\n let partialSource = source.slice(0, targetOffset);\n let leftoverSource = source.slice(targetOffset);\n const matchPrefix = partialMatch(partialSource);\n if (matchPrefix && !/^\\[.*\\]$/.test(matchPrefix)) {\n partialSource = partialSource.slice(0, -matchPrefix.length);\n }\n\n // 去掉后面空格\n if (/.*\\s$/.test(partialSource)) {\n partialSource = partialSource.slice(0, -1);\n }\n // 去掉前面空格\n if (/^\\s.*/.test(leftoverSource)) {\n leftoverSource = leftoverSource.slice(1);\n }\n\n if (type === OptionsTypeEnum.FUNCTION) {\n value += partialSource + ' ' + val + '()';\n len = value.length - 1;\n }\n if (type === OptionsTypeEnum.OTHER) {\n value += partialSource + ' ' + '()';\n len = value.length - 1;\n }\n if (type === OptionsTypeEnum.FIELD) {\n value += partialSource + ' ' + `[${val}]`;\n len = value.length;\n }\n if (type === OptionsTypeEnum.OPERATOR) {\n value += partialSource + ' ' + val;\n len = value.length;\n }\n\n if (leftoverSource) {\n value += ' ' + leftoverSource;\n }\n setTimeout(() => setCaretPosition(input.current, len));\n\n setSource(value);\n closePopup();\n }}\n />\n );\n }\n if (popupInfo.type === SelectPopupTypeEnum.EMPTY || !content) {\n return void 0;\n }\n\n setPopup({\n visible: true,\n content,\n });\n store.setClosable(false);\n }\n\n // 键盘点击 方向键 & 回车 & esc\n function onInputKeyDown(e: any) {\n if (e.keyCode === KEYCODE_LEFT || e.keyCode === KEYCODE_RIGHT) {\n setTimeout(() => _triggerAutosuggest());\n return;\n }\n if (e.keyCode === KEYCODE_ESCAPE) {\n e.stopPropagation();\n e.preventDefault();\n closePopup();\n return;\n }\n\n if (e.keyCode === KEYCODE_ENTER) {\n e.preventDefault();\n } else if (e.keyCode === KEYCODE_UP) {\n e.preventDefault();\n } else if (e.keyCode === KEYCODE_DOWN) {\n e.preventDefault();\n }\n }\n\n // TODO 校验公式待完成\n function checkExpression(expression: string): [false, string] | [true] {\n // let _expression = expression.replace(/\\s/g, '');\n return [true];\n }\n\n // 失去焦点 检查语法错误情况,并将表达式传给父级\n function onInputBlur(e: any) {\n if (e.target === document.activeElement) {\n // `Invalid expression`\n return;\n }\n const [pass, errorMessage] = checkExpression(source);\n if (pass) {\n props.onChange(source);\n setErrorMessage('');\n } else {\n // props.onError(errorMessage);\n setErrorMessage(errorMessage as string);\n }\n }\n\n // 计算当前是否弹框,和弹框内容\n function _triggerAutosuggest() {\n onExpressionChange(source);\n }\n\n return (\n <>\n <div className={`mt-2 mb-2 relative`}>\n <div\n className={`input font-bold absolute top-0 left-0`}\n style={{ fontSize: 12, pointerEvents: 'none', borderColor: 'transparent' }}\n >\n =\n </div>\n\n <TokenizedInput\n ref={input}\n className={cx(`input font-bold`, { 'border-error': error })}\n style={{ fontSize: 12, paddingLeft: 26 }}\n value={source}\n onChange={(e: any) => onExpressionChange(e.target.value)}\n onKeyDown={onInputKeyDown}\n onBlur={onInputBlur}\n onFocus={() => setTimeout(() => _triggerAutosuggest())}\n onClick={() => setTimeout(() => _triggerAutosuggest())}\n />\n\n <ErrorMessage msg={errorMessage} />\n </div>\n <Popup\n visible={popup.visible}\n closable={true}\n node={input.current}\n innerSpacing={popup.innerSpacing}\n hideVisible={closePopup}\n >\n {popupContent}\n </Popup>\n </>\n );\n};\n\nexport default ExpressionEditor;\n","import './index.less';\n\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\nimport _ from 'lodash';\nimport cx from 'classnames';\n\nimport { MetaCustom_Item, MetaData_ColumnsType } from '../../../store/types';\nimport { __ } from '../../../locale';\nimport ExpressionEditor from './expression-editor';\n\nconst WIDTH = 480;\ninterface PropsType {\n value: MetaCustom_Item | null;\n data: MetaData_ColumnsType[]; // 表下面可选则的字段列表\n onChange: (record: MetaCustom_Item) => void; // 选中回调事件\n onClose: Function; // 关闭弹框\n}\n\n// 自定义列\nconst CustomColumn = ({ value, data = [], onChange, onClose = () => {} }: PropsType) => {\n const [name, setName] = useState<string>(value?.name || ''); // 表达式名字\n const [expression, setExpression] = useState<string>(value?.formula || ''); // 表达式\n\n const isUpdate = !!value;\n\n // 提交按钮是否可用\n const usable = useMemo(() => {\n return expression && name;\n }, [expression, name]);\n\n function onOk() {\n typeof onChange === 'function' && onChange({ name, formula: expression });\n }\n\n let buttonText = isUpdate ? __('customColumn.update') : __('customColumn.complete');\n return (\n <div className={cx(`Sqb-CustomColumn--box`)}>\n <div style={{ width: WIDTH }}>\n <div className='p-4'>\n <div\n className={`font-bold uppercase tracking-wider`}\n style={{ fontSize: 12, color: '#949aab' }}\n >\n {__('customColumn.fieldFormula')}\n </div>\n\n <div>\n <ExpressionEditor\n data={data}\n expression={value?.formula || ''}\n onChange={(str: string) => {\n setExpression(str);\n }}\n />\n </div>\n\n <div\n className={`mt-6 font-bold uppercase tracking-wider`}\n style={{ fontSize: 12, color: '#949aab' }}\n >\n {__('customColumn.giveItAName')}\n </div>\n\n <div>\n <input\n type='text'\n value={name}\n className={`input mt-2 mb-2 w-full block`}\n placeholder={__('customColumn.somethingAwesomeToDocument')}\n onInput={(e: any) => {\n setName(e.target.value);\n }}\n />\n </div>\n </div>\n <div className={`btns mt-4 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 {buttonText}\n </button>\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nexport default CustomColumn;\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);\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","/**\n * 选择保留哪些表字段\n * 谁在用?\n * 1、数据模块\n * 2、关联模块\n */\nimport './index.less';\nimport React, { useMemo, useState } from 'react';\nimport cloneDeep from 'lodash/cloneDeep';\nimport cx from 'classnames';\n\nimport { MetaData_ColumnsType } from '../../../store/types';\nimport { __ } from '../../../locale';\nimport { NotSelectIcon, SelectIcon } from '../../icons';\n\ninterface PropsType {\n data: MetaData_ColumnsType[]; // 列表数据\n onChange: (record: MetaData_ColumnsType[]) => void; // 选中回调事件\n}\n\n// 选择表中参数\nconst SelectColumn = ({ data = [], onChange }: PropsType) => {\n const [columns, setColumns] = useState<MetaData_ColumnsType[]>(data.slice());\n\n const isAllSelect = useMemo(() => {\n return columns.filter((v: any) => v.select).length === columns.length;\n }, [columns]);\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 setColumns(columns);\n typeof onChange === 'function' && onChange(columns);\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 {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 </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 'antd';\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 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 // 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 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.alias); // 当前选择的表\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.alias ? true : v.alias === _value.alias; // 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.alias);\n setCurColumn(_value.name);\n }, [_value]);\n useEffect(() => {\n setTableList(\n data.map((v: DataType, i: number) => {\n let open = !i && !_value.alias ? true : v.alias === _value.alias; // 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 } = tableItem;\n let isMultiple = tableList.length > 1;\n\n let isSummarize = tableAlias === SummarizeAlias;\n return (\n <div key={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: tableAlias === v.alias ? false : v.open,\n })),\n );\n } else {\n setTableList(\n newTables.map((v: TableListType) => ({\n ...v,\n open: tableAlias === v.alias || v.alias === SummarizeAlias,\n })),\n );\n }\n }}\n >\n <a>\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}.${table || tableAlias}`\n : table || tableAlias\n }\n >\n {datasourceName\n ? `${datasourceName}.${table || tableAlias}`\n : table || tableAlias}\n </h3>\n </div>\n {isMultiple && (\n <span className={'List-title-arrow'}>\n {open ? <UpArrowIcon2 /> : <DownArrowIcon2 />}\n </span>\n )}\n </a>\n </div>\n </div>\n )}\n\n {open && (\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 === tableAlias && _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 === tableAlias,\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 ...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 ...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 <a className={'p-2'}>\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 </a>\n {OPEN_GROUP && isGroup && groupe !== SQL_GROUP_TYPE.STRING && (\n <Popover\n placement='rightTop'\n onVisibleChange={(visible) => {\n if (visible) {\n setCurTable(tableAlias);\n setCurColumn(name);\n store.setClosable(false);\n } else {\n setCurTable(value.alias);\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 onClick={({ 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 ...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 { Button, Tooltip, Input, Modal2, Select, InputNumber } from '@gingkoo/pandora';\nimport _ from 'lodash';\nimport cx from 'classnames';\nimport { Menu, Dropdown, DatePicker, ConfigProvider } from 'antd';\nimport { DownOutlined } from '@ant-design/icons';\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';\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];\nconst STRING_LIST = [\n '等于',\n '不等于',\n '包含',\n '不包含',\n '为空',\n '不为空',\n '以...开始',\n '以...结束',\n '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}\n\nconst SelectFilterColumn = ({ data = [], value, onChange, didUpdate }: PropsType) => {\n const [curColumn, setCurColumn] = useState<ColumnType>(value);\n const [condition, setCondition] = useState<string>(value.condition);\n const [isField, setIsField] = useState<boolean>(value.isField || false);\n const [curVal, setVal] = useState<string[]>(value.val);\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 (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) {\n return false;\n }\n return true;\n }, [curVal, condition, curColumn]);\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 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 {\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.is',\n 不是: 'filter.isNo',\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 isField: isField, //是否是选择字段\n condition, // 选择条件\n quotes, // 前端显示用户看的文字\n groupSql: curColumn.alias === SummarizeAlias ? curColumn.sql : '',\n });\n }\n\n function goPrevPage() {\n setCurColumn({\n table: '', // 表名\n tableId: '', // 表名\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 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 menu={{\n items: [\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 setVal([key]);\n },\n }}\n >\n <Button className='operator-btn' style={{ width: 300 }}>\n {firstVal} <DownOutlined />\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 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} <DownOutlined />\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'].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 '以...开始',\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 const onRepeat = () => {\n setIsField(!isField);\n setVal([]);\n setCurColumn({ ...curColumn, table2: null });\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 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: __(\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.is',\n 不是: 'filter.isNo',\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 }[v]!,\n ),\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 menu={{\n items: formulas,\n onClick: ({ key }) => {\n changeFormula(key);\n },\n }}\n trigger={['click']}\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 // let str = formula.params?.join(',');\n return (\n <div>\n SUBSTR ({name},\n <InputNumber\n className={'left-info-formula-input'}\n hideControl\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 ></InputNumber>\n ,\n <InputNumber\n className={'left-info-formula-input'}\n hideControl\n quickEdit\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 ></InputNumber>\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 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 trigger={['click']}\n >\n <Button className='operator-btn' style={{ width: 104 }}>\n {__(\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.is',\n 不是: 'filter.isNo',\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 }[condition]!,\n )}\n <DownOutlined />\n </Button>\n </Dropdown>\n </div>\n </div>\n <div className='content'>\n {isField ? (\n <div\n className={cx(`Sqb-TableName`, { notSelected: !table2Selected })}\n onClick={selectTable}\n >\n {table2Selected ? `${curColumn.table2?.name}` : __('SqlQueryBuilder.pickTable')}\n </div>\n ) : (\n <div className='content_l'>{renderFilter(type, condition)}</div>\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>{__('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: any) => {\n return <SelectFilterColumn {...props} />;\n};\n","/**\n * 关联模块 选择表字段\n */\nimport './index.less';\nimport React, { useState } from 'react';\nimport _ from 'lodash';\nimport { Tooltip } from 'antd';\nimport cx from 'classnames';\n\nimport { ColumnsPopupThemeEnum } from '../../../store/enum';\nimport { DataType, ColumnType } from '../select-join-column';\nimport { NUMBER_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) => o.database_type && NUMBER_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='rightTop' 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';\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 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 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 _ from 'lodash';\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, { 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';\nimport cx from 'classnames';\n\nimport { __ } from '../../../locale';\nimport { TypeEnum } from '../../../store/enum';\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} from '../../icons';\n\ntype MetaIconDomProps = {\n show: boolean;\n className?: string;\n type: TypeEnum;\n};\n\ninterface PropsType {\n meta: MetaListType;\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]);\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];\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];\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];\n\nconst metaIcon = (size: IconSIzeEnum, handleClick: Function): any => {\n return ({ type }: MetaIconDomProps) => {\n let info = IconTypeMap.get(type) as IconInfoType;\n return (\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 );\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) => {\n let { meta } = props;\n let { type } = meta;\n let isLast = store.metaList.indexOf(meta) === store.metaList.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 } = props;\n let { type } = meta;\n let index = store.metaList.indexOf(meta);\n let {\n ExistAboveGroupBy,\n ExistBelowGroupBy,\n prevTypes,\n nextTypes,\n prevList,\n nextList,\n prevGroupBy,\n nextGroupBy,\n } = getHelper(store.metaList, meta);\n\n let nextType = store.metaList[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];\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];\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];\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 } = props;\n const store = useStore();\n // @ts-ignore\n if (!store.metaList[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);\n\n function handleClick(type: string) {\n let index = store.metaList.indexOf(meta);\n store.addMeta(type, index + 1);\n }\n\n const MetaIconDom = metaIcon(size, handleClick);\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 from 'react';\nimport { Tooltip } from 'antd';\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='bottom' title={__('data.del')}>\n <CloseIcon2 className={`Sqb-item-close`} onClick={props.onClose} />\n </Tooltip>\n )}\n </div>\n );\n};\n\nexport default Header;\n","import React, { useEffect } from 'react';\nimport cx from 'classnames';\n\nimport { __ } from '../../locale';\nimport { MetaData, MetaData_TableType, MetaData_ColumnsType } from '../../store/types';\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}\n\nconst TableData = (props: PropsType) => {\n const { meta } = props;\n const store = useStore();\n let selected = Boolean(meta.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.slice()[0] as MetaData;\n newMetaList.table = data;\n store.fetchColumns(data, data.datasourceId, (columns: MetaData_ColumnsType[]) => {\n newMetaList.columns = columns;\n // ① 主表动了 其他都得重新选\n store.setMeta([newMetaList]);\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 data={columns as MetaData_ColumnsType[]}\n onChange={(data: MetaData_ColumnsType[]) => {\n let newMetaList = store.metaList.slice();\n // @ts-ignore\n newMetaList[0].columns = data;\n store.setMeta(newMetaList);\n }}\n />\n ),\n });\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 <div\n className={cx(`Sqb-TableName`, {\n notSelected: !selected,\n })}\n onClick={selectTable}\n >\n {selected\n ? `${meta.table.datasourceName}.${meta.table.name}`\n : __('SqlQueryBuilder.pickTable')}\n </div>\n {selected && store.showMainColumn && store.showFields && (\n <div className={`Sqb-TableColumns`} onClick={selectColumns}>\n {__('SqlQueryBuilder.columns')}\n </div>\n )}\n </div>\n </div>\n\n <NextDom meta={meta} />\n </div>\n </Wrapper>\n );\n};\n\nexport default TableData;\n","import React, { useEffect, useState } from 'react';\nimport cx from 'classnames';\nimport { Button, Tooltip, Input, Modal2 } from '@gingkoo/pandora';\nimport { FfPlus, FfLine, Repeat, RelatedWork } from '@gingkoo/pandora-icons';\nimport Metabase from '../../index';\nimport isEqual from 'lodash/isEqual';\nimport cloneDeep from 'lodash/cloneDeep';\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 } from '../../utils';\n\nimport Wrapper from './components/Wrapper';\nimport NextDom from './components/meta-icon';\nimport Header from './components/header';\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\ninterface PropsType {\n meta: MetaJoin;\n}\n\nenum FlagLocation {\n TABLE_1 = 'table1',\n TABLE_2 = 'table2',\n}\n\nenum ExpressionsEnum {\n LEFT = 'left_column',\n RIGHT = 'right_column',\n}\n\nconst JoinData = (props: PropsType) => {\n const { meta } = props;\n const store = useStore();\n let { metaKey } = meta;\n let index = findIndex(store.metaList, meta);\n let table1Selected = Boolean(meta.table1.name);\n let table2Selected = Boolean(meta.table2.name);\n let subQuerySelected = Boolean(meta.subquery?.[0]?.table?.name);\n let columnsSelected = meta.table1.column && meta.table2.column;\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 onChange={(data: MetaData_ColumnsType[]) => {\n let newMetaList = store.metaList.slice();\n (newMetaList[index] as MetaJoin).columns = data;\n store.setMeta(newMetaList);\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 };\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.slice();\n\n /**\n * ExistAboveGroupBy: boolean; // 当前元素上面是否存在 聚合\n * prevList: MetaListType[]; // 同 prevTypes 但是放的是 meta[]\n * prevTypes: TypeEnum[]; // 当前元素和上面最近的聚合 中间的types列表\n */\n let { ExistAboveGroupBy, prevList } = getHelper(store.metaList, meta);\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('_')[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 alias,\n column: '',\n column_id: '',\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);\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.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.slice();\n (newMeta[index] as MetaJoin).joinType = type;\n store.setMeta(newMeta);\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].column,\n id: meta[type].column_id,\n table: meta[type].name,\n tableId: meta[type].id,\n alias: meta[type].alias,\n database_type: '',\n datasourceId: '',\n datasourceName: '',\n };\n\n let { ExistAboveGroupBy, prevList, prevGroupBy } = getHelper(store.metaList, meta);\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 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 datasourceId: v.table2.datasourceId,\n datasourceName: v.table2.datasourceName,\n columns: v.columns,\n };\n }),\n );\n }\n } else {\n data = store.metaList.slice(0, index).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 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 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 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 { table, alias, name, sql, datasourceId, datasourceName, id = '' } = record;\n let newMeta = store.metaList.slice();\n ((newMeta[index] as MetaJoin)[type] as MetaJoin_TalbeType).column = name;\n ((newMeta[index] as MetaJoin)[type] as MetaJoin_TalbeType).column_id = id;\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).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);\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, meta);\n let table_type = type === ExpressionsEnum.LEFT ? FlagLocation.TABLE_1 : FlagLocation.TABLE_2;\n let value: ColumnType = {\n name: meta.expressions[_ind][type],\n id: meta.expressions[_ind][`${type}_id`],\n table: meta[table_type].name,\n tableId: meta[table_type].id,\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(store.metaList, meta);\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 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 datasourceId: v.table2.datasourceId,\n datasourceName: v.table2.datasourceName,\n columns: v.columns,\n };\n }),\n );\n }\n } else {\n data = store.metaList.slice(0, index).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 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 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.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 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 { table, alias, name, sql, datasourceId, datasourceName, id = '' } = record;\n let newMeta = store.metaList.slice();\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);\n store.setPopup({ visible: false });\n }}\n />\n ),\n });\n }\n function onIsString(type: 'left_isString' | 'right_isString', _ind: number) {\n let index = findIndex(store.metaList, meta);\n let newMeta = store.metaList.slice();\n (newMeta[index] as MetaJoin).expressions[_ind][type] = !(newMeta[index] as MetaJoin)\n .expressions[_ind][type];\n store.setMeta(newMeta);\n }\n function onChangeString(type: 'left_string' | 'right_string', _ind: number, val: string) {\n let index = findIndex(store.metaList, meta);\n let newMeta = store.metaList.slice();\n (newMeta[index] as MetaJoin).expressions[_ind][type] = val;\n store.setMeta(newMeta);\n }\n\n // 子查询弹窗\n const showSubQuery = (val: any = []) => {\n const { subToolbar, toolbar, ...other } = store.preProps;\n\n let newMeta: MetaListType[] = store.metaList.slice();\n let index = findIndex(store.metaList, meta);\n let oldList = cloneDeep((newMeta[index] as MetaJoin).subquery);\n\n let o = Modal2.openModal({\n title: __('SqlQueryBuilder.subquery'),\n transparentMask: true,\n zIndex: 200,\n content: (\n <>\n <Metabase\n {...other}\n _showSubquery={store.showSubquery}\n toolbar={subToolbar || 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 column: '',\n column_id: '',\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 store.setMeta(newMeta);\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, meta);\n let newMeta: MetaListType[] = store.metaList.slice();\n (newMeta[index] as MetaJoin).isSubquery = !(newMeta[index] as MetaJoin).isSubquery;\n (newMeta[index] as MetaJoin).table2 = {\n column: '',\n column_id: '',\n name: '', // 表名\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);\n };\n\n return (\n <Wrapper className={cx(`Sqb-item`)} key={metaKey}>\n <div className={cx(`Sqb-hover-parent`)}>\n <Header title={__('SqlQueryBuilder.joinData')} onClose={() => store.delMeta(meta)} />\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 ? `${meta.subquery?.[0].table.datasourceName}.${meta.subquery?.[0].table.name}`\n : __('SqlQueryBuilder.setSubQuery')}\n </div>\n ) : (\n <div\n className={cx(`Sqb-TableName`, { notSelected: !table2Selected })}\n onClick={selectTable}\n >\n {table2Selected\n ? `${meta.table2.datasourceName}.${meta.table2.name}`\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.column })}\n v-data={FlagLocation.TABLE_1}\n onClick={selectJoinColumn}\n >\n {meta.table1.column ? meta.table1.column : __('SqlQueryBuilder.pickTable')}\n </div>\n <span className={'mr-2 text-gray-500'}>=</span>\n <div\n className={cx(`Sqb-TableName`, { notSelected: !meta.table2.column })}\n v-data={FlagLocation.TABLE_2}\n onClick={selectJoinColumn}\n >\n {meta.table2.column ? meta.table2.column : __('SqlQueryBuilder.pickTable')}\n </div>\n </div>\n )}\n {meta.table1.column_id &&\n meta.table2.column_id &&\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_isString ? (\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 <div\n className={cx(`Sqb-TableName`, { notSelected: !v.left_column })}\n v-data={ExpressionsEnum.LEFT}\n v-index={i}\n onClick={selectMoreJoinColumn}\n >\n {v.left_column ? v.left_column : __('SqlQueryBuilder.pickTable')}\n </div>\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={() => {\n onIsString('left_isString', i);\n }}\n />\n </Tooltip>\n\n <span className={'mr-2 text-gray-500'}>=</span>\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={() => {\n onIsString('right_isString', 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, meta);\n\n let newMeta: MetaListType[] = store.metaList.slice();\n (newMeta[index] as MetaJoin).expressions.splice(i + 1, 0, {\n operator: 'and',\n left_column: '',\n left_column_id: '',\n left_string: '',\n left_isString: false,\n right_column: '',\n right_column_id: '',\n right_string: '',\n right_isString: false,\n });\n store.setMeta(newMeta);\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, meta);\n\n let newMeta: MetaListType[] = store.metaList.slice();\n (newMeta[index] as MetaJoin).expressions.splice(i, 1);\n store.setMeta(newMeta);\n }}\n />\n </Tooltip>\n )}\n </div>\n );\n })}\n {meta.table1.column_id &&\n meta.table2.column_id &&\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, meta);\n\n let newMeta: MetaListType[] = store.metaList.slice();\n (newMeta[index] as MetaJoin).expressions = [\n {\n operator: 'and',\n left_column: '',\n left_column_id: '',\n left_string: '',\n left_isString: false,\n right_column: '',\n right_column_id: '',\n right_string: '',\n right_isString: false,\n },\n ];\n store.setMeta(newMeta);\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} />\n </div>\n </Wrapper>\n );\n};\n\nexport default JoinData;\n","// @ts-nocheck\nimport React from 'react';\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} from '../../store/types';\nimport { getHelper } from '../../utils';\nimport { TypeEnum } from '../../store/enum';\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}\n\nconst CustomColumn = (props: PropsType) => {\n const { meta } = props;\n const store = useStore();\n let { customColumn } = meta;\n let index = findIndex(store.metaList, meta);\n\n function getAvailableColumns(): MetaData_ColumnsType[] {\n let newMeta = store.metaList.slice();\n let columns: MetaData_ColumnsType[] = [];\n let { ExistAboveGroupBy, prevList } = getHelper(store.metaList, 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\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.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);\n closePopup();\n }}\n onClose={closePopup}\n />\n ),\n });\n }\n\n function handleAdd(e: any) {\n let newMeta = store.metaList.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 onChange={(data: MetaCustom_Item) => {\n newMeta[index].customColumn.push(data);\n store.setMeta(newMeta);\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.slice();\n // TIPS 删除了后面都得删除 暂时不删除 因为过滤器和组合都没用到自定义列\n newMeta[index].customColumn = customColumn.filter(\n (_: MetaCustom_Item, i: number) => i !== itemId,\n );\n store.setMeta(newMeta);\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);\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) => handleUpdate(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 </div>\n\n <NextDom meta={meta} />\n </div>\n </Wrapper>\n );\n};\n\nexport default CustomColumn;\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';\n\nimport { __ } from '../../locale';\nimport { findIndex, getHelper } from '../../utils';\nimport { TypeEnum, SQL_COLUMN_TYPE } from '../../store/enum';\nimport {\n MetaFilter,\n MetaFilter_Item,\n MetaSummarize,\n MetaListType,\n MetaJoin,\n MetaSummarize_Group,\n MetaSummarize_By,\n MetaData,\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}\n\nconst Filter = (props: PropsType) => {\n const { meta } = props;\n const store = useStore();\n let { filter } = meta;\n let index = findIndex(store.metaList, meta);\n let notSelected = !meta.filter.length;\n const [ind, setInd] = useState(-1);\n\n function getColumns(): DataType[] {\n let { ExistAboveGroupBy, prevList, prevGroupBy } = getHelper(store.metaList, meta);\n let newMeta = store.metaList.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 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 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\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 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 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 function handleUpdate(e: any, i: number) {\n let newMeta = store.metaList.slice();\n let data = getColumns();\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);\n closePopup();\n }}\n />\n ),\n });\n }\n\n function handleAdd(e: any) {\n let node = e.currentTarget;\n\n let newMeta = store.metaList.slice();\n let data: DataType[] = getColumns();\n let _index: number = node.getAttribute('v-index');\n let _type: string = node.getAttribute('v-type');\n\n let value: MetaFilter_Item = {\n table: '', // 表名\n tableId: '', // 表名\n alias: '', // 表的别名\n name: '', // 字段名\n id: '', // 字段名\n database_type: '', // 字段类型\n condition: '', // 选择条件\n val: [], // 选择结果 如果有两个 长度就为2\n quotes: '', // 前端显示用户看的文字\n datasourceId: '',\n datasourceName: '',\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={(data: MetaFilter_Item) => {\n if (_type) {\n if (_type === 'before') {\n ((newMeta[index] as MetaFilter).filter as any).splice(_index, 0, data);\n } else {\n ((newMeta[index] as MetaFilter).filter as any).splice(_index + 1, 0, data);\n }\n } else {\n (newMeta[index] as MetaFilter).filter.push(data);\n }\n store.setMeta(newMeta);\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.slice();\n // @ts-ignore\n newMeta[index].filter = filter.filter((_: any, i: number) => i !== itemId);\n store.setMeta(newMeta);\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.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 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);\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 className='left-arrow' onClick={handleAdd} v-index={i} v-type='before'>\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.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 className='right-arrow' onClick={handleAdd} v-index={i} v-type='after'>\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 className={cx(`Sqb-TableName purple-name`, { notSelected })} onClick={handleAdd}>\n {notSelected ? __('filter.addFiltersToNarrowDownYourAnswers') : <AddIcon />}\n </div>\n {Array.from(filter).length > 0 && (\n <p className='Sqb-NotebookCell-preview'>\n 预览:\n {filter.map((v: MetaFilter_Item, i: number) => {\n if (typeof v === 'string') {\n return v;\n } else {\n return v.quotes;\n }\n })}\n </p>\n )}\n </div>\n </div>\n\n <NextDom meta={meta} />\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} from '../../../store/types';\nimport SelectJoinColumn, { DataType, ColumnType } from '../../dialog/select-join-column';\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}\n\nconst GroupBy = (props: PropsType) => {\n const { meta } = props;\n const store = useStore();\n let { by } = meta;\n let index = findIndex(store.metaList, meta);\n let notBySelected = !meta.by.length;\n\n function getColumns(): DataType[] {\n let { ExistAboveGroupBy, prevList, prevGroupBy } = getHelper(store.metaList, 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 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 { alias: v.table2.alias, table: v.table2.name, columns: v.columns };\n }),\n );\n }\n } else {\n // @ts-ignore\n data = store.metaList\n .slice(0, index)\n .map((v: MetaListType) => {\n if (v.type === TypeEnum.data) {\n return { alias: v.table.alias, table: v.table.name, columns: v.columns };\n } else if (v.type === TypeEnum.joinData) {\n return {\n alias: (v as MetaJoin).table2.alias,\n table: (v as MetaJoin).table2.name,\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.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 return {\n ...v,\n sql: `${v.alias}.${v.realName || v.name} AS ${v.alias}__${v.name}`,\n };\n });\n if (value.quotes !== data.quotes) {\n newMeta = newMeta.filter((_: MetaListType, _i: number) => _i <= index);\n }\n store.setMeta(newMeta);\n closePopup();\n }}\n />\n ),\n });\n }\n\n function handleAdd(e: any) {\n let newMeta = store.metaList.slice();\n let data: DataType[] = getColumns();\n let value: MetaSummarize_By = {\n table: '',\n tableId: '',\n alias: '',\n name: '',\n id: '',\n sql: '',\n database_type: '',\n condition: '',\n quotes: '',\n datasourceId: '',\n datasourceName: '',\n column: '',\n column_id: '',\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 console.log('🚀 ~ handleAdd ~ data:', data);\n // @ts-ignore\n newMeta[index].by.push(data);\n // @ts-ignore\n newMeta[index].by = newMeta[index].by.map((v: MetaSummarize_By) => {\n return {\n ...v,\n sql: `${v.alias}.${v.realName || v.name} AS ${v.alias}__${v.name}`,\n };\n });\n store.setMeta(newMeta);\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.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);\n }\n\n function closePopup() {\n store.setPopup({ visible: false });\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 <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 {\n MetaListType,\n MetaSummarize,\n MetaSummarize_Group,\n MetaSummarize_By,\n MetaJoin,\n} from '../../../store/types';\nimport { DataType } from '../../dialog/select-join-column';\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}\n\nconst SelectIndex = (props: PropsType) => {\n const { meta } = props;\n const store = useStore();\n let { group } = meta;\n let index = findIndex(store.metaList, meta);\n let notGroupSelected = !group.length;\n\n function getColumns(): DataType[] {\n let { ExistAboveGroupBy, prevList, prevGroupBy } = getHelper(store.metaList, 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 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 { alias: v.table2.alias, table: v.table2.name, columns: v.columns };\n }),\n );\n }\n } else {\n // @ts-ignore\n data = store.metaList\n .slice(0, index)\n .map((v: MetaListType) => {\n if (v.type === TypeEnum.data) {\n return { alias: v.table.alias, table: v.table.name, columns: v.columns };\n } else if (v.type === TypeEnum.joinData) {\n return {\n alias: (v as MetaJoin).table2.alias,\n table: (v as MetaJoin).table2.name,\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.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 return {\n ...v,\n //@ts-ignore\n sql: summarizeToSql(newMeta[index].group, v),\n };\n });\n if (value.quotes !== data.quotes) {\n newMeta = newMeta.filter((_: MetaListType, _i: number) => _i <= index);\n }\n store.setMeta(newMeta);\n closePopup();\n }}\n />\n ),\n });\n }\n\n function handleAdd(e: any) {\n let newMeta = store.metaList.slice();\n let data: DataType[] = getColumns();\n let value: MetaSummarize_Group = {\n table: '',\n tableId: '',\n alias: '',\n name: '',\n id: '',\n sql: '',\n database_type: '',\n condition: '',\n quotes: '',\n datasourceId: '',\n datasourceName: '',\n column: '',\n column_id: '',\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 return {\n ...v,\n // @ts-ignore\n sql: summarizeToSql(newMeta[index].group, v),\n };\n });\n store.setMeta(newMeta);\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.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);\n }\n\n function closePopup() {\n store.setPopup({ visible: false });\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 <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}\n\nconst Summarize = (props: PropsType) => {\n const { meta } = 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);\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} />\n </div>\n <div className={'pass'}>{__('SqlQueryBuilder.by')}</div>\n <div className={`Sqb-NotebookCell green-bg`}>\n <GroupBy meta={meta} />\n </div>\n </div>\n </div>\n\n <NextDom meta={meta} />\n </div>\n </Wrapper>\n );\n};\n\nexport default Summarize;\n","import React from 'react';\nimport cx from 'classnames';\nimport _ from 'lodash';\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';\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}\n\nconst Sort = (props: PropsType) => {\n const { meta } = props;\n const store = useStore();\n let { sort } = meta;\n let index = findIndex(store.metaList, meta);\n\n function getColumns(): DataType[] {\n let { ExistAboveGroupBy, prevGroupBy } = getHelper(store.metaList, 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 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\n .slice(0, index)\n .map((v: MetaListType) => {\n if (v.type === TypeEnum.data) {\n return { alias: v.table.alias, table: v.table.name, columns: v.columns };\n } else if (v.type === TypeEnum.joinData) {\n return {\n alias: (v as MetaJoin).table2.alias,\n table: (v as MetaJoin).table2.name,\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.slice();\n let value: ColumnType = {\n table: '',\n tableId: '',\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, alias, sql } = record;\n if (alias === SummarizeAlias) {\n let aliasColumns = (sql as string)?.split(' AS ')?.[1] || '';\n if (store.metaList[index - 1].type === TypeEnum.summarize) {\n //@ts-ignore\n newMeta[index].sort = [\n //@ts-ignore\n ...newMeta[index].sort,\n { table, alias, name, sort: SortEnum.asc, sql: aliasColumns },\n ];\n } else {\n //@ts-ignore\n newMeta[index].sort = [\n //@ts-ignore\n ...newMeta[index].sort,\n {\n table,\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 { table, alias, name, sort: SortEnum.asc, sql: `${alias}.${name}` },\n ];\n }\n store.setMeta(newMeta);\n store.setPopup({ visible: false });\n }}\n />\n ),\n });\n }\n\n function handleSort(itemIndex: number) {\n let newMeta = store.metaList.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);\n }\n\n function delSortColumn(e: any, itemIndex: number) {\n e.stopPropagation();\n let newMeta = store.metaList.slice();\n //@ts-ignore\n newMeta[index].sort = sort.filter((_: any, i: number) => i !== itemIndex);\n store.setMeta(newMeta);\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)}\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} />\n </div>\n </Wrapper>\n );\n};\n\nexport default Sort;\n","import React from 'react';\nimport { InputNumber } from 'antd';\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}\n\nconst RowLimit = (props: PropsType) => {\n const { meta } = props;\n const store = useStore();\n let index = findIndex(store.metaList, meta);\n\n function handleChange(inputValue: any) {\n let newMeta = store.metaList.slice();\n // @ts-ignore\n newMeta[index].limit = inputValue;\n store.setMeta(newMeta);\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)}\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} />\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';\n\ninterface PropsType {\n meta: MetaData;\n}\n\nconst PrevResult = 'Previous results';\n\nconst PermissionTable = (props: PropsType) => {\n const { meta } = props;\n const store = useStore();\n let index = findIndex(store.metaList, meta);\n\n function selectTable(e: any) {\n let { ExistAboveGroupBy, prevList, prevGroupBy } = getHelper(store.metaList, meta);\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 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 id: v.table2.id,\n datasourceId: v.table2.datasourceId,\n datasourceName: v.table2.datasourceName,\n };\n }),\n );\n }\n } else {\n data = store.metaList.slice(0, index).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 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 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)}\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} />\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 { Toast } from '@gingkoo/pandora';\nimport { Button } from 'antd';\n// import { toJS } from 'mobx';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { LoadingOutlined } from '@ant-design/icons';\nimport Styled from 'styled-components';\n\nimport { handleSqlStruct } from '../../store/helper';\nimport { MetaData } from '../../store/types';\n\nimport { __ } from '../../locale';\nimport modulesMap from '../modules';\n\nimport Popup from '../popup';\nimport { useStore } from '../../hooks/use-provider';\nimport type { MetabaseProps } 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\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 return (\n // @ts-ignore\n <VisualBox ref={popupContainer}>\n <div className={'Sqb'}>\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 icon={saveLoading ? <LoadingOutlined /> : null}\n disabled={saveLoading}\n onClick={async () => {\n if (!(store.metaList[0] as MetaData).table.name) {\n return Toast.warning(__('data.pleaseSelectDataTable'));\n }\n if (saveLoading) return null;\n setSaveLoading(true);\n await onOk(store.metaList);\n setSaveLoading(false);\n }}\n >\n {btnText || __('SqlQueryBuilder.visualize')}\n </Button>\n ) : null}\n\n {popupContainer.current && (\n <Popup\n container={popupContainer.current}\n visible={store.popupData.visible}\n node={store.popupData.node}\n closable={store.popupClosable}\n hideVisible={() => {\n store.setPopup({ visible: false });\n }}\n >\n {popupContent}\n </Popup>\n )}\n {popupContainer.current && (\n <Popup\n container={popupContainer.current}\n visible={store.popupData2.visible}\n node={store.popupData2.node}\n closable={store.popupClosable2}\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 { ConfigProvider } from 'antd';\nimport zhCN from 'antd/locale/zh_CN';\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';\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 = false,\n _showSubquery = true,\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 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(_showSubquery);\n }, [showFields, fieldNameTpl, tableNameTpl, toolbar, showSubquery, _showSubquery]);\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","SortEnum","TypeEnum","JoinEnum","ColumnsPopupThemeEnum","SpecialType","SQL_COLUMN_TYPE","SQL_GROUP_TYPE","DataTypeEnum","EleComponentEnum","findIndex","arr","item","indexOf","getHelper","list","types","map","v","type","curIndex","leftTypes","slice","rightTypes","leftList","rightList","ExistAboveGroupBy","ExistBelowGroupBy","prevTypes","nextTypes","prevList","nextList","prevGroupBy","nextGroupBy","summarize","i","lastIndexOf","getSubColumns","metaList","obj","metaKey","customColumn","name","formula","data","_data","table","alias","tableId","columns","group","length","concat","name_zh","quotes","realName","sql","split","database_type","FLOAT","special_type","select","by","joinData","filter","table2","SummarizeAlias","defaultToolbar","defaultMetaList","id","datasourceId","datasourceName","showFields","setShowFields","useState","showSubquery","setShowSubquery","_showSubquery","_setShowSubquery","toolbar","setToolbar","fieldNameTpl","setFieldNameTpl","tableNameTpl","setTableNameTpl","sourceList","setSourceList","_cacheSource2TableMap","set_cacheSource2TableMap","_cacheColumnsMap","set_cacheColumnsMap","setMeta","popupData","setPopup","visible","node","content","popupData2","setPopup2","popupClosable","setClosable","popupClosable2","setClosable2","fetchDatasetFn","useRef","setFetchDatasetFn","fn","current","fetchColumnsFn","setFetchColumnsFn","preProps","setProps","val","showMainColumn","useMemo","summarizeList","showToolbar","fetchDataset","tables","getDataset","_tables","setDataset","fetchColumns","callback","did","column","groupSql","extra","tableName","getColumns","setColumns","setPreData","_metaList","newMeta","isSubquery","newColumns","items","subquery","flatMap","Math","max","apply","Number","addMeta","index","mainTable","table1","column_id","joinType","left","expressions","sort","rowLimit","limit","permissionTable","splice","delMeta","meta","reset","NUMBER_GROUP","LONG","CURRENCY","STRING","DATE_GROUP","DATE","filterToSql","record","condition","condition_1","condition_2","columnName","NUMBER","transformDate","dataStr","replace","c_1","c_2","summarizeToSql","as","field","count","forEach","_flatArr","res","push","_recursionArr","reverseData","reverse","layeredData","nextMeta","nextNextMeta","nextNextNextMeta","handleNesting","hasInnerSql","Boolean","innerSqlStruct","tableData","filterData","sortData","queryColumns","joinTables","joinCondition","o","customColumns","str","substr","_str","filters","join","groupBy","calcColumns","groupColumns","orderInfos","privilegeTable","handleSqlStruct","compressionStructure","JSON","parse","stringify","d","n","s","c","restoreStructure","e","getCookie","document","cookie","match","RegExp","console","log","locales","activeLocale","isEn","register","warn","__","loading","Loading","show","msg","_jsxs","className","getTextNodeAtPosition","root","treeWalker","createTreeWalker","NodeFilter","SHOW_TEXT","elem","textContent","FILTER_REJECT","FILTER_ACCEPT","nextNode","position","getSelectionPosition","element","setSelectionRange","createTextRange","selectionStart","selectionEnd","selection","window","getSelection","range","getRangeAt","cloneRange","startContainer","startOffset","setStart","end","toString","setEnd","start","setSelectionPosition","focus","collapse","moveEnd","moveStart","startPos","endPos","removeAllRanges","Range","addRange","getCaretPosition","saveSelection","setCaretPosition","KEYCODE_ENTER","KEYCODE_ESCAPE","KEYCODE_LEFT","KEYCODE_UP","KEYCODE_RIGHT","KEYCODE_DOWN","t","TOKEN","Operator","String","Identifier","OPERATOR","Comma","OpenParenthesis","CloseParenthesis","Plus","Minus","Star","Slash","Equal","NotEqual","LessThan","GreaterThan","LessThanEqual","Not","And","Or","tokenize","expression","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","ref","_t5","_t6","_t7","functions","abs","tip","desc","case","parameter","key","explain","ceil","coalesce","floor","lower","ltrim","power","round","rtrim","sqrt","substring","trim","upper","getFuncInfo","OptionsTypeEnum","SelectPopupTypeEnum","Suggest","choosePopup","targetOffset","fields","partialSource","matchPrefix","partialMatch","_fields","last","functionDisplayName","enclosingFunction","FUNCTION_DESC","functionName","SELECT_LIST","_partialSource","prevStr","FIELD","FUNCTION","Object","keys","OTHER","fieldList","includes","funcList","first","EMPTY","lastToken","isOpen","OP","isClose","parenCount","MBQL_CLAUSES","displayName","args","sum","distinct","stddev","requiresFeature","avg","min","share","var","median","percentile","multiple","contains","hasOptions","between","and","or","not","tokenName","clause","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","props","cx","TokenizedInput","defaultProps","style","componentDidMount","ReactDOM","findDOMNode","componentDidUpdate","addEventListener","onSelectionChange","inputNode","restore","innerHTML","ReactDOMServer","renderToStaticMarkup","activeElement","componentWillUnmount","removeEventListener","setValue","onChange","target","onInput","onFocus","onBlur","onKeyDown","onClick","forwardedRef","contentEditable","spellCheck","forwardRef","TokenizedInputWithForwardedRef","getComputedTranslate","getComputedStyle","x","y","transform","webkitTransform","mozTransform","mat","parseFloat","getElementTop","elemTop","offsetTop","pElem","offsetParent","getElementLeft","elemLeft","offsetLeft","getScrollTop","documentElement","scrollTop","getWindowSize","width","body","clientWidth","height","clientHeight","throttle","wait","Date","now","timer","diff","clearTimeout","_self","setTimeout","bind","sleep","Promise","resolve","reject","flatArray","replaceTpl","inputString","values","variableName","WinResetEvent","eventStack","funcId","constructor","addEvent","context","delay","removeEvent","cb","winResetEvent","Portal","didUpdate","getContainer","containerRef","useImperativeHandle","initRef","useEffect","parentNode","removeChild","createPortal","returnDocument","outSpacing","generateTrigger","PortalComponent","Trigger","resetId","createRef","container","bindEvent","that","ele","closePopup","closable","hideVisible","attachParent","popupContainer","mountNode","appendChild","getCurrentNodePos","h","offsetHeight","innerSpacing","createElement","top","pointerEvents","zIndex","getComponent","overflowX","overflowY","backgroundColor","transition","boxShadow","borderRadius","stopPropagation","cloneElement","posY","realHeight","childNodes","winH","downH","maxHeight","topHeight","cssText","portal","SelectList","onSelect","FunctionTip","funcName","sqlFormula","ErrorMessage","ExpressionEditor","store","popup","input","setSource","errorMessage","setErrorMessage","setError","popupContent","_setCaretPosition","_triggerAutosuggest","autosuggest","onExpressionChange","inputElement","hasSelection","popupInfo","suggest","len","leftoverSource","test","onInputKeyDown","keyCode","preventDefault","checkExpression","onInputBlur","pass","_Fragment","fontSize","borderColor","paddingLeft","Popup","WIDTH","CustomColumn","onClose","setName","setExpression","isUpdate","usable","onOk","buttonText","color","placeholder","marginLeft","disabled","CloseIcon2","viewBox","fill","role","FilterIcon","SummarizeIcon","JoinDataIcon","PermissionTableIcon","CustomColumnIcon","SortIcon","RowLimitIcon","LeftJoinIcon","InnerJoinIcon","UpArrowIcon","DownArrowIcon","CloseIcon","AddIcon","TableIcon","SearchIcon","NotSelectIcon","SelectIcon","CircleIcon","LetterAaIcon","CalendarIcon","WellIcon","ForeignKeyIcon","UpArrowIcon2","DownArrowIcon2","LeftArrowIcon","DataSourceIcon","SelectColumn","isAllSelect","AllSelectElement","Array","isArray","cloneDeep","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","toLocaleLowerCase","tableItem","isMultiple","isSummarize","shrink","active","newTables","overflow","title","autoFocus","RangePicker","DatePicker","NUMBER_LIST","STRING_LIST","DATE_LIST","SelectFilterColumn","setCondition","isField","setIsField","curVal","setVal","setFormula","table2Selected","getQuotesName","params","generateQuotes","firstVal","secondVal","cond","等于","不等于","大于","小于","介于之间","大于或等于","小于或等于","为空","不为空","是","不是","包含","不包含","早于","晚于","是空的","addFilter","goPrevPage","getData","columnType","toUpperCase","conditions","renderFilter","conditionText","display","flexDirection","Input","newVal","showTime","format","moment","Dropdown","trigger","menu","label","Button","DownOutlined","options","Select","size","allowCreate","option","Option","onRepeat","nextPage","selectTable","currentTarget","purple","In","changeFormula","changeParams","_formula","formulas","leftFormula","icon","Function","getName","InputNumber","hideControl","quickEdit","setDefaultVal","notSelected","Tooltip","primary","ghost","Repeat","_condition","greenGrass","FormulaList","QuotesMap","localeMap","总行数","计数","总和","平均值","不重复值的总数","累积求和","累积行数","累积计数","标准差","最小值","最大值","总的数据行数","一个字段所有数值的总和","一个字段所有数值的平均值","一个字段所有互不重复的值的总数","一个字段所有数值的标准差","一个字段的最小值","一个字段的最大值","Special","SelectSummarize","handleSelect","availableData","placement","JoinList","marginRight","cursor","right","inner","SelectJoin","SelectTable","setLoading","datasource","setList","originList","setOriginList","getTables","newList","PrevResult","SelectPermissionTable","Wrapper","opacity","setOpacity","setMaxHeight","couterRef","animation","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","Header","TableData","selected","readonly","newMetaList","selectColumns","FlagLocation","ExpressionsEnum","JoinData","table1Selected","subQuerySelected","columnsSelected","joins","aliasRegExp","lens","_table2","selectJoin","selectJoinColumn","getAttribute","TABLE_1","reduce","mo","selectMoreJoinColumn","_ind","table_type","LEFT","TABLE_2","onIsString","onChangeString","showSubQuery","subToolbar","other","oldList","Modal2","openModal","transparentMask","Metabase","btnText","isEqual","close","switchSubQuery","RelatedWork","operator","left_isString","left_string","left_column","right_isString","right_string","right_column","RIGHT","FfPlus","left_column_id","right_column_id","danger","FfLine","getAvailableColumns","handleUpdate","CustomColumnPopup","handleAdd","handleDel","itemId","Filter","ind","setInd","SelectFilter","_index","_type","addOperator","_filter","isPermanent","hover","onMouseEnter","onMouseLeave","triggerProps","clickToClose","triggerElement","src","arrow","from","GroupBy","notBySelected","_i","SelectIndex","notGroupSelected","Summarize","Sort","addSortColumn","selectedSort","aliasColumns","asc","handleSort","itemIndex","delSortColumn","RowLimit","handleChange","inputValue","precision","PermissionTable","VisualBox","Styled","div","attrs","saveLoading","setSaveLoading","popupContent2","metaType","hidden","modulesMap","LoadingOutlined","Toast","warning","SqlVisionBuilder","useData"],"mappings":"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","x_google_ignoreList":[9]}
|