@gingkoo/pandora-metabase 1.0.27 → 1.0.29

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 (66) hide show
  1. package/lib/cjs/common/SplitView/index.js +11 -12
  2. package/lib/cjs/components/dialog/custom-column/expression-editor.js +1 -2
  3. package/lib/cjs/components/dialog/custom-column/tokenizedI-input.js +1 -2
  4. package/lib/cjs/components/dialog/expression/index.js +11 -12
  5. package/lib/cjs/components/dialog/formula-list/index.js +53 -43
  6. package/lib/cjs/components/dialog/index.js +2 -2
  7. package/lib/cjs/components/dialog/select-column/index.js +4 -4
  8. package/lib/cjs/components/dialog/select-column-multiple/index.js +21 -10
  9. package/lib/cjs/components/dialog/select-join-column/index.js +13 -2
  10. package/lib/cjs/components/dialog/select-permission-table/index.js +2 -2
  11. package/lib/cjs/components/dialog/select-table/index.js +7 -7
  12. package/lib/cjs/components/icons.js +36 -36
  13. package/lib/cjs/components/metabase/index.js +41 -12
  14. package/lib/cjs/components/metabase/index.less +3 -0
  15. package/lib/cjs/components/modules/components/Wrapper.js +6 -6
  16. package/lib/cjs/components/modules/components/item-name.d.ts +7 -0
  17. package/lib/cjs/components/modules/components/item-name.js +34 -0
  18. package/lib/cjs/components/modules/components/meta-icon.js +6 -0
  19. package/lib/cjs/components/modules/custom-column.js +25 -25
  20. package/lib/cjs/components/modules/filter.js +2 -2
  21. package/lib/cjs/components/modules/join-data.js +215 -81
  22. package/lib/cjs/components/modules/permission-table.js +24 -10
  23. package/lib/cjs/components/modules/sort.js +17 -13
  24. package/lib/cjs/components/modules/summarize/group-by.js +90 -38
  25. package/lib/cjs/components/modules/summarize/select-index.js +84 -38
  26. package/lib/cjs/components/modules/table-data.js +14 -6
  27. package/lib/cjs/components/popup.js +1 -2
  28. package/lib/cjs/hooks/use-state.js +58 -65
  29. package/lib/cjs/index.js +1 -2
  30. package/lib/cjs/locale/en.js +5 -2
  31. package/lib/cjs/locale/zh.js +5 -2
  32. package/lib/cjs/utils/transformSql.d.ts +6 -0
  33. package/lib/cjs/utils/transformSql.js +968 -0
  34. package/lib/cjs/utils.d.ts +7 -1
  35. package/lib/cjs/utils.js +112 -15
  36. package/lib/es/common/SplitView/index.js +10 -10
  37. package/lib/es/components/dialog/expression/index.js +10 -10
  38. package/lib/es/components/dialog/formula-list/index.js +54 -44
  39. package/lib/es/components/dialog/select-column/index.js +4 -4
  40. package/lib/es/components/dialog/select-column-multiple/index.js +21 -10
  41. package/lib/es/components/dialog/select-join-column/index.js +13 -2
  42. package/lib/es/components/dialog/select-permission-table/index.js +2 -2
  43. package/lib/es/components/dialog/select-table/index.js +7 -7
  44. package/lib/es/components/icons.js +36 -36
  45. package/lib/es/components/metabase/index.js +42 -13
  46. package/lib/es/components/metabase/index.less +3 -0
  47. package/lib/es/components/modules/components/Wrapper.js +6 -6
  48. package/lib/es/components/modules/components/item-name.d.ts +7 -0
  49. package/lib/es/components/modules/components/item-name.js +28 -0
  50. package/lib/es/components/modules/components/meta-icon.js +6 -0
  51. package/lib/es/components/modules/custom-column.js +26 -26
  52. package/lib/es/components/modules/filter.js +2 -2
  53. package/lib/es/components/modules/join-data.js +216 -82
  54. package/lib/es/components/modules/permission-table.js +24 -10
  55. package/lib/es/components/modules/sort.js +18 -14
  56. package/lib/es/components/modules/summarize/group-by.js +92 -40
  57. package/lib/es/components/modules/summarize/select-index.js +86 -40
  58. package/lib/es/components/modules/table-data.js +14 -6
  59. package/lib/es/hooks/use-state.js +58 -65
  60. package/lib/es/locale/en.js +5 -2
  61. package/lib/es/locale/zh.js +5 -2
  62. package/lib/es/utils/transformSql.d.ts +6 -0
  63. package/lib/es/utils/transformSql.js +961 -0
  64. package/lib/es/utils.d.ts +7 -1
  65. package/lib/es/utils.js +102 -4
  66. package/package.json +1 -1
@@ -23,6 +23,7 @@ var _utils = require("../../utils");
23
23
  var _enum = require("../../store/enum");
