@gingkoo/pandora-metabase 1.0.26 → 1.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.
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 +7 -7
  9. package/lib/cjs/components/dialog/select-join-column/index.js +4 -0
  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 +206 -80
  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 +7 -7
  41. package/lib/es/components/dialog/select-join-column/index.js +4 -0
  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 +207 -81
  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
  // 子查询未改变不做操作
@@ -810,9 +927,7 @@ var JoinData = function JoinData(props) {
810
927
  newMeta[index].columns = newColumns;
811
928
  initExpressions();
812
929
  // 关联表变了 下面模块全部删除
813
- newMeta = newMeta.filter(function (v, i) {
814
- return i <= index;
815
- });
930
+ // newMeta = newMeta.filter((v: MetaListType, i: number) => i <= index);
816
931
  store.setMeta(newMeta, groupIndex);
817
932
  o.close();
818
933
  } catch (e) {
@@ -831,24 +946,19 @@ var JoinData = function JoinData(props) {
831
946
  var index = (0, _utils.findIndex)(store.metaList[groupIndex].list, meta);
832
947
  var newMeta = store.metaList[groupIndex].list.slice();
833
948
  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 = [];
949
+ // (newMeta[index] as MetaJoin).table2 = {
950
+ // quotes: '',
951
+ // name: '', // 表名
952
+ // name_zh: '', // 表名
953
+ // tableUuid: '',
954
+ // id: '', // 表名
955
+ // alias: '', // 表别名
956
+ // datasourceName: '', // 数据源名
957
+ // datasourceId: '', // 数据源id
958
+ // // groupSql: '', //如果table1 是结果集 那么这个字段 就有值,放结果集的别名
959
+ // };
960
+ // (newMeta[index] as MetaJoin).expressions = [];
961
+ // (newMeta[index] as MetaJoin).subquery = [];
852
962
  store.setMeta(newMeta, groupIndex);
853
963
  };
854
964
  var onChangeTableAlias = function onChangeTableAlias(val) {
@@ -865,22 +975,22 @@ var JoinData = function JoinData(props) {
865
975
  onOk: function () {
866
976
  var _onOk = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
867
977
  var index, newMeta;
868
- return _regenerator["default"].wrap(function _callee$(_context) {
978
+ return _regenerator["default"].wrap(function (_context) {
869
979
  while (1) switch (_context.prev = _context.next) {
870
980
  case 0:
871
981
  if ((0, _utils.isValidSQLAlias)(alias)) {
872
- _context.next = 3;
982
+ _context.next = 1;
873
983
  break;
874
984
  }
875
985
  _pandora.Toast.warning((0, _locale.__)('SqlQueryBuilder.aliasForRules'));
876
986
  return _context.abrupt("return", false);
877
- case 3:
987
+ case 1:
878
988
  index = (0, _utils.findIndex)(store.metaList[groupIndex].list, meta);
879
989
  newMeta = store.metaList[groupIndex].list.slice();
880
990
  newMeta[index].table2.alias = alias;
881
991
  newMeta = (0, _utils.changeTableAlias)(newMeta, newMeta[index].table2);
882
992
  store.setMeta(newMeta, groupIndex);
883
- case 8:
993
+ case 2:
884
994
  case "end":
885
995
  return _context.stop();
886
996
  }
@@ -1017,21 +1127,31 @@ var JoinData = function JoinData(props) {
1017
1127
  return '';
1018
1128
  }
1019
1129
  };
1130
+ var leftTableIsError = function leftTableIsError() {
1131
+ var _prevTables$meta$tabl;
1132
+ if (!meta.table1.datasourceId || !meta.table1.id || meta.table1.datasourceId === _helper2.SummarizeAlias) {
1133
+ return false;
1134
+ }
1135
+ 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]);
1136
+ };
1020
1137
  var renderItem = function renderItem(items, type, i) {
1021
1138
  var _items$;
1022
1139
  if ((items === null || items === void 0 || (_items$ = items[0]) === null || _items$ === void 0 ? void 0 : _items$.type) === _types.AtomsTypeEnum.FIELD) {
1023
1140
  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')
1141
+ return (0, _jsxRuntime.jsx)(_itemName["default"], {
1142
+ isError: (0, _utils.isError)(items, getColumns(type)),
1143
+ children: (0, _jsxRuntime.jsx)("div", {
1144
+ className: (0, _classnames["default"])("Sqb-TableName", {
1145
+ notSelected: !((_items$2 = items[0]) !== null && _items$2 !== void 0 && _items$2.fieldName)
1146
+ }),
1147
+ "v-position": type,
1148
+ "v-index": i,
1149
+ "v-index2": index,
1150
+ onClick: selectMoreJoinColumn,
1151
+ children: (_items$3 = items[0]) !== null && _items$3 !== void 0 && _items$3.fieldName ? items.map(function (field) {
1152
+ return field.fieldName;
1153
+ }).join(' || ') : (0, _locale.__)('SqlQueryBuilder.pickTable')
1154
+ })
1035
1155
  }, type + i);
1036
1156
  } else {
1037
1157
  return items === null || items === void 0 ? void 0 : items.map(function (item, index) {
@@ -1102,12 +1222,15 @@ var JoinData = function JoinData(props) {
1102
1222
  className: (0, _classnames["default"])("Sqb-item--content"),
1103
1223
  children: (0, _jsxRuntime.jsxs)("div", {
1104
1224
  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')
1225
+ children: [(0, _jsxRuntime.jsx)(_itemName["default"], {
1226
+ isError: leftTableIsError(),
1227
+ children: (0, _jsxRuntime.jsx)("div", {
1228
+ className: (0, _classnames["default"])("Sqb-TableName", {
1229
+ notSelected: !table1Selected
1230
+ }),
1231
+ onClick: selectLeftTable,
1232
+ children: getTable1Name() || (0, _locale.__)('SqlQueryBuilder.pickTable')
1233
+ })
1111
1234
  }), (0, _jsxRuntime.jsx)("div", {
1112
1235
  onClick: selectJoin,
1113
1236
  children: meta.joinType === _enum.JoinEnum.left ? (0, _jsxRuntime.jsx)(_icons.LeftJoinIcon, {
@@ -1310,15 +1433,18 @@ var JoinData = function JoinData(props) {
1310
1433
  children: [i == 0 && (0, _jsxRuntime.jsx)("span", {
1311
1434
  className: 'ml-2 mr-4 text-gray-500',
1312
1435
  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, {
1436
+ }), (0, _jsxRuntime.jsx)(_itemName["default"], {
1437
+ isError: (0, _utils.isError)(v, getTableColumns()),
1438
+ children: (0, _jsxRuntime.jsx)("div", {
1439
+ className: (0, _classnames["default"])("Sqb-TableName purple-name", {
1440
+ notSelected: !v.quotes
1441
+ }),
1442
+ onClick: function onClick(e) {
1443
+ return changeExpression(e, i);
1444
+ },
1445
+ children: v.quotes || (0, _locale.__)('joinData.selectExpression')
1446
+ }, i)
1447
+ }), (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
1322
1448
  title: (0, _locale.__)('SqlQueryBuilder.add'),
1323
1449
  children: (0, _jsxRuntime.jsx)(_pandora.Dropdown, {
1324
1450
  trigger: ['click'],
@@ -1404,7 +1530,7 @@ var JoinData = function JoinData(props) {
1404
1530
  })]
1405
1531
  }, i);
1406
1532
  }
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, {
1533
+ })), ((_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
1534
  title: (0, _locale.__)('SqlQueryBuilder.add'),
1409
1535
  children: (0, _jsxRuntime.jsx)(_pandora.Dropdown, {
1410
1536
  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",