@gingkoo/pandora-metabase 1.0.118 → 1.0.120

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.
Files changed (195) hide show
  1. package/lib/cjs/common/Portal/index.js +0 -2
  2. package/lib/cjs/common/SplitView/index.d.ts +0 -4
  3. package/lib/cjs/common/SplitView/index.js +0 -10
  4. package/lib/cjs/components/dialog/custom-column/config.js +4 -48
  5. package/lib/cjs/components/dialog/custom-column/expression-editor.js +3 -14
  6. package/lib/cjs/components/dialog/custom-column/expressions/suggest.d.ts +2 -34
  7. package/lib/cjs/components/dialog/custom-column/expressions/suggest.js +2 -43
  8. package/lib/cjs/components/dialog/custom-column/expressions/tokenizer.js +8 -65
  9. package/lib/cjs/components/dialog/custom-column/index.js +2 -4
  10. package/lib/cjs/components/dialog/custom-column/tokenized-expression.js +2 -3
  11. package/lib/cjs/components/dialog/custom-column/tokenizedI-input.js +1 -1
  12. package/lib/cjs/components/dialog/custom-editor/index.js +2 -7
  13. package/lib/cjs/components/dialog/diff-viewer/index copy.js +1 -16
  14. package/lib/cjs/components/dialog/expression/date-format-picker.js +2 -20
  15. package/lib/cjs/components/dialog/expression/date-format.js +2 -8
  16. package/lib/cjs/components/dialog/expression/index.d.ts +0 -3
  17. package/lib/cjs/components/dialog/expression/index.js +2 -83
  18. package/lib/cjs/components/dialog/formula/index.js +6 -31
  19. package/lib/cjs/components/dialog/formula/utils.js +2 -10
  20. package/lib/cjs/components/dialog/formula-list/CaseWhenGroup.d.ts +19 -0
  21. package/lib/cjs/components/dialog/formula-list/CaseWhenGroup.js +109 -0
  22. package/lib/cjs/components/dialog/formula-list/LogicGroup.d.ts +9 -0
  23. package/lib/cjs/components/dialog/formula-list/LogicGroup.js +43 -0
  24. package/lib/cjs/components/dialog/formula-list/index.d.ts +3 -0
  25. package/lib/cjs/components/dialog/formula-list/index.js +970 -504
  26. package/lib/cjs/components/dialog/formula-list/index.less +724 -0
  27. package/lib/cjs/components/dialog/formula-list/utils.d.ts +0 -7
  28. package/lib/cjs/components/dialog/formula-list/utils.js +117 -113
  29. package/lib/cjs/components/dialog/select-column/index.d.ts +0 -6
  30. package/lib/cjs/components/dialog/select-column/index.js +4 -15
  31. package/lib/cjs/components/dialog/select-column-multiple/index.d.ts +0 -8
  32. package/lib/cjs/components/dialog/select-column-multiple/index.js +6 -45
  33. package/lib/cjs/components/dialog/select-join/index.d.ts +0 -5
  34. package/lib/cjs/components/dialog/select-join/index.js +0 -6
  35. package/lib/cjs/components/dialog/select-join-column/index.d.ts +0 -8
  36. package/lib/cjs/components/dialog/select-join-column/index.js +7 -21
  37. package/lib/cjs/components/dialog/select-join-column-multiple/index.d.ts +0 -8
  38. package/lib/cjs/components/dialog/select-join-column-multiple/index.js +5 -35
  39. package/lib/cjs/components/dialog/select-permission-table/index.d.ts +0 -5
  40. package/lib/cjs/components/dialog/select-permission-table/index.js +0 -6
  41. package/lib/cjs/components/dialog/select-summarize/index.d.ts +7 -4
  42. package/lib/cjs/components/dialog/select-summarize/index.js +105 -18
  43. package/lib/cjs/components/dialog/select-summarize/index.less +23 -0
  44. package/lib/cjs/components/dialog/select-table/index.d.ts +0 -6
  45. package/lib/cjs/components/dialog/select-table/index.js +1 -9
  46. package/lib/cjs/components/metabase/index.js +72 -86
  47. package/lib/cjs/components/metabase/index.less +7 -7
  48. package/lib/cjs/components/modules/components/Wrapper.js +1 -1
  49. package/lib/cjs/components/modules/components/header.js +2 -2
  50. package/lib/cjs/components/modules/components/meta-icon.d.ts +0 -3
  51. package/lib/cjs/components/modules/components/meta-icon.js +2 -47
  52. package/lib/cjs/components/modules/custom-column.js +3 -29
  53. package/lib/cjs/components/modules/enum/filter-enum.js +9 -88
  54. package/lib/cjs/components/modules/filter.js +2 -20
  55. package/lib/cjs/components/modules/index.d.ts +4 -2
  56. package/lib/cjs/components/modules/index.js +24 -1
  57. package/lib/cjs/components/modules/join-data.js +13 -291
  58. package/lib/cjs/components/modules/row-limit.js +0 -1
  59. package/lib/cjs/components/modules/sort.js +1 -61
  60. package/lib/cjs/components/modules/summarize/group-by.d.ts +0 -5
  61. package/lib/cjs/components/modules/summarize/group-by.js +251 -89
  62. package/lib/cjs/components/modules/summarize/select-index.js +116 -59
  63. package/lib/cjs/components/modules/table-data.js +11 -64
  64. package/lib/cjs/components/popup.js +26 -32
  65. package/lib/cjs/hooks/patch.d.ts +1 -0
  66. package/lib/cjs/hooks/patch.js +104 -6
  67. package/lib/cjs/hooks/patch2.js +3 -165
  68. package/lib/cjs/hooks/use-provider.js +0 -3
  69. package/lib/cjs/hooks/use-state.js +55 -135
  70. package/lib/cjs/index.js +0 -15
  71. package/lib/cjs/locale/en.js +5 -0
  72. package/lib/cjs/locale/index.js +1 -4
  73. package/lib/cjs/locale/zh.js +5 -0
  74. package/lib/cjs/sql-formula.js +0 -1
  75. package/lib/cjs/store/enum.d.ts +6 -6
  76. package/lib/cjs/store/enum.js +0 -13
  77. package/lib/cjs/store/helper.d.ts +2 -1
  78. package/lib/cjs/store/helper.js +15 -225
  79. package/lib/cjs/store/types.d.ts +45 -67
  80. package/lib/cjs/store/types.js +3 -49
  81. package/lib/cjs/types.d.ts +1 -0
  82. package/lib/cjs/utils/cookies.js +0 -3
  83. package/lib/cjs/utils/event.js +1 -1
  84. package/lib/cjs/utils/helper-dom.d.ts +1 -0
  85. package/lib/cjs/utils/helper-dom.js +17 -10
  86. package/lib/cjs/utils/helper.js +1 -24
  87. package/lib/cjs/utils/keydown.js +4 -7
  88. package/lib/cjs/utils/platform.d.ts +0 -9
  89. package/lib/cjs/utils/platform.js +0 -10
  90. package/lib/cjs/utils/selection.js +0 -6
  91. package/lib/cjs/utils/storage.d.ts +0 -9
  92. package/lib/cjs/utils/storage.js +1 -11
  93. package/lib/cjs/utils/transformSql.d.ts +5 -0
  94. package/lib/cjs/utils/transformSql.js +40 -101
  95. package/lib/cjs/utils.d.ts +1 -6
  96. package/lib/cjs/utils.js +126 -255
  97. package/lib/es/common/Portal/index.js +0 -2
  98. package/lib/es/common/SplitView/index.d.ts +0 -4
  99. package/lib/es/common/SplitView/index.js +0 -10
  100. package/lib/es/components/dialog/custom-column/config.js +4 -48
  101. package/lib/es/components/dialog/custom-column/expression-editor.js +3 -14
  102. package/lib/es/components/dialog/custom-column/expressions/suggest.d.ts +2 -34
  103. package/lib/es/components/dialog/custom-column/expressions/suggest.js +2 -43
  104. package/lib/es/components/dialog/custom-column/expressions/tokenizer.js +8 -65
  105. package/lib/es/components/dialog/custom-column/index.js +2 -4
  106. package/lib/es/components/dialog/custom-column/tokenized-expression.js +1 -3
  107. package/lib/es/components/dialog/custom-column/tokenizedI-input.js +1 -1
  108. package/lib/es/components/dialog/custom-editor/index.js +1 -7
  109. package/lib/es/components/dialog/diff-viewer/index copy.js +1 -15
  110. package/lib/es/components/dialog/expression/date-format-picker.js +2 -20
  111. package/lib/es/components/dialog/expression/date-format.js +2 -8
  112. package/lib/es/components/dialog/expression/index.d.ts +0 -3
  113. package/lib/es/components/dialog/expression/index.js +2 -82
  114. package/lib/es/components/dialog/formula/index.js +5 -31
  115. package/lib/es/components/dialog/formula/utils.js +2 -10
  116. package/lib/es/components/dialog/formula-list/CaseWhenGroup.d.ts +19 -0
  117. package/lib/es/components/dialog/formula-list/CaseWhenGroup.js +102 -0
  118. package/lib/es/components/dialog/formula-list/LogicGroup.d.ts +9 -0
  119. package/lib/es/components/dialog/formula-list/LogicGroup.js +36 -0
  120. package/lib/es/components/dialog/formula-list/index.d.ts +3 -0
  121. package/lib/es/components/dialog/formula-list/index.js +969 -504
  122. package/lib/es/components/dialog/formula-list/index.less +724 -0
  123. package/lib/es/components/dialog/formula-list/utils.d.ts +0 -7
  124. package/lib/es/components/dialog/formula-list/utils.js +117 -113
  125. package/lib/es/components/dialog/index.js +3 -3
  126. package/lib/es/components/dialog/select-column/index.d.ts +0 -6
  127. package/lib/es/components/dialog/select-column/index.js +4 -14
  128. package/lib/es/components/dialog/select-column-multiple/index.d.ts +0 -8
  129. package/lib/es/components/dialog/select-column-multiple/index.js +7 -47
  130. package/lib/es/components/dialog/select-join/index.d.ts +0 -5
  131. package/lib/es/components/dialog/select-join/index.js +0 -5
  132. package/lib/es/components/dialog/select-join-column/index.d.ts +0 -8
  133. package/lib/es/components/dialog/select-join-column/index.js +7 -20
  134. package/lib/es/components/dialog/select-join-column-multiple/index.d.ts +0 -8
  135. package/lib/es/components/dialog/select-join-column-multiple/index.js +5 -34
  136. package/lib/es/components/dialog/select-permission-table/index.d.ts +0 -5
  137. package/lib/es/components/dialog/select-permission-table/index.js +0 -5
  138. package/lib/es/components/dialog/select-summarize/index.d.ts +7 -4
  139. package/lib/es/components/dialog/select-summarize/index.js +106 -18
  140. package/lib/es/components/dialog/select-summarize/index.less +23 -0
  141. package/lib/es/components/dialog/select-table/index.d.ts +0 -6
  142. package/lib/es/components/dialog/select-table/index.js +1 -8
  143. package/lib/es/components/metabase/index.js +72 -87
  144. package/lib/es/components/metabase/index.less +7 -7
  145. package/lib/es/components/modules/components/Wrapper.js +1 -1
  146. package/lib/es/components/modules/components/header.js +2 -2
  147. package/lib/es/components/modules/components/meta-icon.d.ts +0 -3
  148. package/lib/es/components/modules/components/meta-icon.js +2 -46
  149. package/lib/es/components/modules/custom-column.js +3 -29
  150. package/lib/es/components/modules/enum/filter-enum.js +9 -88
  151. package/lib/es/components/modules/filter.js +2 -19
  152. package/lib/es/components/modules/index.d.ts +4 -2
  153. package/lib/es/components/modules/index.js +24 -1
  154. package/lib/es/components/modules/join-data.js +13 -291
  155. package/lib/es/components/modules/row-limit.js +0 -1
  156. package/lib/es/components/modules/sort.js +1 -61
  157. package/lib/es/components/modules/summarize/group-by.d.ts +0 -5
  158. package/lib/es/components/modules/summarize/group-by.js +253 -91
  159. package/lib/es/components/modules/summarize/select-index.js +116 -59
  160. package/lib/es/components/modules/table-data.js +11 -64
  161. package/lib/es/components/popup.js +27 -33
  162. package/lib/es/hooks/patch.d.ts +1 -0
  163. package/lib/es/hooks/patch.js +103 -5
  164. package/lib/es/hooks/patch2.js +2 -164
  165. package/lib/es/hooks/use-provider.js +0 -3
  166. package/lib/es/hooks/use-state.js +55 -135
  167. package/lib/es/index.js +0 -14
  168. package/lib/es/locale/en.js +5 -0
  169. package/lib/es/locale/index.js +1 -4
  170. package/lib/es/locale/zh.js +5 -0
  171. package/lib/es/sql-formula.js +0 -1
  172. package/lib/es/store/enum.d.ts +6 -6
  173. package/lib/es/store/enum.js +0 -13
  174. package/lib/es/store/helper.d.ts +2 -1
  175. package/lib/es/store/helper.js +13 -224
  176. package/lib/es/store/types.d.ts +45 -67
  177. package/lib/es/store/types.js +3 -49
  178. package/lib/es/types.d.ts +1 -0
  179. package/lib/es/types.js +1 -18
  180. package/lib/es/utils/cookies.js +0 -3
  181. package/lib/es/utils/event.js +1 -1
  182. package/lib/es/utils/helper-dom.d.ts +1 -0
  183. package/lib/es/utils/helper-dom.js +16 -9
  184. package/lib/es/utils/helper.js +1 -24
  185. package/lib/es/utils/keydown.js +4 -7
  186. package/lib/es/utils/platform.d.ts +0 -9
  187. package/lib/es/utils/platform.js +0 -10
  188. package/lib/es/utils/selection.js +0 -6
  189. package/lib/es/utils/storage.d.ts +0 -9
  190. package/lib/es/utils/storage.js +1 -10
  191. package/lib/es/utils/transformSql.d.ts +5 -0
  192. package/lib/es/utils/transformSql.js +40 -100
  193. package/lib/es/utils.d.ts +1 -6
  194. package/lib/es/utils.js +127 -255
  195. package/package.json +1 -1