24
24
  var _types = require("../../store/types");
25
25
  var _helper2 = require("../../store/helper");
26
+ var _itemName = _interopRequireDefault(require("./components/item-name"));
26
27
  var _Wrapper = _interopRequireDefault(require("./components/Wrapper"));
27
28
  var _metaIcon = _interopRequireDefault(require("./components/meta-icon"));
28
29
  var _header = _interopRequireDefault(require("./components/header"));
@@ -66,7 +67,7 @@ var menuOperator = operators.map(function (v) {
66
67
  };
67
68
  });
68
69
  var JoinData = function JoinData(props) {
69
- var _meta$subquery, _meta$subquery2, _meta$subquery3, _meta$table2, _meta$table3, _meta$table5, _meta$table6, _meta$table7, _meta$table8, _meta$expressions, _meta$table9, _meta$table10, _meta$expressions2, _store$showMainColumn, _store$showMainColumn2;
70
+ var _meta$subquery, _meta$subquery2, _meta$subquery3, _meta$table2, _meta$table3, _meta$table5, _meta$table6, _meta$table7, _meta$table8, _meta$expressions, _meta$table9, _meta$table0, _meta$expressions2, _store$showMainColumn, _store$showMainColumn2;
70
71
  var meta = props.meta,
71
72
  groupIndex = props.groupIndex;
72
73
  var store = (0, _useProvider.useStore)();
@@ -77,6 +78,8 @@ var JoinData = function JoinData(props) {
77
78
  var table2Selected = Boolean(meta.table2.name);
78
79
  var subQuerySelected = Boolean((_meta$subquery = meta.subquery) === null || _meta$subquery === void 0 || (_meta$subquery = _meta$subquery[0]) === null || _meta$subquery === void 0 || (_meta$subquery = _meta$subquery.table) === null || _meta$subquery === void 0 ? void 0 : _meta$subquery.name);
79
80
  var columnsSelected = meta.table1.name && meta.table2.name;
81
+ var _getHelper = (0, _utils.getHelper)(store.metaList[groupIndex].list, meta),
82
+ prevTables = _getHelper.prevTables;
80
83
  // const ref = useRef(null);
81
84
  // useEffect(() => {
82
85
  // let newMetaList = store.metaList[groupIndex].list.slice();
@@ -86,10 +89,10 @@ var JoinData = function JoinData(props) {
86
89
  // 获取表格列
87
90
  var getTableColumns = function getTableColumns() {
88
91
  var data = [];
89
- var _getHelper = (0, _utils.getHelper)(store.metaList[groupIndex].list, meta),
90
- ExistAboveGroupBy = _getHelper.ExistAboveGroupBy,
91
- prevList = _getHelper.prevList,
92
- prevGroupBy = _getHelper.prevGroupBy;
92
+ var _getHelper2 = (0, _utils.getHelper)(store.metaList[groupIndex].list, meta),
93
+ ExistAboveGroupBy = _getHelper2.ExistAboveGroupBy,
94
+ prevList = _getHelper2.prevList,
95
+ prevGroupBy = _getHelper2.prevGroupBy;
93
96
  // 获取左侧表
94
97
  if (ExistAboveGroupBy) {
95
98
  var _prevGroupBy$group, _prevGroupBy$by;
@@ -222,10 +225,10 @@ var JoinData = function JoinData(props) {
222
225
  var index = (0, _utils.findIndex)(store.metaList[groupIndex].list, meta);
223
226
  var table_type = FlagLocation.TABLE_1;
224
227
  var data = [];
225
- var _getHelper2 = (0, _utils.getHelper)(store.metaList[groupIndex].list, meta),
226
- ExistAboveGroupBy = _getHelper2.ExistAboveGroupBy,
227
- prevList = _getHelper2.prevList,
228
- prevGroupBy = _getHelper2.prevGroupBy;
228
+ var _getHelper3 = (0, _utils.getHelper)(store.metaList[groupIndex].list, meta),
229
+ ExistAboveGroupBy = _getHelper3.ExistAboveGroupBy,
230
+ prevList = _getHelper3.prevList,
231
+ prevGroupBy = _getHelper3.prevGroupBy;
229
232
  if (ExistAboveGroupBy) {
230
233
  var _prevGroupBy$group2, _prevGroupBy$by2;
231
234
  var _data = {
@@ -334,12 +337,12 @@ var JoinData = function JoinData(props) {
334
337
  data: data,
335
338
  value: newMeta[index][table_type],
336
339
  onChange: function onChange(data) {
337
- if (table_type === FlagLocation.TABLE_1) {
338
- if (newMeta[index][table_type].datasourceId !== data.datasourceId || newMeta[index][table_type].name !== data.name) {
339
- newMeta[index][table_type] = data;
340
- initExpressions();
341
- }
340
+ // if (table_type === FlagLocation.TABLE_1) {
341
+ if (newMeta[index][table_type].datasourceId !== data.datasourceId || newMeta[index][table_type].name !== data.name) {
342
+ newMeta[index][table_type] = data;
343
+ initExpressions();
342
344
  }
345
+ // }
343
346
  store.setMeta(newMeta, groupIndex);
344
347
  store.setPopup({
345
348
  visible: false
@@ -384,10 +387,8 @@ var JoinData = function JoinData(props) {
384
387
  store.fetchColumns(_table2, data.datasourceId, [], function (columns) {
385
388
  newMeta[index].columns = columns;
386
389
  // 关联表变了 下面模块全部删除
387
- newMeta = newMeta.filter(function (v, i) {
388
- return i <= index;
389
- });
390
- store.setMeta(newMeta, groupIndex);
390
+ // newMeta = newMeta.filter((v: MetaListType, i: number) => i <= index);
391
+ // store.setMeta(newMeta, groupIndex);
391
392
  });
392
393
  }
393
394
  store.setPopup({
@@ -399,8 +400,10 @@ var JoinData = function JoinData(props) {
399
400
  }
400
401
  // 切换表后重置数据
401
402
  function initExpressions() {
402
- console.log(11);
403
403
  var newMeta = store.metaList[groupIndex].list.slice();
404
+ if (newMeta[index].expressions && newMeta[index].expressions.length > 0) {
405
+ return;
406
+ }
404
407
  newMeta[index].expressions = [{
405
408
  lhs: [{
406
409
  fieldName: '',
@@ -487,6 +490,120 @@ var JoinData = function JoinData(props) {
487
490
  })
488
491
  });
489
492
  }
493
+ function getColumns(_position) {
494
+ var data = [];
495
+ var _getHelper4 = (0, _utils.getHelper)(store.metaList[groupIndex].list, meta),
496
+ ExistAboveGroupBy = _getHelper4.ExistAboveGroupBy,
497
+ prevList = _getHelper4.prevList,
498
+ prevGroupBy = _getHelper4.prevGroupBy;
499
+ if (_position === ExpressionsEnum.LEFT) {
500
+ if (ExistAboveGroupBy) {
501
+ var _prevGroupBy$group3, _prevGroupBy$by3;
502
+ var _data = {
503
+ name: prevGroupBy.alias,
504
+ name_zh: prevGroupBy.alias,
505
+ id: prevGroupBy.alias,
506
+ tableUuid: prevGroupBy.tableUuid || (0, _helper.uuidv4)('table'),
507
+ alias: prevGroupBy.alias,
508
+ datasourceId: '',
509
+ datasourceName: '',
510
+ columns: []
511
+ };
512
+ if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$group3 = prevGroupBy.group) !== null && _prevGroupBy$group3 !== void 0 && _prevGroupBy$group3.length) {
513
+ _data.columns = _data.columns.concat(prevGroupBy.group.map(function (v) {
514
+ return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v), {}, {
515
+ name: v.name || v.quotes,
516
+ name_zh: v.name_zh || v.quotes,
517
+ id: v.id || v.fieldId,
518
+ database_type: (v === null || v === void 0 ? void 0 : v.database_type) || _enum.SQL_COLUMN_TYPE.FLOAT,
519
+ special_type: '',
520
+ sql: v.sql,
521
+ select: true
522
+ });
523
+ }));
524
+ }
525
+ if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$by3 = prevGroupBy.by) !== null && _prevGroupBy$by3 !== void 0 && _prevGroupBy$by3.length) {
526
+ _data.columns = _data.columns.concat(prevGroupBy.by.map(function (v) {
527
+ return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v), {}, {
528
+ name: v.name || v.quotes,
529
+ name_zh: v.name_zh || v.quotes,
530
+ id: v.id || v.fieldId,
531
+ database_type: (v === null || v === void 0 ? void 0 : v.database_type) || _enum.SQL_COLUMN_TYPE.FLOAT,
532
+ special_type: '',
533
+ sql: v.sql,
534
+ select: true
535
+ });
536
+ }));
537
+ }
538
+ data = [_data];
539
+ var joinData = prevList.filter(function (v) {
540
+ return v.type === _enum.TypeEnum.joinData;
541
+ }).filter(function (v) {
542
+ return v && v.table2.name;
543
+ });
544
+ if (joinData !== null && joinData !== void 0 && joinData.length) {
545
+ data = data.concat(joinData.map(function (v) {
546
+ return {
547
+ alias: v.table2.alias,
548
+ name: v.table2.name,
549
+ name_zh: v.table2.name_zh,
550
+ id: v.table2.id,
551
+ tableUuid: v.table2.tableUuid || (0, _helper.uuidv4)('table'),
552
+ datasourceId: v.table2.datasourceId,
553
+ datasourceName: v.table2.datasourceName,
554
+ columns: v.columns
555
+ };
556
+ }));
557
+ }
558
+ } else {
559
+ data = store.metaList[groupIndex].list.slice(0, index).reduce(function (mo, v) {
560
+ if (v.type === _enum.TypeEnum.data) {
561
+ mo.push({
562
+ alias: v.table.alias,
563
+ name: v.table.name,
564
+ name_zh: v.table.name_zh,
565
+ id: v.table.id,
566
+ tableUuid: v.table.tableUuid || (0, _helper.uuidv4)('table'),
567
+ columns: v.columns,
568
+ datasourceId: v.table.datasourceId,
569
+ datasourceName: v.table.datasourceName
570
+ });
571
+ } else if (v.type === _enum.TypeEnum.joinData) {
572
+ mo.push({
573
+ alias: v.table2.alias,
574
+ name: v.table2.name,
575
+ name_zh: v.table2.name_zh,
576
+ id: v.table2.id,
577
+ tableUuid: v.table2.tableUuid || (0, _helper.uuidv4)('table'),
578
+ columns: v.columns,
579
+ datasourceId: v.table2.datasourceId,
580
+ datasourceName: v.table2.datasourceName
581
+ });
582
+ }
583
+ return mo;
584
+ }, []);
585
+ }
586
+ // 过滤为table1选中的表
587
+ var newMeta = store.metaList[groupIndex].list.slice();
588
+ if (newMeta[index][FlagLocation.TABLE_1].name) {
589
+ data = data.filter(function (v) {
590
+ return newMeta[index][FlagLocation.TABLE_1].tableUuid == v.tableUuid || newMeta[index][FlagLocation.TABLE_1].name === _helper2.SummarizeAlias && newMeta[index][FlagLocation.TABLE_1].id == v.id;
591
+ });
592
+ }
593
+ } else {
594
+ data = [{
595
+ alias: meta.table2.alias,
596
+ name: meta.table2.name,
597
+ name_zh: meta.table2.name_zh,
598
+ id: meta.table2.id,
599
+ tableUuid: meta.table2.tableUuid || (0, _helper.uuidv4)('table'),
600
+ datasourceId: meta.table2.datasourceId,
601
+ datasourceName: meta.table2.datasourceName,
602
+ columns: meta.columns
603
+ }];
604
+ }
605
+ return data;
606
+ }
490
607
  function selectMoreJoinColumn(e) {
491
608
  var node = e.currentTarget;
492
609
  var _position = node.getAttribute('v-position');
@@ -494,13 +611,13 @@ var JoinData = function JoinData(props) {
494
611
  var _ind2 = Number(node.getAttribute('v-index2'));
495
612
  var index = (0, _utils.findIndex)(store.metaList[groupIndex].list, meta);
496
613
  var data = [];
497
- var _getHelper3 = (0, _utils.getHelper)(store.metaList[groupIndex].list, meta),
498
- ExistAboveGroupBy = _getHelper3.ExistAboveGroupBy,
499
- prevList = _getHelper3.prevList,
500
- prevGroupBy = _getHelper3.prevGroupBy;
614
+ var _getHelper5 = (0, _utils.getHelper)(store.metaList[groupIndex].list, meta),
615
+ ExistAboveGroupBy = _getHelper5.ExistAboveGroupBy,
616
+ prevList = _getHelper5.prevList,
617
+ prevGroupBy = _getHelper5.prevGroupBy;
501
618
  if (_position === ExpressionsEnum.LEFT) {
502
619
  if (ExistAboveGroupBy) {
503
- var _prevGroupBy$group3, _prevGroupBy$by3;
620
+ var _prevGroupBy$group4, _prevGroupBy$by4;
504
621
  var _data = {
505
622
  name: prevGroupBy.alias,
506
623
  name_zh: prevGroupBy.alias,
@@ -511,7 +628,7 @@ var JoinData = function JoinData(props) {
511
628
  datasourceName: '',
512
629
  columns: []
513
630
  };
514
- if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$group3 = prevGroupBy.group) !== null && _prevGroupBy$group3 !== void 0 && _prevGroupBy$group3.length) {
631
+ if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$group4 = prevGroupBy.group) !== null && _prevGroupBy$group4 !== void 0 && _prevGroupBy$group4.length) {
515
632
  _data.columns = _data.columns.concat(prevGroupBy.group.map(function (v) {
516
633
  return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v), {}, {
517
634
  name: v.name || v.quotes,
@@ -524,7 +641,7 @@ var JoinData = function JoinData(props) {
524
641
  });
525
642
  }));
526
643
  }
527
- if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$by3 = prevGroupBy.by) !== null && _prevGroupBy$by3 !== void 0 && _prevGroupBy$by3.length) {
644
+ if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$by4 = prevGroupBy.by) !== null && _prevGroupBy$by4 !== void 0 && _prevGroupBy$by4.length) {
528
645
  _data.columns = _data.columns.concat(prevGroupBy.by.map(function (v) {
529
646
  return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v), {}, {
530
647
  name: v.name || v.quotes,
@@ -589,7 +706,7 @@ var JoinData = function JoinData(props) {
589
706
  var newMeta = store.metaList[groupIndex].list.slice();
590
707
  if (newMeta[index][FlagLocation.TABLE_1].name) {
591
708
  data = data.filter(function (v) {
592
- return newMeta[index][FlagLocation.TABLE_1].tableUuid == v.tableUuid || newMeta[index][FlagLocation.TABLE_1].name === _helper2.SummarizeAlias;
709
+ return newMeta[index][FlagLocation.TABLE_1].tableUuid == v.tableUuid || newMeta[index][FlagLocation.TABLE_1].name === _helper2.SummarizeAlias && newMeta[index][FlagLocation.TABLE_1].id == v.id;
593
710
  });
594
711
  }
595
712
  } else {
@@ -790,7 +907,7 @@ var JoinData = function JoinData(props) {
790
907
  showSubquery: store._showSubquery,
791
908
  toolbar: _toolbar,
792
909
  btnText: (0, _locale.__)('SqlQueryBuilder.confirm'),
793
- value: val,
910
+ value: (0, _cloneDeep["default"])(val),
794
911
  onOk: function onOk(newList) {
795
912
  try {
796
913
  // 子查询未改变不做操作
@@ -807,12 +924,18 @@ var JoinData = function JoinData(props) {
807
924
  var newColumns = items.flatMap(function (item) {
808
925
  return item.columns;
809
926
  });
810
- newMeta[index].columns = newColumns;
927
+ newMeta[index].columns = newColumns.map(function (newCol) {
928
+ // 查找旧列中是否有相同 name 的列
929
+ var existingCol = newMeta[index].columns.find(function (oldCol) {
930
+ return oldCol.name === newCol.name;
931
+ });
932
+ // 如果存在,返回旧列;否则返回新列
933
+ return existingCol ? existingCol : newCol;
934
+ });
935
+ // (newMeta[index] as MetaJoin).columns = newColumns;
811
936
  initExpressions();
812
937
  // 关联表变了 下面模块全部删除
813
- newMeta = newMeta.filter(function (v, i) {
814
- return i <= index;
815
- });
938
+ // newMeta = newMeta.filter((v: MetaListType, i: number) => i <= index);
816
939
  store.setMeta(newMeta, groupIndex);
817
940
  o.close();
818
941
  } catch (e) {
@@ -831,24 +954,19 @@ var JoinData = function JoinData(props) {
831
954
  var index = (0, _utils.findIndex)(store.metaList[groupIndex].list, meta);
832
955
  var newMeta = store.metaList[groupIndex].list.slice();
833
956
  newMeta[index].isSubquery = !newMeta[index].isSubquery;
834
- newMeta[index].table2 = {
835
- quotes: '',
836
- name: '',
837
- // 表名
838
- name_zh: '',
839
- // 表名
840
- tableUuid: '',
841
- id: '',
842
- // 表名
843
- alias: '',
844
- // 表别名
845
- datasourceName: '',
846
- // 数据源名
847
- datasourceId: '' // 数据源id
848
- // groupSql: '', //如果table1 是结果集 那么这个字段 就有值,放结果集的别名
849
- };
850
- newMeta[index].expressions = [];
851
- newMeta[index].subquery = [];
957
+ // (newMeta[index] as MetaJoin).table2 = {
958
+ // quotes: '',
959
+ // name: '', // 表名
960
+ // name_zh: '', // 表名
961
+ // tableUuid: '',
962
+ // id: '', // 表名
963
+ // alias: '', // 表别名
964
+ // datasourceName: '', // 数据源名
965
+ // datasourceId: '', // 数据源id
966
+ // // groupSql: '', //如果table1 是结果集 那么这个字段 就有值,放结果集的别名
967
+ // };
968
+ // (newMeta[index] as MetaJoin).expressions = [];
969
+ // (newMeta[index] as MetaJoin).subquery = [];
852
970
  store.setMeta(newMeta, groupIndex);
853
971
  };
854
972
  var onChangeTableAlias = function onChangeTableAlias(val) {
@@ -865,22 +983,22 @@ var JoinData = function JoinData(props) {
865
983
  onOk: function () {
866
984
  var _onOk = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
867
985
  var index, newMeta;
868
- return _regenerator["default"].wrap(function _callee$(_context) {
986
+ return _regenerator["default"].wrap(function (_context) {
869
987
  while (1) switch (_context.prev = _context.next) {
870
988
  case 0:
871
989
  if ((0, _utils.isValidSQLAlias)(alias)) {
872
- _context.next = 3;
990
+ _context.next = 1;
873
991
  break;
874
992
  }
875
993
  _pandora.Toast.warning((0, _locale.__)('SqlQueryBuilder.aliasForRules'));
876
994
  return _context.abrupt("return", false);
877
- case 3:
995
+ case 1:
878
996
  index = (0, _utils.findIndex)(store.metaList[groupIndex].list, meta);
879
997
  newMeta = store.metaList[groupIndex].list.slice();
880
998
  newMeta[index].table2.alias = alias;
881
999
  newMeta = (0, _utils.changeTableAlias)(newMeta, newMeta[index].table2);
882
1000
  store.setMeta(newMeta, groupIndex);
883
- case 8:
1001
+ case 2:
884
1002
  case "end":
885
1003
  return _context.stop();
886
1004
  }
@@ -1017,21 +1135,31 @@ var JoinData = function JoinData(props) {
1017
1135
  return '';
1018
1136
  }
1019
1137
  };
1138
+ var leftTableIsError = function leftTableIsError() {
1139
+ var _prevTables$meta$tabl;
1140
+ if (!meta.table1.datasourceId || !meta.table1.id || meta.table1.datasourceId === _helper2.SummarizeAlias) {
1141
+ return false;
1142
+ }
1143
+ return !(prevTables !== null && prevTables !== void 0 && (_prevTables$meta$tabl = prevTables[meta.table1.datasourceId]) !== null && _prevTables$meta$tabl !== void 0 && _prevTables$meta$tabl[meta.table1.id]);
1144
+ };
1020
1145
  var renderItem = function renderItem(items, type, i) {
1021
1146
  var _items$;
1022
1147
  if ((items === null || items === void 0 || (_items$ = items[0]) === null || _items$ === void 0 ? void 0 : _items$.type) === _types.AtomsTypeEnum.FIELD) {
1023
1148
  var _items$2, _items$3;
1024
- return (0, _jsxRuntime.jsx)("div", {
1025
- className: (0, _classnames["default"])("Sqb-TableName", {
1026
- notSelected: !((_items$2 = items[0]) !== null && _items$2 !== void 0 && _items$2.fieldName)
1027
- }),
1028
- "v-position": type,
1029
- "v-index": i,
1030
- "v-index2": index,
1031
- onClick: selectMoreJoinColumn,
1032
- children: (_items$3 = items[0]) !== null && _items$3 !== void 0 && _items$3.fieldName ? items.map(function (field) {
1033
- return field.fieldName;
1034
- }).join(' || ') : (0, _locale.__)('SqlQueryBuilder.pickTable')
1149
+ return (0, _jsxRuntime.jsx)(_itemName["default"], {
1150
+ isError: (0, _utils.isError)(items, getColumns(type)),
1151
+ children: (0, _jsxRuntime.jsx)("div", {
1152
+ className: (0, _classnames["default"])("Sqb-TableName", {
1153
+ notSelected: !((_items$2 = items[0]) !== null && _items$2 !== void 0 && _items$2.fieldName)
1154
+ }),
1155
+ "v-position": type,
1156
+ "v-index": i,
1157
+ "v-index2": index,
1158
+ onClick: selectMoreJoinColumn,
1159
+ children: (_items$3 = items[0]) !== null && _items$3 !== void 0 && _items$3.fieldName ? items.map(function (field) {
1160
+ return field.fieldName;
1161
+ }).join(' || ') : (0, _locale.__)('SqlQueryBuilder.pickTable')
1162
+ })
1035
1163
  }, type + i);
1036
1164
  } else {
1037
1165
  return items === null || items === void 0 ? void 0 : items.map(function (item, index) {
@@ -1102,12 +1230,15 @@ var JoinData = function JoinData(props) {
1102
1230
  className: (0, _classnames["default"])("Sqb-item--content"),
1103
1231
  children: (0, _jsxRuntime.jsxs)("div", {
1104
1232
  className: (0, _classnames["default"])("Sqb-NotebookCell"),
1105
- children: [(0, _jsxRuntime.jsx)("div", {
1106
- className: (0, _classnames["default"])("Sqb-TableName", {
1107
- notSelected: !table1Selected
1108
- }),
1109
- onClick: selectLeftTable,
1110
- children: getTable1Name() || (0, _locale.__)('SqlQueryBuilder.pickTable')
1233
+ children: [(0, _jsxRuntime.jsx)(_itemName["default"], {
1234
+ isError: leftTableIsError(),
1235
+ children: (0, _jsxRuntime.jsx)("div", {
1236
+ className: (0, _classnames["default"])("Sqb-TableName", {
1237
+ notSelected: !table1Selected
1238
+ }),
1239
+ onClick: selectLeftTable,
1240
+ children: getTable1Name() || (0, _locale.__)('SqlQueryBuilder.pickTable')
1241
+ })
1111
1242
  }), (0, _jsxRuntime.jsx)("div", {
1112
1243
  onClick: selectJoin,
1113
1244
  children: meta.joinType === _enum.JoinEnum.left ? (0, _jsxRuntime.jsx)(_icons.LeftJoinIcon, {
@@ -1310,15 +1441,18 @@ var JoinData = function JoinData(props) {
1310
1441
  children: [i == 0 && (0, _jsxRuntime.jsx)("span", {
1311
1442
  className: 'ml-2 mr-4 text-gray-500',
1312
1443
  children: "on"
1313
- }), (0, _jsxRuntime.jsx)("div", {
1314
- className: (0, _classnames["default"])("Sqb-TableName purple-name", {
1315
- notSelected: !v.quotes
1316
- }),
1317
- onClick: function onClick(e) {
1318
- return changeExpression(e, i);
1319
- },
1320
- children: v.quotes || (0, _locale.__)('joinData.selectExpression')
1321
- }, i), (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
1444
+ }), (0, _jsxRuntime.jsx)(_itemName["default"], {
1445
+ isError: (0, _utils.isError)(v, getTableColumns()),
1446
+ children: (0, _jsxRuntime.jsx)("div", {
1447
+ className: (0, _classnames["default"])("Sqb-TableName purple-name", {
1448
+ notSelected: !v.quotes
1449
+ }),
1450
+ onClick: function onClick(e) {
1451
+ return changeExpression(e, i);
1452
+ },
1453
+ children: v.quotes || (0, _locale.__)('joinData.selectExpression')
1454
+ }, i)
1455
+ }), (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
1322
1456
  title: (0, _locale.__)('SqlQueryBuilder.add'),
1323
1457
  children: (0, _jsxRuntime.jsx)(_pandora.Dropdown, {
1324
1458
  trigger: ['click'],
@@ -1404,7 +1538,7 @@ var JoinData = function JoinData(props) {
1404
1538
  })]
1405
1539
  }, i);
1406
1540
  }
1407
- })), ((_meta$table9 = meta.table2) === null || _meta$table9 === void 0 ? void 0 : _meta$table9.name) && ((_meta$table10 = meta.table1) === null || _meta$table10 === void 0 ? void 0 : _meta$table10.name) && (((_meta$expressions2 = meta.expressions) === null || _meta$expressions2 === void 0 ? void 0 : _meta$expressions2.length) || 0) < 1 && (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
1541
+ })), ((_meta$table9 = meta.table2) === null || _meta$table9 === void 0 ? void 0 : _meta$table9.name) && ((_meta$table0 = meta.table1) === null || _meta$table0 === void 0 ? void 0 : _meta$table0.name) && (((_meta$expressions2 = meta.expressions) === null || _meta$expressions2 === void 0 ? void 0 : _meta$expressions2.length) || 0) < 1 && (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
1408
1542
  title: (0, _locale.__)('SqlQueryBuilder.add'),
1409
1543
  children: (0, _jsxRuntime.jsx)(_pandora.Dropdown, {
1410
1544
  trigger: ['click'],
@@ -16,17 +16,21 @@ var _metaIcon = _interopRequireDefault(require("./components/meta-icon"));
16
16
  var _header = _interopRequireDefault(require("./components/header"));
17
17
  var _useProvider = require("../../hooks/use-provider");
18
18
  var _helper = require("../../utils/helper");
19
+ var _itemName = _interopRequireDefault(require("./components/item-name"));
20
+ var _helper2 = require("../../store/helper");
19
21
  var PrevResult = 'Previous results';
20
22
  var PermissionTable = function PermissionTable(props) {
21
23
  var meta = props.meta,
22
24
  groupIndex = props.groupIndex;
23
25
  var store = (0, _useProvider.useStore)();
24
26
  var index = (0, _utils.findIndex)(store.metaList[groupIndex].list, meta);
27
+ var _getHelper = (0, _utils.getHelper)(store.metaList[groupIndex].list, meta),
28
+ prevTables = _getHelper.prevTables;
25
29
  function selectTable(e) {
26
- var _getHelper = (0, _utils.getHelper)(store.metaList[groupIndex].list, meta),
27
- ExistAboveGroupBy = _getHelper.ExistAboveGroupBy,
28
- prevList = _getHelper.prevList,
29
- prevGroupBy = _getHelper.prevGroupBy;
30
+ var _getHelper2 = (0, _utils.getHelper)(store.metaList[groupIndex].list, meta),
31
+ ExistAboveGroupBy = _getHelper2.ExistAboveGroupBy,
32
+ prevList = _getHelper2.prevList,
33
+ prevGroupBy = _getHelper2.prevGroupBy;
30
34
  var data = [];
31
35
  if (ExistAboveGroupBy) {
32
36
  var _data = {
@@ -101,6 +105,13 @@ var PermissionTable = function PermissionTable(props) {
101
105
  });
102
106
  }
103
107
  var selected = Boolean(meta.table.name);
108
+ var tableIsError = function tableIsError() {
109
+ var _prevTables$meta$tabl;
110
+ if (!meta.table.datasourceId && !meta.table.id) {
111
+ return false;
112
+ }
113
+ return !(prevTables !== null && prevTables !== void 0 && (_prevTables$meta$tabl = prevTables[meta.table.datasourceId]) !== null && _prevTables$meta$tabl !== void 0 && _prevTables$meta$tabl[meta.table.id]);
114
+ };
104
115
  return (0, _jsxRuntime.jsx)(_Wrapper["default"], {
105
116
  className: "Sqb-item",
106
117
  children: (0, _jsxRuntime.jsxs)("div", {
@@ -115,12 +126,15 @@ var PermissionTable = function PermissionTable(props) {
115
126
  className: "Sqb-item--content",
116
127
  children: (0, _jsxRuntime.jsx)("div", {
117
128
  className: "Sqb-NotebookCell gray-bg",
118
- children: (0, _jsxRuntime.jsx)("div", {
119
- className: (0, _classnames["default"])("Sqb-TableName", {
120
- notSelected: !selected
121
- }),
122
- onClick: selectTable,
123
- children: selected ? "".concat(meta.table.datasourceName ? "".concat(meta.table.datasourceName, ".") : '').concat(meta.table.name === 'source' ? PrevResult : meta.table.name) : (0, _locale.__)('SqlQueryBuilder.pickPermissionTable')
129
+ children: (0, _jsxRuntime.jsx)(_itemName["default"], {
130
+ isError: tableIsError(),
131
+ children: (0, _jsxRuntime.jsx)("div", {
132
+ className: (0, _classnames["default"])("Sqb-TableName", {
133
+ notSelected: !selected
134
+ }),
135
+ onClick: selectTable,
136
+ children: selected ? "".concat(meta.table.datasourceName ? "".concat(meta.table.datasourceName, ".") : '').concat(meta.table.name === _helper2.SummarizeAlias ? PrevResult : meta.table.name) : (0, _locale.__)('SqlQueryBuilder.pickPermissionTable')
137
+ })
124
138
  })
125
139
  })
126
140
  }), (0, _jsxRuntime.jsx)(_metaIcon["default"], {
@@ -20,6 +20,7 @@ var _Wrapper = _interopRequireDefault(require("./components/Wrapper"));
20
20
  var _metaIcon = _interopRequireDefault(require("./components/meta-icon"));
21
21
  var _header = _interopRequireDefault(require("./components/header"));
22
22
  var _useProvider = require("../../hooks/use-provider");
23
+ var _itemName = _interopRequireDefault(require("./components/item-name"));
23
24
  var Sort = function Sort(props) {
24
25
  var meta = props.meta,
25
26
  groupIndex = props.groupIndex;
@@ -250,20 +251,23 @@ var Sort = function Sort(props) {
250
251
  children: (0, _jsxRuntime.jsxs)("div", {
251
252
  className: (0, _classnames["default"])("Sqb-NotebookCell gray-bg"),
252
253
  children: [sort.map(function (v, i) {
253
- return (0, _jsxRuntime.jsxs)("div", {
254
- className: "Sqb-TableName gray-name",
255
- onClick: function onClick() {
256
- return handleSort(i);
257
- },
258
- children: [v.sort === _enum.SortEnum.asc ? (0, _jsxRuntime.jsx)(_icons.UpArrowIcon, {}) : (0, _jsxRuntime.jsx)(_icons.DownArrowIcon, {}), getName(v.expression), (0, _jsxRuntime.jsx)("span", {
259
- style: {
260
- fontSize: 0
254
+ return (0, _jsxRuntime.jsx)(_itemName["default"], {
255
+ isError: (0, _utils.isError)(v.expression, getColumns()),
256
+ children: (0, _jsxRuntime.jsxs)("div", {
257
+ className: "Sqb-TableName gray-name",
258
+ onClick: function onClick() {
259
+ return handleSort(i);
261
260
  },
262
- onClick: function onClick(e) {
263
- return delSortColumn(e, i);
264
- },
265
- children: (0, _jsxRuntime.jsx)(_icons.CloseIcon, {})
266
- })]
261
+ children: [v.sort === _enum.SortEnum.asc ? (0, _jsxRuntime.jsx)(_icons.UpArrowIcon, {}) : (0, _jsxRuntime.jsx)(_icons.DownArrowIcon, {}), getName(v.expression), (0, _jsxRuntime.jsx)("span", {
262
+ style: {
263
+ fontSize: 0
264
+ },
265
+ onClick: function onClick(e) {
266
+ return delSortColumn(e, i);
267
+ },
268
+ children: (0, _jsxRuntime.jsx)(_icons.CloseIcon, {})
269
+ })]
270
+ }, i)
267
271
  }, i);
268
272
  }), (0, _jsxRuntime.jsx)("div", {
269
273
  className: "Sqb-TableName gray-name",