@@ -68,6 +68,11 @@ var _default = exports["default"] = (0, _index.register)('zh', {
68
68
  'customColumn.cancel': '取消',
69
69
  'customColumn.somethingAwesomeToDocument': '一些超棒的、值得记录的东西',
70
70
  'customColumn.expression': '表达式',
71
+ 'customColumn.caseWhen': 'CASE WHEN',
72
+ 'customColumn.andOr': 'AND / OR',
73
+ 'customColumn.logicStart': '逻辑开始',
74
+ 'customColumn.caseCondition': '判断',
75
+ 'customColumn.caseResult': '结果',
71
76
  'customColumn.selectField': '选择列',
72
77
  'customColumn.selectOperator': '选择操作符',
73
78
  'customColumn.pleaseSelect': '请选择',
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.functions = exports["default"] = void 0;
7
- // 自定义列函数 tips
8
7
  var functions = exports.functions = {
9
8
  abs: {
10
9
  tip: 'abs(列)',
@@ -5,7 +5,7 @@ export declare enum SortEnum {
5
5
  export declare enum TypeEnum {
6
6
  data = "data",
7
7
  joinData = "joinData",
8
- permissionTable = "permissionTable",// 权限表
8
+ permissionTable = "permissionTable",
9
9
  customColumn = "customColumn",
10
10
  filter = "filter",
11
11
  summarize = "summarize",
@@ -44,13 +44,13 @@ export declare enum SQL_GROUP_TYPE {
44
44
  DATE = "date"
45
45
  }
46
46
  export declare enum DataTypeEnum {
47
- float = "float",// 小数
48
- string = "string",// 字符
49
- date = "date",// 日期
50
- long = "long",// 整数
47
+ float = "float",
48
+ string = "string",
49
+ date = "date",
50
+ long = "long",
51
51
  currency = "currency"
52
52
  }
53
53
  export declare enum EleComponentEnum {
54
- text = "text",// 文本框
54
+ text = "text",
55
55
  select = "select"
56
56
  }
@@ -51,24 +51,12 @@ var SQL_COLUMN_TYPE;
51
51
  SQL_COLUMN_TYPE["LONG"] = "LONG";
52
52
  SQL_COLUMN_TYPE["CURRENCY"] = "CURRENCY";
53
53
  })(SQL_COLUMN_TYPE || (exports.SQL_COLUMN_TYPE = SQL_COLUMN_TYPE = {}));
54
- // 之前的 SQL_COLUMN_TYPE
55
- // export enum SQL_COLUMN_TYPE {
56
- // BIGINT = 'BIGINT',
57
- // SMALLINT = 'SMALLINT',
58
- // DOUBLE = 'DOUBLE',
59
- // INTEGER = 'INTEGER',
60
- // CLOB = 'CLOB',
61
- // CHAR = 'CHAR',
62
- // VARCHAR = 'VARCHAR',
63
- // TIMESTAMP = 'TIMESTAMP',
64
- // }
65
54
  var SQL_GROUP_TYPE;
66
55
  (function (SQL_GROUP_TYPE) {
67
56
  SQL_GROUP_TYPE["NUMBER"] = "number";
68
57
  SQL_GROUP_TYPE["STRING"] = "string";
69
58
  SQL_GROUP_TYPE["DATE"] = "date";
70
59
  })(SQL_GROUP_TYPE || (exports.SQL_GROUP_TYPE = SQL_GROUP_TYPE = {}));
71
- // 字段数据类型
72
60
  var DataTypeEnum;
73
61
  (function (DataTypeEnum) {
74
62
  DataTypeEnum["float"] = "float";
@@ -77,7 +65,6 @@ var DataTypeEnum;
77
65
  DataTypeEnum["long"] = "long";
78
66
  DataTypeEnum["currency"] = "currency";
79
67
  })(DataTypeEnum || (exports.DataTypeEnum = DataTypeEnum = {}));
80
- // 字段控件类型
81
68
  var EleComponentEnum;
82
69
  (function (EleComponentEnum) {
83
70
  EleComponentEnum["text"] = "text";
@@ -1,8 +1,9 @@
1
- import { MetaListType, MetaSummarize_Group } from './types';
1
+ import { MetaListType, MetaSummarize_Group, MetaSummarize_By } from './types';
2
2
  export declare const SummarizeAlias = "source";
3
3
  export declare const summarizeToSql: (arr: MetaSummarize_Group[], record: MetaSummarize_Group) => {
4
4
  sql: string;
5
5
  fieldAlias: string;
6
6
  };
7
+ export declare const summarizeByToSql: (record: MetaSummarize_By) => string;
7
8
  export declare const compressionStructure: (data: MetaListType[]) => string;
8
9
  export declare const restoreStructure: (data: string) => MetaListType[];
@@ -4,124 +4,19 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.summarizeToSql = exports.restoreStructure = exports.compressionStructure = exports.SummarizeAlias = void 0;
7
+ exports.summarizeToSql = exports.summarizeByToSql = exports.restoreStructure = exports.compressionStructure = exports.SummarizeAlias = void 0;
8
8
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
9
9
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectWithoutProperties"));
10
10
  var _enum = require("./enum");
11
+ var _transformSql = require("../utils/transformSql");
11
12
  var _excluded = ["children"],
12
- _excluded2 = ["metaKey"]; // import { SummarizeAlias } from './index';
13
+ _excluded2 = ["metaKey"];
13
14
  var SummarizeAlias = exports.SummarizeAlias = 'source';
14
15
  var NUMBER_GROUP = [_enum.SQL_COLUMN_TYPE.FLOAT, _enum.SQL_COLUMN_TYPE.LONG, _enum.SQL_COLUMN_TYPE.CURRENCY];
15
16
  var STRING_GROUP = [_enum.SQL_COLUMN_TYPE.STRING];
16
17
  var DATE_GROUP = [_enum.SQL_COLUMN_TYPE.DATE];
17
- // 过滤器对象转sql语句
18
- // export const filterToSql = (record: AtomsItem): string => {
19
- // let { alias, name, condition, val, groupSql, database_type } = record;
20
- // let [condition_1, condition_2] = val;
21
- // let columnName: string;
22
- // if (alias === SummarizeAlias) {
23
- // columnName = `${alias}.${groupSql?.split(' AS ')?.[1] || ''}`;
24
- // } else {
25
- // columnName = `${alias}.${name}`;
26
- // }
27
- // let sql: string = '';
28
- // let group: SQL_GROUP_TYPE = SQL_GROUP_TYPE.STRING;
29
- // if (~NUMBER_GROUP.indexOf(database_type as SQL_COLUMN_TYPE)) {
30
- // group = SQL_GROUP_TYPE.NUMBER;
31
- // }
32
- // if (~DATE_GROUP.indexOf(database_type as SQL_COLUMN_TYPE)) {
33
- // group = SQL_GROUP_TYPE.DATE;
34
- // }
35
- // if (group === SQL_GROUP_TYPE.STRING) {
36
- // switch (condition) {
37
- // // string
38
- // case '是':
39
- // sql = `${columnName} = '${condition_1}'`;
40
- // break;
41
- // case '不是':
42
- // sql = `${columnName} <> '${condition_1}'`;
43
- // break;
44
- // case '包含':
45
- // sql = `(${columnName} like '%${condition_1}%')`;
46
- // break;
47
- // case '不包含':
48
- // sql = `(NOT ${columnName} like '%${condition_1}%')`;
49
- // break;
50
- // case '为空':
51
- // sql = `${columnName} IS NULL`;
52
- // break;
53
- // case '不为空':
54
- // sql = `${columnName} IS NOT NULL`;
55
- // break;
56
- // case '以...开始':
57
- // sql = `(${columnName} like '${condition_1}%')`;
58
- // break;
59
- // case '以...结束':
60
- // sql = `(${columnName} like '%${condition_1}')`;
61
- // break;
62
- // }
63
- // }
64
- // if (group === SQL_GROUP_TYPE.NUMBER) {
65
- // switch (condition) {
66
- // // number
67
- // case '等于':
68
- // sql = `${columnName} = ${condition_1}`;
69
- // break;
70
- // case '不等于':
71
- // sql = `${columnName} <> ${condition_1}`;
72
- // break;
73
- // case '大于':
74
- // sql = `${columnName} > ${condition_1}`;
75
- // break;
76
- // case '小于':
77
- // sql = `${columnName} < ${condition_1}`;
78
- // break;
79
- // case '介于之间':
80
- // sql = `${columnName} BETWEEN ${condition_1} AND ${condition_2}`;
81
- // break;
82
- // case '大于或等于':
83
- // sql = `${columnName} >= ${condition_1}`;
84
- // break;
85
- // case '小于或等于':
86
- // sql = `${columnName} <= ${condition_1}`;
87
- // break;
88
- // case '为空':
89
- // sql = `${columnName} IS NULL`;
90
- // break;
91
- // case '不为空':
92
- // sql = `${columnName} IS NOT NULL`;
93
- // break;
94
- // }
95
- // }
96
- // if (group === SQL_GROUP_TYPE.DATE) {
97
- // function transformDate(dataStr: string) {
98
- // return dataStr.replace(/-/g, '').replace(/:/g, '').replace(' ', '') + '00';
99
- // }
100
- // let c_1 = transformDate(condition_1 || '');
101
- // let c_2 = transformDate(condition_2 || '');
102
- // switch (condition) {
103
- // // date
104
- // case '早于':
105
- // sql = `${columnName} < '${c_1}'`;
106
- // break;
107
- // case '晚于':
108
- // sql = `${columnName} >= '${c_1}'`;
109
- // break;
110
- // case '介于之间':
111
- // sql = `(${columnName} >= '${c_1}' AND ${columnName} < '${c_2}')`;
112
- // break;
113
- // case '是空的':
114
- // sql = `${columnName} IS NULL`;
115
- // break;
116
- // case '不是空的':
117
- // sql = `${columnName} IS NOT NULL`;
118
- // break;
119
- // }
120
- // }
121
- // return sql;
122
- // };
123
- // 聚合转sql语句
124
18
  var summarizeToSql = exports.summarizeToSql = function summarizeToSql(arr, record) {
19
+ var _record$atoms;
125
20
  var condition = record.condition,
126
21
  alias = record.alias,
127
22
  name = record.name,
@@ -132,6 +27,9 @@ var summarizeToSql = exports.summarizeToSql = function summarizeToSql(arr, recor
132
27
  var sql = '';
133
28
  var as = '';
134
29
  var field = "".concat(alias, ".").concat(realName || name);
30
+ if ((_record$atoms = record.atoms) !== null && _record$atoms !== void 0 && _record$atoms.length && !['总行数', '累积行数'].includes(condition)) {
31
+ field = (0, _transformSql.handleBaseType2Sql)(record.atoms).sql.trim() || field;
32
+ }
135
33
  switch (condition) {
136
34
  case '总行数':
137
35
  case '累积行数':
@@ -188,10 +86,17 @@ var summarizeToSql = exports.summarizeToSql = function summarizeToSql(arr, recor
188
86
  as = as + (count ? '_' + (count + 1) : '');
189
87
  return {
190
88
  sql: sql,
191
- // + ' AS ' + as,
192
89
  fieldAlias: as
193
90
  };
194
91
  };
92
+ var summarizeByToSql = exports.summarizeByToSql = function summarizeByToSql(record) {
93
+ var _record$atoms2;
94
+ var sql = "".concat(record.alias, ".").concat(record.realName || record.name);
95
+ if ((_record$atoms2 = record.atoms) !== null && _record$atoms2 !== void 0 && _record$atoms2.length) {
96
+ sql = (0, _transformSql.handleBaseType2Sql)(record.atoms).sql.trim() || sql;
97
+ }
98
+ return sql;
99
+ };
195
100
  var _flatArr2 = function _flatArr(data, arr) {
196
101
  var children = data.children,
197
102
  res = (0, _objectWithoutProperties2["default"])(data, _excluded);
@@ -207,18 +112,15 @@ var _recursionArr2 = function _recursionArr(arr) {
207
112
  }
208
113
  return obj;
209
114
  };
210
- // 反转顺序 - (将原本嵌套的顺序完全反转 最内层变成最外层)别问为什么 问就是接口需要
211
115
  var reverseData = function reverseData(data) {
212
116
  var arr = [];
213
117
  _flatArr2(data, arr);
214
118
  return _recursionArr2(arr.reverse());
215
119
  };
216
- // 分层 - (将原本平铺的格式转成 嵌套的格式)
217
120
  var _layeredData = function layeredData(list) {
218
121
  var res = {};
219
122
  for (var i = 0; i < list.length; i++) {
220
123
  var meta = list[i];
221
- // @ts-ignore
222
124
  if (meta.type === _enum.TypeEnum.joinData) {
223
125
  if (res[meta.type]) {
224
126
  res[meta.type].push(meta);
@@ -226,15 +128,12 @@ var _layeredData = function layeredData(list) {
226
128
  res[meta.type] = [meta];
227
129
  }
228
130
  } else {
229
- // @ts-ignore
230
131
  res[meta.type] = meta;
231
132
  }
232
133
  if (meta.type === _enum.TypeEnum.summarize) {
233
134
  var nextMeta = list[i + 1];
234
135
  var nextNextMeta = list[i + 2];
235
136
  var nextNextNextMeta = list[i + 3];
236
- // 将sort 和 rowLimit 归到上一层 (虽然他们两在 summarize 后面)
237
- // 处理完 sort 和 rowLimit 之后 如果数组后面还有元素则进入下一层循环
238
137
  if (nextMeta) {
239
138
  if (nextMeta.type === _enum.TypeEnum.rowLimit) {
240
139
  res[nextMeta.type] = nextMeta;
@@ -262,115 +161,6 @@ var _layeredData = function layeredData(list) {
262
161
  }
263
162
  return res;
264
163
  };
265
- // 处理数据格式 - (这里才是真正处理成后端需要的格式 前面两步都是准备工作)
266
- // const handleNesting = (data: LooseObject): ParamsStruct => {
267
- // let hasInnerSql = Boolean(data.children);
268
- // let obj: ParamsStruct = {
269
- // hasInnerSql,
270
- // innerSqlStruct: hasInnerSql ? handleNesting(data.children as LooseObject) : null,
271
- // };
272
- // let tableData: MetaData | undefined = data[TypeEnum.data];
273
- // let joinData: MetaJoin[] = data[TypeEnum.joinData] || [];
274
- // let permissionTable: MetaPermissionTable | undefined = data[TypeEnum.permissionTable];
275
- // let customColumn: MetaCustom | undefined = data[TypeEnum.customColumn];
276
- // let filterData: MetaFilter | undefined = data[TypeEnum.filter];
277
- // let summarize: MetaSummarize | undefined = data[TypeEnum.summarize];
278
- // let sortData: MetaSort | undefined = data[TypeEnum.sort];
279
- // let rowLimit: MetaLimit | undefined = data[TypeEnum.rowLimit];
280
- // if (tableData) {
281
- // obj.alias = tableData.table.alias;
282
- // obj.tableName = tableData.table.name;
283
- // obj.datasourceId = tableData.table.datasourceId;
284
- // if (!summarize || (!summarize.group.length && !summarize.by.length)) {
285
- // obj.queryColumns = tableData.columns
286
- // .filter((v) => v.select)
287
- // .map((v) => `${tableData?.table?.alias}.${v.name}`);
288
- // }
289
- // } else {
290
- // if (!summarize || (!summarize.group.length && !summarize.by.length)) {
291
- // obj.alias = SummarizeAlias;
292
- // }
293
- // }
294
- // if (joinData.length) {
295
- // obj.joinTables = joinData
296
- // .filter((v) => v.table2.name)
297
- // .map((v) => {
298
- // let joinCondition: string;
299
- // if (v.table1.alias === SummarizeAlias) {
300
- // joinCondition = `ON ${SummarizeAlias}.${v.table1.groupSql} = ${v.table2.alias}.${v.table2.column}`;
301
- // } else {
302
- // joinCondition = `ON ${v.table1.alias}.${v.table1.column} = ${v.table2.alias}.${v.table2.column}`;
303
- // }
304
- // return {
305
- // alias: v.table2.alias,
306
- // tableName: v.table2.name,
307
- // datasourceId: v.table2.datasourceId || '',
308
- // joinCondition,
309
- // joinType: v.joinType,
310
- // queryColumns: v.columns.filter((o) => o.select).map((o) => `${v.table2.alias}.${o.name}`),
311
- // };
312
- // });
313
- // }
314
- // if (customColumn && customColumn.customColumn.length) {
315
- // obj.customColumns = customColumn.customColumn.map((v) => {
316
- // return {
317
- // alias: v.name,
318
- // // formula: v.formula.replace(/\[.*?\]/g, (column: string): string => {
319
- // // let str = column.substr(1, column.length - 2);
320
- // // if (~str.indexOf('->')) {
321
- // // let _str = str.replace(/ /g, '').split('->');
322
- // // return `${_str[0]}.${_str[1]}`;
323
- // // }
324
- // // return str;
325
- // // }),
326
- // };
327
- // });
328
- // }
329
- // if (filterData && filterData.filter.length) {
330
- // obj.filters = 'WHERE ' + filterData.filter.map((v) => filterToSql(v)).join(' AND ');
331
- // if (permissionTable) {
332
- // obj.filters += ` @{_DATA_I_PRIV_COND:${permissionTable.table.alias}}`;
333
- // }
334
- // }
335
- // if (summarize && (summarize.group.length || summarize.by.length)) {
336
- // obj.groupBy = {
337
- // calcColumns: [],
338
- // groupColumns: [],
339
- // };
340
- // let queryColumns: string[] = [];
341
- // if (summarize.group.length) {
342
- // obj.groupBy.calcColumns = summarize.group.map((v) => {
343
- // return v.sql;
344
- // });
345
- // queryColumns = [...obj.groupBy.calcColumns];
346
- // }
347
- // if (summarize.by.length) {
348
- // obj.groupBy.groupColumns = summarize.by.map((v) => {
349
- // queryColumns.push(`${v.sql}`);
350
- // return `${v.alias}.${v.realName || v.name}`;
351
- // });
352
- // }
353
- // obj.queryColumns = queryColumns;
354
- // if (!tableData) {
355
- // obj.alias = summarize.alias;
356
- // }
357
- // }
358
- // if (sortData && sortData.sort.length) {
359
- // obj.orderInfos = `ORDER BY ${sortData.sort
360
- // .map((v: MetaSort_Item) => `${v.sql} ${v.sort}`)
361
- // .join(', ')}`;
362
- // }
363
- // if (rowLimit) {
364
- // obj.limit = Number(rowLimit.limit);
365
- // }
366
- // if (permissionTable) {
367
- // obj.privilegeTable = `@{_DATA_I_PRIV_COND:${permissionTable.table.alias}}`;
368
- // }
369
- // return obj;
370
- // };
371
- // export const handleSqlStruct = (list: MetaListType[]) =>
372
- // handleNesting(reverseData(layeredData(list)));
373
- // 压缩结构
374
164
  var compressionStructure = exports.compressionStructure = function compressionStructure(data) {
375
165
  var _data = JSON.parse(JSON.stringify(data)).map(function (v) {
376
166
  var metaKey = v.metaKey,
@@ -1,19 +1,19 @@
1
1
  import type { DatasourceType } from '../types';
2
2
  import { TypeEnum, SpecialType, JoinEnum, SQL_COLUMN_TYPE, SortEnum } from './enum';
3
3
  export declare enum FormulaTypeEnum {
4
- CUSTOM = "custom",// 自定义表达式
5
- FILTER = "filter",// 过滤器
6
- FORMULA = "formula",// 公式
7
- JOIN_DATA = "joinData",// 关联
4
+ CUSTOM = "custom",
5
+ FILTER = "filter",
6
+ FORMULA = "formula",
7
+ JOIN_DATA = "joinData",
8
8
  ALL = "all"
9
9
  }
10
10
  export declare enum ChangeType {
11
- fieldAlias = "fieldAlias",// 修改字段别名
12
- tableAlias = "tableAlias",// 修改字段别名
13
- customColumn = "customColumn",// 自定义列
11
+ fieldAlias = "fieldAlias",
12
+ tableAlias = "tableAlias",
13
+ customColumn = "customColumn",
14
14
  formula = "formula",
15
- field = "field",// 修改字段别名
16
- expressions = "expressions",// expressions
15
+ field = "field",
16
+ expressions = "expressions",
17
17
  table1 = "table1",
18
18
  table2 = "table2",
19
19
  joinType = "joinType",
@@ -26,21 +26,23 @@ export declare enum ChangeType {
26
26
  group = "group"
27
27
  }
28
28
  export declare enum AtomsTypeEnum {
29
- JOIN_DEFAULT = "joinDefault",// join默认
30
- EXISTS = "exists",// notExists
31
- NOT_EXISTS = "notExists",// notExists
32
- FIELD = "field",// 字段
33
- EXPRESSION = "expression",// 表达式
34
- INPUT_STRING = "inputString",// 字符串输入框
35
- INPUT_STRING_LIST = "inputStringList",// 字符串输入框
36
- INPUT_NUMBER_LIST = "inputNumberList",// 数字输入框
37
- INPUT_NUMBER = "inputNumber",// 数字输入框
38
- CONSTANT = "constant",// 常量
39
- OPERATOR = "operator",// 运算符
40
- UNKNOWN = "unknown",//未选具体类型
41
- SELECT = "select",// select 选择框
29
+ JOIN_DEFAULT = "joinDefault",
30
+ EXISTS = "exists",
31
+ NOT_EXISTS = "notExists",
32
+ FIELD = "field",
33
+ EXPRESSION = "expression",
34
+ CASE_WHEN = "caseWhen",
35
+ AND_OR = "andOr",
36
+ INPUT_STRING = "inputString",
37
+ INPUT_STRING_LIST = "inputStringList",
38
+ INPUT_NUMBER_LIST = "inputNumberList",
39
+ INPUT_NUMBER = "inputNumber",
40
+ CONSTANT = "constant",
41
+ OPERATOR = "operator",
42
+ UNKNOWN = "unknown",
43
+ SELECT = "select",
42
44
  FORMULA = "FORMULA",
43
- SUB_QUERY = "subquery",// notExists
45
+ SUB_QUERY = "subquery",
44
46
  COLLECTION = "collection"
45
47
  }
46
48
  export interface AtomsSubQuery {
@@ -83,6 +85,23 @@ export interface AtomsExpression {
83
85
  formula?: Filter_Formula;
84
86
  type: AtomsTypeEnum.EXPRESSION;
85
87
  }
88
+ export interface AtomsCaseWhenBranch {
89
+ when: AtomsItem[];
90
+ then: AtomsItem[];
91
+ }
92
+ export interface AtomsCaseWhen {
93
+ caseValue?: AtomsItem[];
94
+ branches: AtomsCaseWhenBranch[];
95
+ elseValue?: AtomsItem[];
96
+ quotes: string;
97
+ type: AtomsTypeEnum.CASE_WHEN;
98
+ }
99
+ export interface AtomsAndOr {
100
+ operator: 'and' | 'or';
101
+ list: AtomsItem[];
102
+ quotes: string;
103
+ type: AtomsTypeEnum.AND_OR;
104
+ }
86
105
  export interface AtomsJoinDefault {
87
106
  lhs: AtomsItem[];
88
107
  condition: string;
@@ -151,7 +170,7 @@ export interface AtomsSelect {
151
170
  fixed?: boolean;
152
171
  type: AtomsTypeEnum.SELECT;
153
172
  }
154
- export type AtomsItem = AtomsSubQuery | AtomsNotExists | AtomsExists | AtomsJoinDefault | AtomsExpression | AtomsFormula | AtomsField | AtomsInputString | AtomsInputStringList | AtomsInputNumberList | AtomsInputNumber | AtomsOprator | AtomsConstant | AtomsUnknown | AtomsCollection | AtomsSelect;
173
+ export type AtomsItem = AtomsSubQuery | AtomsNotExists | AtomsExists | AtomsJoinDefault | AtomsExpression | AtomsCaseWhen | AtomsAndOr | AtomsFormula | AtomsField | AtomsInputString | AtomsInputStringList | AtomsInputNumberList | AtomsInputNumber | AtomsOprator | AtomsConstant | AtomsUnknown | AtomsCollection | AtomsSelect;
155
174
  export type ToolbarType = TypeEnum | 'filter' | 'summarize' | 'joinData' | 'permissionTable' | 'customColumn' | 'sort' | 'rowLimit' | 'union';
156
175
  export type MetaListType = MetaData | MetaJoin | MetaCustom | MetaFilter | MetaSummarize | MetaSort | MetaLimit | MetaPermissionTable | MetaUnion;
157
176
  export type initColumnsType = MetaData_ColumnsType;
@@ -264,6 +283,7 @@ export interface MetaSummarize_Group {
264
283
  quotes: string;
265
284
  datasourceId: string;
266
285
  datasourceName: string;
286
+ atoms?: AtomsItem[];
267
287
  summarizeType: MetaSummarize_Enum;
268
288
  [params: string]: any;
269
289
  }
@@ -285,6 +305,7 @@ export interface MetaSummarize_By {
285
305
  database_type: SQL_COLUMN_TYPE | '';
286
306
  condition: string;
287
307
  quotes: string;
308
+ atoms?: AtomsItem[];
288
309
  summarizeType: MetaSummarize_Enum;
289
310
  }
290
311
  export interface MetaSummarize {
@@ -386,46 +407,3 @@ export interface FormulaTemplates {
386
407
  children: FormulaTemplatesItem[];
387
408
  }
388
409
  export {};
389
- /**
390
- let a = {
391
- "idxId": "string",
392
- "sqlStruct": {
393
- "alias": "string",// 主表别名 只有最外层可以没有
394
- "tableName": "string",// 主表名 除了最内层 都可以没有
395
- "queryColumns": [
396
- "string"// 第一层放 主表选择的字段,其他的放 groupby 的两个字段别名
397
- ],
398
- "groupBy": {// 聚合
399
- "calcColumns": [// 左边
400
- "string"
401
- ],
402
- "groupColumns": [// 右边
403
- "string"
404
- ]
405
- },
406
- "customColumns": [// 自定义列
407
- {
408
- "alias": "string",
409
- "formula": "string"
410
- }
411
- ],
412
- "filters": "string",// filter 用 on 分隔
413
- "hasInnerSql": false,// 是否有嵌套
414
- "innerSqlStruct": {},// 嵌套内容
415
- "joinTables": [// 关联
416
- {
417
- "alias": "string",
418
- "joinCondition": "a.a = b.b",
419
- "joinType": "string",
420
- "queryColumns": [
421
- "string"
422
- ],
423
- "tableName": "string"
424
- }
425
- ],
426
- "limit": 0,
427
- "orderInfos": "string",
428
-
429
- },
430
- }
431
- */
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.MetaSummarize_Enum = exports.FormulaTypeEnum = exports.ChangeType = exports.AtomsTypeEnum = void 0;
7
- // 表达式类型
8
7
  var FormulaTypeEnum;
9
8
  (function (FormulaTypeEnum) {
10
9
  FormulaTypeEnum["CUSTOM"] = "custom";
@@ -13,7 +12,6 @@ var FormulaTypeEnum;
13
12
  FormulaTypeEnum["JOIN_DATA"] = "joinData";
14
13
  FormulaTypeEnum["ALL"] = "all";
15
14
  })(FormulaTypeEnum || (exports.FormulaTypeEnum = FormulaTypeEnum = {}));
16
- // 修改类型
17
15
  var ChangeType;
18
16
  (function (ChangeType) {
19
17
  ChangeType["fieldAlias"] = "fieldAlias";
@@ -33,7 +31,6 @@ var ChangeType;
33
31
  ChangeType["by"] = "by";
34
32
  ChangeType["group"] = "group";
35
33
  })(ChangeType || (exports.ChangeType = ChangeType = {}));
36
- // 表达式类型
37
34
  var AtomsTypeEnum;
38
35
  (function (AtomsTypeEnum) {
39
36
  AtomsTypeEnum["JOIN_DEFAULT"] = "joinDefault";
@@ -41,7 +38,8 @@ var AtomsTypeEnum;
41
38
  AtomsTypeEnum["NOT_EXISTS"] = "notExists";
42
39
  AtomsTypeEnum["FIELD"] = "field";
43
40
  AtomsTypeEnum["EXPRESSION"] = "expression";
44
- // FUNCTION = 'function', // 函数
41
+ AtomsTypeEnum["CASE_WHEN"] = "caseWhen";
42
+ AtomsTypeEnum["AND_OR"] = "andOr";
45
43
  AtomsTypeEnum["INPUT_STRING"] = "inputString";
46
44
  AtomsTypeEnum["INPUT_STRING_LIST"] = "inputStringList";
47
45
  AtomsTypeEnum["INPUT_NUMBER_LIST"] = "inputNumberList";
@@ -54,52 +52,8 @@ var AtomsTypeEnum;
54
52
  AtomsTypeEnum["SUB_QUERY"] = "subquery";
55
53
  AtomsTypeEnum["COLLECTION"] = "collection";
56
54
  })(AtomsTypeEnum || (exports.AtomsTypeEnum = AtomsTypeEnum = {}));
57
- // ----------- 第五个模块 聚合模块 ------------
58
55
  var MetaSummarize_Enum;
59
56
  (function (MetaSummarize_Enum) {
60
57
  MetaSummarize_Enum["GROUP"] = "group";
61
58
  MetaSummarize_Enum["BY"] = "by";
62
- })(MetaSummarize_Enum || (exports.MetaSummarize_Enum = MetaSummarize_Enum = {}));
63
- /**
64
- let a = {
65
- "idxId": "string",
66
- "sqlStruct": {
67
- "alias": "string",// 主表别名 只有最外层可以没有
68
- "tableName": "string",// 主表名 除了最内层 都可以没有
69
- "queryColumns": [
70
- "string"// 第一层放 主表选择的字段,其他的放 groupby 的两个字段别名
71
- ],
72
- "groupBy": {// 聚合
73
- "calcColumns": [// 左边
74
- "string"
75
- ],
76
- "groupColumns": [// 右边
77
- "string"
78
- ]
79
- },
80
- "customColumns": [// 自定义列
81
- {
82
- "alias": "string",
83
- "formula": "string"
84
- }
85
- ],
86
- "filters": "string",// filter 用 on 分隔
87
- "hasInnerSql": false,// 是否有嵌套
88
- "innerSqlStruct": {},// 嵌套内容
89
- "joinTables": [// 关联
90
- {
91
- "alias": "string",
92
- "joinCondition": "a.a = b.b",
93
- "joinType": "string",
94
- "queryColumns": [
95
- "string"
96
- ],
97
- "tableName": "string"
98
- }
99
- ],
100
- "limit": 0,
101
- "orderInfos": "string",
102
-
103
- },
104
- }
105
- */
59
+ })(MetaSummarize_Enum || (exports.MetaSummarize_Enum = MetaSummarize_Enum = {}));
@@ -63,6 +63,7 @@ export interface MetabaseProps {
63
63
  getExistsError?: (params: MetaListType[]) => Promise<any[]>;
64
64
  operatorList?: any[];
65
65
  otherTypes?: any[];
66
+ popupZIndex?: number;
66
67
  }
67
68
  export interface OptionItem {
68
69
  value?: string;
@@ -4,12 +4,9 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.getCookie = getCookie;
7
- //获取指定名称的cookie值
8
7
  function getCookie(name) {
9
- // (^| )name=([^;]*)(;|$),match[0]为与整个正则表达式匹配的字符串,match[i]为正则表达式捕获数组相匹配的数组;
10
8
  var arr = document.cookie.match(new RegExp('(^| )' + name + '=([^;]*)(;|$)'));
11
9
  if (arr != null) {
12
- console.log(arr);
13
10
  return arr[2];
14
11
  }
15
12
  return null;