@gingkoo/pandora-metabase 1.0.40 → 1.0.41
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.
|
@@ -5,12 +5,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports["default"] = void 0;
|
|
8
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/asyncToGenerator"));
|
|
10
8
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectWithoutProperties"));
|
|
9
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
10
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
|
|
11
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/asyncToGenerator"));
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
12
13
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
|
|
13
14
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
|
+
var _react = require("react");
|
|
14
16
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
15
17
|
var _pandora = require("@gingkoo/pandora");
|
|
16
18
|
var _pandoraIcons = require("@gingkoo/pandora-icons");
|
|
@@ -67,7 +69,7 @@ var menuOperator = operators.map(function (v) {
|
|
|
67
69
|
};
|
|
68
70
|
});
|
|
69
71
|
var JoinData = function JoinData(props) {
|
|
70
|
-
var _meta$subquery, _meta$subquery2, _meta$subquery3, _meta$
|
|
72
|
+
var _meta$subquery, _meta$subquery2, _meta$subquery3, _meta$table4, _meta$table5, _meta$table7, _meta$table8, _meta$table9, _meta$table0, _meta$expressions, _meta$table1, _meta$table10, _meta$expressions2, _store$showMainColumn, _store$showMainColumn2;
|
|
71
73
|
var meta = props.meta,
|
|
72
74
|
groupIndex = props.groupIndex;
|
|
73
75
|
var store = (0, _useProvider.useStore)();
|
|
@@ -81,6 +83,45 @@ var JoinData = function JoinData(props) {
|
|
|
81
83
|
var _getHelper = (0, _utils.getHelper)(store.metaList[groupIndex].list, meta),
|
|
82
84
|
prevTables = _getHelper.prevTables,
|
|
83
85
|
prevGroupBy = _getHelper.prevGroupBy;
|
|
86
|
+
var _useState = (0, _react.useState)(false),
|
|
87
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
88
|
+
isDel = _useState2[0],
|
|
89
|
+
setIsDel = _useState2[1];
|
|
90
|
+
var tableIsDel = /*#__PURE__*/function () {
|
|
91
|
+
var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
92
|
+
var _meta$table;
|
|
93
|
+
var tableName, tables, names;
|
|
94
|
+
return _regenerator["default"].wrap(function (_context) {
|
|
95
|
+
while (1) switch (_context.prev = _context.next) {
|
|
96
|
+
case 0:
|
|
97
|
+
tableName = (_meta$table = meta.table2) === null || _meta$table === void 0 ? void 0 : _meta$table.name;
|
|
98
|
+
_context.next = 1;
|
|
99
|
+
return store === null || store === void 0 ? void 0 : store.fetchDataset(meta.table2.datasourceId);
|
|
100
|
+
case 1:
|
|
101
|
+
tables = _context.sent;
|
|
102
|
+
names = (tables === null || tables === void 0 ? void 0 : tables.map(function (v) {
|
|
103
|
+
return v.name;
|
|
104
|
+
})) || [];
|
|
105
|
+
if (!names.includes(tableName)) {
|
|
106
|
+
setIsDel(true);
|
|
107
|
+
} else {
|
|
108
|
+
setIsDel(false);
|
|
109
|
+
}
|
|
110
|
+
case 2:
|
|
111
|
+
case "end":
|
|
112
|
+
return _context.stop();
|
|
113
|
+
}
|
|
114
|
+
}, _callee);
|
|
115
|
+
}));
|
|
116
|
+
return function tableIsDel() {
|
|
117
|
+
return _ref.apply(this, arguments);
|
|
118
|
+
};
|
|
119
|
+
}();
|
|
120
|
+
(0, _react.useEffect)(function () {
|
|
121
|
+
setTimeout(function () {
|
|
122
|
+
tableIsDel();
|
|
123
|
+
}, 0);
|
|
124
|
+
}, [meta]);
|
|
84
125
|
// const ref = useRef(null);
|
|
85
126
|
// useEffect(() => {
|
|
86
127
|
// let newMetaList = store.metaList[groupIndex].list.slice();
|
|
@@ -520,6 +561,7 @@ var JoinData = function JoinData(props) {
|
|
|
520
561
|
// store.setMeta(newMeta, groupIndex);
|
|
521
562
|
});
|
|
522
563
|
}
|
|
564
|
+
setIsDel(false);
|
|
523
565
|
store.setPopup({
|
|
524
566
|
visible: false
|
|
525
567
|
});
|
|
@@ -933,10 +975,10 @@ var JoinData = function JoinData(props) {
|
|
|
933
975
|
});
|
|
934
976
|
}
|
|
935
977
|
// 修改输入框类型
|
|
936
|
-
function onChangeType(e,
|
|
937
|
-
var
|
|
938
|
-
position =
|
|
939
|
-
_ind =
|
|
978
|
+
function onChangeType(e, _ref2) {
|
|
979
|
+
var _ref2$position = _ref2.position,
|
|
980
|
+
position = _ref2$position === void 0 ? 'rhs' : _ref2$position,
|
|
981
|
+
_ind = _ref2.index;
|
|
940
982
|
var index = (0, _utils.findIndex)(store.metaList[groupIndex].list, meta);
|
|
941
983
|
var newMeta = store.metaList[groupIndex].list.slice();
|
|
942
984
|
store.setPopup({
|
|
@@ -1006,13 +1048,13 @@ var JoinData = function JoinData(props) {
|
|
|
1006
1048
|
})
|
|
1007
1049
|
});
|
|
1008
1050
|
}
|
|
1009
|
-
function onChangeString(val,
|
|
1010
|
-
var
|
|
1011
|
-
position =
|
|
1012
|
-
|
|
1013
|
-
index1 =
|
|
1014
|
-
|
|
1015
|
-
index2 =
|
|
1051
|
+
function onChangeString(val, _ref3) {
|
|
1052
|
+
var _ref3$position = _ref3.position,
|
|
1053
|
+
position = _ref3$position === void 0 ? 'rhs' : _ref3$position,
|
|
1054
|
+
_ref3$index = _ref3.index1,
|
|
1055
|
+
index1 = _ref3$index === void 0 ? 0 : _ref3$index,
|
|
1056
|
+
_ref3$index2 = _ref3.index2,
|
|
1057
|
+
index2 = _ref3$index2 === void 0 ? 0 : _ref3$index2;
|
|
1016
1058
|
// : 'rhs'
|
|
1017
1059
|
var index = (0, _utils.findIndex)(store.metaList[groupIndex].list, meta);
|
|
1018
1060
|
var newMeta = store.metaList[groupIndex].list.slice();
|
|
@@ -1120,17 +1162,17 @@ var JoinData = function JoinData(props) {
|
|
|
1120
1162
|
}
|
|
1121
1163
|
}),
|
|
1122
1164
|
onOk: function () {
|
|
1123
|
-
var _onOk = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function
|
|
1165
|
+
var _onOk = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
1124
1166
|
var index, newMeta;
|
|
1125
|
-
return _regenerator["default"].wrap(function (
|
|
1126
|
-
while (1) switch (
|
|
1167
|
+
return _regenerator["default"].wrap(function (_context2) {
|
|
1168
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
1127
1169
|
case 0:
|
|
1128
1170
|
if ((0, _utils.isValidSQLAlias)(alias)) {
|
|
1129
|
-
|
|
1171
|
+
_context2.next = 1;
|
|
1130
1172
|
break;
|
|
1131
1173
|
}
|
|
1132
1174
|
_pandora.Toast.warning((0, _locale.__)('SqlQueryBuilder.aliasForRules'));
|
|
1133
|
-
return
|
|
1175
|
+
return _context2.abrupt("return", false);
|
|
1134
1176
|
case 1:
|
|
1135
1177
|
index = (0, _utils.findIndex)(store.metaList[groupIndex].list, meta);
|
|
1136
1178
|
newMeta = store.metaList[groupIndex].list.slice();
|
|
@@ -1139,9 +1181,9 @@ var JoinData = function JoinData(props) {
|
|
|
1139
1181
|
store.setMeta(newMeta, groupIndex);
|
|
1140
1182
|
case 2:
|
|
1141
1183
|
case "end":
|
|
1142
|
-
return
|
|
1184
|
+
return _context2.stop();
|
|
1143
1185
|
}
|
|
1144
|
-
},
|
|
1186
|
+
}, _callee2);
|
|
1145
1187
|
}));
|
|
1146
1188
|
function onOk() {
|
|
1147
1189
|
return _onOk.apply(this, arguments);
|
|
@@ -1360,12 +1402,12 @@ var JoinData = function JoinData(props) {
|
|
|
1360
1402
|
}
|
|
1361
1403
|
};
|
|
1362
1404
|
var tableIsError = function tableIsError() {
|
|
1363
|
-
var _store$preProps4, _meta$
|
|
1405
|
+
var _store$preProps4, _meta$table2;
|
|
1364
1406
|
var aliass = ((_store$preProps4 = store.preProps) === null || _store$preProps4 === void 0 || (_store$preProps4 = _store$preProps4.notExistsColumns) === null || _store$preProps4 === void 0 ? void 0 : _store$preProps4.map(function (v) {
|
|
1365
1407
|
return v.alias;
|
|
1366
1408
|
})) || [];
|
|
1367
|
-
var tableAlias = (_meta$
|
|
1368
|
-
if (tableAlias && aliass.includes(tableAlias)) {
|
|
1409
|
+
var tableAlias = (_meta$table2 = meta.table2) === null || _meta$table2 === void 0 ? void 0 : _meta$table2.alias;
|
|
1410
|
+
if (tableAlias && aliass.includes(tableAlias) || isDel) {
|
|
1369
1411
|
return true;
|
|
1370
1412
|
}
|
|
1371
1413
|
return false;
|
|
@@ -1419,48 +1461,60 @@ var JoinData = function JoinData(props) {
|
|
|
1419
1461
|
showSubQuery(meta.subquery);
|
|
1420
1462
|
},
|
|
1421
1463
|
children: [subQuerySelected && (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
|
|
1422
|
-
title: (0, _locale.__)(tableIsError() ? 'SqlQueryBuilder.repeatAlias' : 'SqlQueryBuilder.alias'),
|
|
1464
|
+
title: (0, _locale.__)(tableIsError() ? isDel ? 'metabase.verify' : 'SqlQueryBuilder.repeatAlias' : 'SqlQueryBuilder.alias'),
|
|
1423
1465
|
children: (0, _jsxRuntime.jsx)(_pandora.Button, {
|
|
1424
1466
|
danger: tableIsError(),
|
|
1425
1467
|
className: (0, _classnames["default"])(':Sqb-TableName-as', {
|
|
1426
1468
|
isError: tableIsError()
|
|
1427
1469
|
}),
|
|
1428
1470
|
shape: 'circle',
|
|
1471
|
+
style: isDel ? {
|
|
1472
|
+
fontSize: 18,
|
|
1473
|
+
backgroundColor: '#fff',
|
|
1474
|
+
width: 'auto',
|
|
1475
|
+
height: 'auto'
|
|
1476
|
+
} : {},
|
|
1429
1477
|
iconOnly: true,
|
|
1430
|
-
primary:
|
|
1431
|
-
icon: 'As',
|
|
1478
|
+
primary: !isDel,
|
|
1479
|
+
icon: isDel ? (0, _jsxRuntime.jsx)(_pandoraIcons.ExclamationCircleFill, {}) : 'As',
|
|
1432
1480
|
size: 'small',
|
|
1433
1481
|
onClick: function onClick(e) {
|
|
1434
|
-
var _meta$
|
|
1482
|
+
var _meta$table3;
|
|
1435
1483
|
e.stopPropagation();
|
|
1436
|
-
onChangeTableAlias(((_meta$
|
|
1484
|
+
onChangeTableAlias(((_meta$table3 = meta.table2) === null || _meta$table3 === void 0 ? void 0 : _meta$table3.alias) || '');
|
|
1437
1485
|
}
|
|
1438
1486
|
})
|
|
1439
|
-
}), subQuerySelected ? "".concat(((_meta$subquery2 = meta.subquery) === null || _meta$subquery2 === void 0 ? void 0 : _meta$subquery2[0]).table.datasourceName, ".").concat(((_meta$subquery3 = meta.subquery) === null || _meta$subquery3 === void 0 ? void 0 : _meta$subquery3[0]).table.name, " ").concat((_meta$
|
|
1487
|
+
}), subQuerySelected ? "".concat(((_meta$subquery2 = meta.subquery) === null || _meta$subquery2 === void 0 ? void 0 : _meta$subquery2[0]).table.datasourceName, ".").concat(((_meta$subquery3 = meta.subquery) === null || _meta$subquery3 === void 0 ? void 0 : _meta$subquery3[0]).table.name, " ").concat((_meta$table4 = meta.table2) !== null && _meta$table4 !== void 0 && _meta$table4.alias ? "as ".concat((_meta$table5 = meta.table2) === null || _meta$table5 === void 0 ? void 0 : _meta$table5.alias) : '', " ") : (0, _locale.__)('SqlQueryBuilder.setSubQuery')]
|
|
1440
1488
|
}) : (0, _jsxRuntime.jsxs)("div", {
|
|
1441
1489
|
className: (0, _classnames["default"])("Sqb-TableName", {
|
|
1442
1490
|
notSelected: !table2Selected
|
|
1443
1491
|
}),
|
|
1444
1492
|
onClick: selectTable,
|
|
1445
1493
|
children: [table2Selected && (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
|
|
1446
|
-
title: (0, _locale.__)(tableIsError() ? 'SqlQueryBuilder.repeatAlias' : 'SqlQueryBuilder.alias'),
|
|
1494
|
+
title: (0, _locale.__)(tableIsError() ? isDel ? 'metabase.verify' : 'SqlQueryBuilder.repeatAlias' : 'SqlQueryBuilder.alias'),
|
|
1447
1495
|
children: (0, _jsxRuntime.jsx)(_pandora.Button, {
|
|
1448
1496
|
danger: tableIsError(),
|
|
1449
1497
|
className: (0, _classnames["default"])(':Sqb-TableName-as', {
|
|
1450
1498
|
isError: tableIsError()
|
|
1451
1499
|
}),
|
|
1452
1500
|
shape: 'circle',
|
|
1501
|
+
style: isDel ? {
|
|
1502
|
+
fontSize: 18,
|
|
1503
|
+
backgroundColor: '#fff',
|
|
1504
|
+
width: 'auto',
|
|
1505
|
+
height: 'auto'
|
|
1506
|
+
} : {},
|
|
1453
1507
|
iconOnly: true,
|
|
1454
|
-
primary:
|
|
1455
|
-
icon: 'As',
|
|
1508
|
+
primary: !isDel,
|
|
1509
|
+
icon: isDel ? (0, _jsxRuntime.jsx)(_pandoraIcons.ExclamationCircleFill, {}) : 'As',
|
|
1456
1510
|
size: 'small',
|
|
1457
1511
|
onClick: function onClick(e) {
|
|
1458
|
-
var _meta$
|
|
1512
|
+
var _meta$table6;
|
|
1459
1513
|
e.stopPropagation();
|
|
1460
|
-
onChangeTableAlias(((_meta$
|
|
1514
|
+
onChangeTableAlias(((_meta$table6 = meta.table2) === null || _meta$table6 === void 0 ? void 0 : _meta$table6.alias) || '');
|
|
1461
1515
|
}
|
|
1462
1516
|
})
|
|
1463
|
-
}), table2Selected ? "".concat(meta.table2.datasourceName, ".").concat(meta.table2.name, " ").concat((_meta$
|
|
1517
|
+
}), table2Selected ? "".concat(meta.table2.datasourceName, ".").concat(meta.table2.name, " ").concat((_meta$table7 = meta.table2) !== null && _meta$table7 !== void 0 && _meta$table7.alias ? "as ".concat((_meta$table8 = meta.table2) === null || _meta$table8 === void 0 ? void 0 : _meta$table8.alias) : '') : (0, _locale.__)('SqlQueryBuilder.pickTable')]
|
|
1464
1518
|
}), store.showSubquery && (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
|
|
1465
1519
|
title: (0, _locale.__)('SqlQueryBuilder.switchSubQuery'),
|
|
1466
1520
|
children: (0, _jsxRuntime.jsx)(_pandora.Button, {
|
|
@@ -1471,7 +1525,7 @@ var JoinData = function JoinData(props) {
|
|
|
1471
1525
|
icon: (0, _jsxRuntime.jsx)(_pandoraIcons.RelatedWork, {}),
|
|
1472
1526
|
onClick: switchSubQuery
|
|
1473
1527
|
})
|
|
1474
|
-
}), ((_meta$
|
|
1528
|
+
}), ((_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$expressions = meta.expressions) === null || _meta$expressions === void 0 ? void 0 : _meta$expressions.map(function (v, i) {
|
|
1475
1529
|
if (v.type === _types.AtomsTypeEnum.JOIN_DEFAULT) {
|
|
1476
1530
|
return (0, _jsxRuntime.jsxs)("div", {
|
|
1477
1531
|
className: (0, _classnames["default"])("Sqb-where block"),
|
|
@@ -1698,7 +1752,7 @@ var JoinData = function JoinData(props) {
|
|
|
1698
1752
|
})]
|
|
1699
1753
|
}, i);
|
|
1700
1754
|
}
|
|
1701
|
-
})), ((_meta$
|
|
1755
|
+
})), ((_meta$table1 = meta.table2) === null || _meta$table1 === void 0 ? void 0 : _meta$table1.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, {
|
|
1702
1756
|
title: (0, _locale.__)('SqlQueryBuilder.add'),
|
|
1703
1757
|
children: (0, _jsxRuntime.jsx)(_pandora.Dropdown, {
|
|
1704
1758
|
trigger: ['click'],
|
|
@@ -8,9 +8,11 @@ exports["default"] = void 0;
|
|
|
8
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
|
|
9
9
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectWithoutProperties"));
|
|
10
10
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/asyncToGenerator"));
|
|
12
11
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
|
|
12
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/asyncToGenerator"));
|
|
13
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
13
14
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
|
+
var _react = require("react");
|
|
14
16
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
15
17
|
var _locale = require("../../locale");
|
|
16
18
|
var _pandora = require("@gingkoo/pandora");
|
|
@@ -27,12 +29,51 @@ var _header = _interopRequireDefault(require("./components/header"));
|
|
|
27
29
|
var _useProvider = require("../../hooks/use-provider");
|
|
28
30
|
var _excluded = ["subToolbar", "notExistsColumns", "isExit", "toolbar"];
|
|
29
31
|
var TableData = function TableData(props) {
|
|
30
|
-
var _meta$subquery, _meta$subquery2, _meta$subquery3, _meta$
|
|
32
|
+
var _meta$subquery, _meta$subquery2, _meta$subquery3, _meta$table4, _meta$table5, _meta$table7, _meta$table8, _store$showMainColumn;
|
|
31
33
|
var meta = props.meta,
|
|
32
34
|
groupIndex = props.groupIndex;
|
|
33
35
|
var store = (0, _useProvider.useStore)();
|
|
34
36
|
var selected = Boolean(meta.table.name);
|
|
35
37
|
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);
|
|
38
|
+
var _useState = (0, _react.useState)(false),
|
|
39
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
40
|
+
isDel = _useState2[0],
|
|
41
|
+
setIsDel = _useState2[1];
|
|
42
|
+
var tableIsDel = /*#__PURE__*/function () {
|
|
43
|
+
var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
44
|
+
var _meta$table;
|
|
45
|
+
var tableName, tables, names;
|
|
46
|
+
return _regenerator["default"].wrap(function (_context) {
|
|
47
|
+
while (1) switch (_context.prev = _context.next) {
|
|
48
|
+
case 0:
|
|
49
|
+
tableName = (_meta$table = meta.table) === null || _meta$table === void 0 ? void 0 : _meta$table.name;
|
|
50
|
+
_context.next = 1;
|
|
51
|
+
return store === null || store === void 0 ? void 0 : store.fetchDataset(meta.table.datasourceId);
|
|
52
|
+
case 1:
|
|
53
|
+
tables = _context.sent;
|
|
54
|
+
names = (tables === null || tables === void 0 ? void 0 : tables.map(function (v) {
|
|
55
|
+
return v.name;
|
|
56
|
+
})) || [];
|
|
57
|
+
if (!names.includes(tableName)) {
|
|
58
|
+
setIsDel(true);
|
|
59
|
+
} else {
|
|
60
|
+
setIsDel(false);
|
|
61
|
+
}
|
|
62
|
+
case 2:
|
|
63
|
+
case "end":
|
|
64
|
+
return _context.stop();
|
|
65
|
+
}
|
|
66
|
+
}, _callee);
|
|
67
|
+
}));
|
|
68
|
+
return function tableIsDel() {
|
|
69
|
+
return _ref.apply(this, arguments);
|
|
70
|
+
};
|
|
71
|
+
}();
|
|
72
|
+
(0, _react.useEffect)(function () {
|
|
73
|
+
setTimeout(function () {
|
|
74
|
+
tableIsDel();
|
|
75
|
+
}, 0);
|
|
76
|
+
}, [meta]);
|
|
36
77
|
function selectTable(e) {
|
|
37
78
|
!meta.readonly && store.setPopup({
|
|
38
79
|
visible: true,
|
|
@@ -60,6 +101,7 @@ var TableData = function TableData(props) {
|
|
|
60
101
|
store.setPopup({
|
|
61
102
|
visible: false
|
|
62
103
|
});
|
|
104
|
+
setIsDel(false);
|
|
63
105
|
}
|
|
64
106
|
})
|
|
65
107
|
});
|
|
@@ -93,17 +135,17 @@ var TableData = function TableData(props) {
|
|
|
93
135
|
}
|
|
94
136
|
}),
|
|
95
137
|
onOk: function () {
|
|
96
|
-
var _onOk = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function
|
|
138
|
+
var _onOk = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
97
139
|
var newMetaList;
|
|
98
|
-
return _regenerator["default"].wrap(function (
|
|
99
|
-
while (1) switch (
|
|
140
|
+
return _regenerator["default"].wrap(function (_context2) {
|
|
141
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
100
142
|
case 0:
|
|
101
143
|
if ((0, _utils.isValidSQLAlias)(alias)) {
|
|
102
|
-
|
|
144
|
+
_context2.next = 1;
|
|
103
145
|
break;
|
|
104
146
|
}
|
|
105
147
|
_pandora.Toast.warning((0, _locale.__)('SqlQueryBuilder.aliasForRules'));
|
|
106
|
-
return
|
|
148
|
+
return _context2.abrupt("return", false);
|
|
107
149
|
case 1:
|
|
108
150
|
newMetaList = store.metaList[groupIndex].list.slice(); // @ts-ignore
|
|
109
151
|
newMetaList[0].table.alias = alias;
|
|
@@ -111,9 +153,9 @@ var TableData = function TableData(props) {
|
|
|
111
153
|
store.setMeta(newMetaList, groupIndex);
|
|
112
154
|
case 2:
|
|
113
155
|
case "end":
|
|
114
|
-
return
|
|
156
|
+
return _context2.stop();
|
|
115
157
|
}
|
|
116
|
-
},
|
|
158
|
+
}, _callee2);
|
|
117
159
|
}));
|
|
118
160
|
function onOk() {
|
|
119
161
|
return _onOk.apply(this, arguments);
|
|
@@ -214,12 +256,12 @@ var TableData = function TableData(props) {
|
|
|
214
256
|
store.setMeta(newMetaList, groupIndex);
|
|
215
257
|
};
|
|
216
258
|
var tableIsError = function tableIsError() {
|
|
217
|
-
var _store$preProps3, _meta$
|
|
259
|
+
var _store$preProps3, _meta$table2;
|
|
218
260
|
var aliass = ((_store$preProps3 = store.preProps) === null || _store$preProps3 === void 0 || (_store$preProps3 = _store$preProps3.notExistsColumns) === null || _store$preProps3 === void 0 ? void 0 : _store$preProps3.map(function (v) {
|
|
219
261
|
return v.alias;
|
|
220
262
|
})) || [];
|
|
221
|
-
var tableAlias = (_meta$
|
|
222
|
-
if (tableAlias && aliass.includes(tableAlias)) {
|
|
263
|
+
var tableAlias = (_meta$table2 = meta.table) === null || _meta$table2 === void 0 ? void 0 : _meta$table2.alias;
|
|
264
|
+
if (tableAlias && aliass.includes(tableAlias) || isDel) {
|
|
223
265
|
return true;
|
|
224
266
|
}
|
|
225
267
|
return false;
|
|
@@ -242,48 +284,60 @@ var TableData = function TableData(props) {
|
|
|
242
284
|
showSubQuery(meta.subquery);
|
|
243
285
|
},
|
|
244
286
|
children: [subQuerySelected && (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
|
|
245
|
-
title: (0, _locale.__)(tableIsError() ? 'SqlQueryBuilder.repeatAlias' : 'SqlQueryBuilder.alias'),
|
|
287
|
+
title: (0, _locale.__)(tableIsError() ? isDel ? 'metabase.verify' : 'SqlQueryBuilder.repeatAlias' : 'SqlQueryBuilder.alias'),
|
|
246
288
|
children: (0, _jsxRuntime.jsx)(_pandora.Button, {
|
|
247
289
|
danger: tableIsError(),
|
|
248
290
|
className: (0, _classnames["default"])(':Sqb-TableName-as', {
|
|
249
291
|
isError: tableIsError()
|
|
250
292
|
}),
|
|
251
293
|
shape: 'circle',
|
|
294
|
+
style: isDel ? {
|
|
295
|
+
fontSize: 18,
|
|
296
|
+
backgroundColor: '#fff',
|
|
297
|
+
width: 'auto',
|
|
298
|
+
height: 'auto'
|
|
299
|
+
} : {},
|
|
252
300
|
iconOnly: true,
|
|
253
|
-
primary:
|
|
254
|
-
icon: 'As',
|
|
301
|
+
primary: !isDel,
|
|
302
|
+
icon: isDel ? (0, _jsxRuntime.jsx)(_pandoraIcons.ExclamationCircleFill, {}) : 'As',
|
|
255
303
|
size: 'small',
|
|
256
304
|
onClick: function onClick(e) {
|
|
257
|
-
var _meta$
|
|
305
|
+
var _meta$table3;
|
|
258
306
|
e.stopPropagation();
|
|
259
|
-
onChangeTableAlias(((_meta$
|
|
307
|
+
onChangeTableAlias(((_meta$table3 = meta.table) === null || _meta$table3 === void 0 ? void 0 : _meta$table3.alias) || '');
|
|
260
308
|
}
|
|
261
309
|
})
|
|
262
|
-
}), subQuerySelected ? "".concat(((_meta$subquery2 = meta.subquery) === null || _meta$subquery2 === void 0 ? void 0 : _meta$subquery2[0]).table.datasourceName, ".").concat(((_meta$subquery3 = meta.subquery) === null || _meta$subquery3 === void 0 ? void 0 : _meta$subquery3[0]).table.name, " ").concat((_meta$
|
|
310
|
+
}), subQuerySelected ? "".concat(((_meta$subquery2 = meta.subquery) === null || _meta$subquery2 === void 0 ? void 0 : _meta$subquery2[0]).table.datasourceName, ".").concat(((_meta$subquery3 = meta.subquery) === null || _meta$subquery3 === void 0 ? void 0 : _meta$subquery3[0]).table.name, " ").concat((_meta$table4 = meta.table) !== null && _meta$table4 !== void 0 && _meta$table4.alias ? "as ".concat((_meta$table5 = meta.table) === null || _meta$table5 === void 0 ? void 0 : _meta$table5.alias) : '', " ") : (0, _locale.__)('SqlQueryBuilder.setSubQuery')]
|
|
263
311
|
}) : (0, _jsxRuntime.jsxs)("div", {
|
|
264
312
|
className: (0, _classnames["default"])("Sqb-TableName", {
|
|
265
313
|
notSelected: !selected
|
|
266
314
|
}),
|
|
267
315
|
onClick: selectTable,
|
|
268
316
|
children: [selected && (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
|
|
269
|
-
title: (0, _locale.__)(tableIsError() ? 'SqlQueryBuilder.repeatAlias' : 'SqlQueryBuilder.alias'),
|
|
317
|
+
title: (0, _locale.__)(tableIsError() ? isDel ? 'metabase.verify' : 'SqlQueryBuilder.repeatAlias' : 'SqlQueryBuilder.alias'),
|
|
270
318
|
children: (0, _jsxRuntime.jsx)(_pandora.Button, {
|
|
271
319
|
danger: tableIsError(),
|
|
272
320
|
className: (0, _classnames["default"])(':Sqb-TableName-as', {
|
|
273
321
|
isError: tableIsError()
|
|
274
322
|
}),
|
|
275
323
|
shape: 'circle',
|
|
324
|
+
style: isDel ? {
|
|
325
|
+
fontSize: 18,
|
|
326
|
+
backgroundColor: '#fff',
|
|
327
|
+
width: 'auto',
|
|
328
|
+
height: 'auto'
|
|
329
|
+
} : {},
|
|
276
330
|
iconOnly: true,
|
|
277
|
-
primary:
|
|
278
|
-
icon: 'As',
|
|
331
|
+
primary: !isDel,
|
|
332
|
+
icon: isDel ? (0, _jsxRuntime.jsx)(_pandoraIcons.ExclamationCircleFill, {}) : 'As',
|
|
279
333
|
size: 'small',
|
|
280
334
|
onClick: function onClick(e) {
|
|
281
|
-
var _meta$
|
|
335
|
+
var _meta$table6;
|
|
282
336
|
e.stopPropagation();
|
|
283
|
-
onChangeTableAlias(((_meta$
|
|
337
|
+
onChangeTableAlias(((_meta$table6 = meta.table) === null || _meta$table6 === void 0 ? void 0 : _meta$table6.alias) || '');
|
|
284
338
|
}
|
|
285
339
|
})
|
|
286
|
-
}), selected ? "".concat(meta.table.datasourceName, ".").concat(meta.table.name, " ").concat((_meta$
|
|
340
|
+
}), selected ? "".concat(meta.table.datasourceName, ".").concat(meta.table.name, " ").concat((_meta$table7 = meta.table) !== null && _meta$table7 !== void 0 && _meta$table7.alias ? "as ".concat((_meta$table8 = meta.table) === null || _meta$table8 === void 0 ? void 0 : _meta$table8.alias) : '') : (0, _locale.__)('SqlQueryBuilder.pickTable')]
|
|
287
341
|
}), store.showSubquery && (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
|
|
288
342
|
title: (0, _locale.__)('SqlQueryBuilder.switchSubQuery'),
|
|
289
343
|
children: (0, _jsxRuntime.jsx)(_pandora.Button, {
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
2
1
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
3
2
|
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
3
|
+
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
4
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
4
5
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
5
6
|
var _excluded = ["subToolbar", "notExistsColumns", "isExit", "toolbar"];
|
|
6
7
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
7
8
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
|
+
import { useEffect, useState } from 'react';
|
|
8
10
|
import cx from 'classnames';
|
|
9
11
|
import { Button, Tooltip, Input, Modal2, Modal, Toast, Dropdown, InputNumber } from '@gingkoo/pandora';
|
|
10
12
|
import { FfPlus, FfLine, Repeat, RelatedWork } from '@gingkoo/pandora-icons';
|
|
@@ -25,6 +27,7 @@ import Header from './components/header';
|
|
|
25
27
|
import SelectList from '../dialog/select-list';
|
|
26
28
|
import { LeftJoinIcon, InnerJoinIcon } from '../icons';
|
|
27
29
|
import { SelectTable, SelectJoin, SelectColumnMultiple, SelectColumn, Expression, SelectPermissionTable, FormulaList, getTemplateItem } from '../dialog';
|
|
30
|
+
import { ExclamationCircleFill } from '@gingkoo/pandora-icons';
|
|
28
31
|
import { useStore } from '../../hooks/use-provider';
|
|
29
32
|
var PrevResult = 'Previous results';
|
|
30
33
|
var operators = ['AND', 'OR', '(', ')', ',', '+', '-', '*', '/', '!=', '<=', '>=', '<', '>', '='];
|
|
@@ -61,7 +64,7 @@ var menuOperator = operators.map(function (v) {
|
|
|
61
64
|
};
|
|
62
65
|
});
|
|
63
66
|
var JoinData = function JoinData(props) {
|
|
64
|
-
var _meta$subquery, _meta$subquery2, _meta$subquery3, _meta$
|
|
67
|
+
var _meta$subquery, _meta$subquery2, _meta$subquery3, _meta$table4, _meta$table5, _meta$table7, _meta$table8, _meta$table9, _meta$table0, _meta$expressions, _meta$table1, _meta$table10, _meta$expressions2, _store$showMainColumn, _store$showMainColumn2;
|
|
65
68
|
var meta = props.meta,
|
|
66
69
|
groupIndex = props.groupIndex;
|
|
67
70
|
var store = useStore();
|
|
@@ -75,6 +78,45 @@ var JoinData = function JoinData(props) {
|
|
|
75
78
|
var _getHelper = getHelper(store.metaList[groupIndex].list, meta),
|
|
76
79
|
prevTables = _getHelper.prevTables,
|
|
77
80
|
prevGroupBy = _getHelper.prevGroupBy;
|
|
81
|
+
var _useState = useState(false),
|
|
82
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
83
|
+
isDel = _useState2[0],
|
|
84
|
+
setIsDel = _useState2[1];
|
|
85
|
+
var tableIsDel = /*#__PURE__*/function () {
|
|
86
|
+
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
87
|
+
var _meta$table;
|
|
88
|
+
var tableName, tables, names;
|
|
89
|
+
return _regeneratorRuntime.wrap(function (_context) {
|
|
90
|
+
while (1) switch (_context.prev = _context.next) {
|
|
91
|
+
case 0:
|
|
92
|
+
tableName = (_meta$table = meta.table2) === null || _meta$table === void 0 ? void 0 : _meta$table.name;
|
|
93
|
+
_context.next = 1;
|
|
94
|
+
return store === null || store === void 0 ? void 0 : store.fetchDataset(meta.table2.datasourceId);
|
|
95
|
+
case 1:
|
|
96
|
+
tables = _context.sent;
|
|
97
|
+
names = (tables === null || tables === void 0 ? void 0 : tables.map(function (v) {
|
|
98
|
+
return v.name;
|
|
99
|
+
})) || [];
|
|
100
|
+
if (!names.includes(tableName)) {
|
|
101
|
+
setIsDel(true);
|
|
102
|
+
} else {
|
|
103
|
+
setIsDel(false);
|
|
104
|
+
}
|
|
105
|
+
case 2:
|
|
106
|
+
case "end":
|
|
107
|
+
return _context.stop();
|
|
108
|
+
}
|
|
109
|
+
}, _callee);
|
|
110
|
+
}));
|
|
111
|
+
return function tableIsDel() {
|
|
112
|
+
return _ref.apply(this, arguments);
|
|
113
|
+
};
|
|
114
|
+
}();
|
|
115
|
+
useEffect(function () {
|
|
116
|
+
setTimeout(function () {
|
|
117
|
+
tableIsDel();
|
|
118
|
+
}, 0);
|
|
119
|
+
}, [meta]);
|
|
78
120
|
// const ref = useRef(null);
|
|
79
121
|
// useEffect(() => {
|
|
80
122
|
// let newMetaList = store.metaList[groupIndex].list.slice();
|
|
@@ -514,6 +556,7 @@ var JoinData = function JoinData(props) {
|
|
|
514
556
|
// store.setMeta(newMeta, groupIndex);
|
|
515
557
|
});
|
|
516
558
|
}
|
|
559
|
+
setIsDel(false);
|
|
517
560
|
store.setPopup({
|
|
518
561
|
visible: false
|
|
519
562
|
});
|
|
@@ -927,10 +970,10 @@ var JoinData = function JoinData(props) {
|
|
|
927
970
|
});
|
|
928
971
|
}
|
|
929
972
|
// 修改输入框类型
|
|
930
|
-
function onChangeType(e,
|
|
931
|
-
var
|
|
932
|
-
position =
|
|
933
|
-
_ind =
|
|
973
|
+
function onChangeType(e, _ref2) {
|
|
974
|
+
var _ref2$position = _ref2.position,
|
|
975
|
+
position = _ref2$position === void 0 ? 'rhs' : _ref2$position,
|
|
976
|
+
_ind = _ref2.index;
|
|
934
977
|
var index = findIndex(store.metaList[groupIndex].list, meta);
|
|
935
978
|
var newMeta = store.metaList[groupIndex].list.slice();
|
|
936
979
|
store.setPopup({
|
|
@@ -1000,13 +1043,13 @@ var JoinData = function JoinData(props) {
|
|
|
1000
1043
|
})
|
|
1001
1044
|
});
|
|
1002
1045
|
}
|
|
1003
|
-
function onChangeString(val,
|
|
1004
|
-
var
|
|
1005
|
-
position =
|
|
1006
|
-
|
|
1007
|
-
index1 =
|
|
1008
|
-
|
|
1009
|
-
index2 =
|
|
1046
|
+
function onChangeString(val, _ref3) {
|
|
1047
|
+
var _ref3$position = _ref3.position,
|
|
1048
|
+
position = _ref3$position === void 0 ? 'rhs' : _ref3$position,
|
|
1049
|
+
_ref3$index = _ref3.index1,
|
|
1050
|
+
index1 = _ref3$index === void 0 ? 0 : _ref3$index,
|
|
1051
|
+
_ref3$index2 = _ref3.index2,
|
|
1052
|
+
index2 = _ref3$index2 === void 0 ? 0 : _ref3$index2;
|
|
1010
1053
|
// : 'rhs'
|
|
1011
1054
|
var index = findIndex(store.metaList[groupIndex].list, meta);
|
|
1012
1055
|
var newMeta = store.metaList[groupIndex].list.slice();
|
|
@@ -1114,17 +1157,17 @@ var JoinData = function JoinData(props) {
|
|
|
1114
1157
|
}
|
|
1115
1158
|
}),
|
|
1116
1159
|
onOk: function () {
|
|
1117
|
-
var _onOk = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function
|
|
1160
|
+
var _onOk = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
1118
1161
|
var index, newMeta;
|
|
1119
|
-
return _regeneratorRuntime.wrap(function (
|
|
1120
|
-
while (1) switch (
|
|
1162
|
+
return _regeneratorRuntime.wrap(function (_context2) {
|
|
1163
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
1121
1164
|
case 0:
|
|
1122
1165
|
if (isValidSQLAlias(alias)) {
|
|
1123
|
-
|
|
1166
|
+
_context2.next = 1;
|
|
1124
1167
|
break;
|
|
1125
1168
|
}
|
|
1126
1169
|
Toast.warning(__('SqlQueryBuilder.aliasForRules'));
|
|
1127
|
-
return
|
|
1170
|
+
return _context2.abrupt("return", false);
|
|
1128
1171
|
case 1:
|
|
1129
1172
|
index = findIndex(store.metaList[groupIndex].list, meta);
|
|
1130
1173
|
newMeta = store.metaList[groupIndex].list.slice();
|
|
@@ -1133,9 +1176,9 @@ var JoinData = function JoinData(props) {
|
|
|
1133
1176
|
store.setMeta(newMeta, groupIndex);
|
|
1134
1177
|
case 2:
|
|
1135
1178
|
case "end":
|
|
1136
|
-
return
|
|
1179
|
+
return _context2.stop();
|
|
1137
1180
|
}
|
|
1138
|
-
},
|
|
1181
|
+
}, _callee2);
|
|
1139
1182
|
}));
|
|
1140
1183
|
function onOk() {
|
|
1141
1184
|
return _onOk.apply(this, arguments);
|
|
@@ -1354,12 +1397,12 @@ var JoinData = function JoinData(props) {
|
|
|
1354
1397
|
}
|
|
1355
1398
|
};
|
|
1356
1399
|
var tableIsError = function tableIsError() {
|
|
1357
|
-
var _store$preProps4, _meta$
|
|
1400
|
+
var _store$preProps4, _meta$table2;
|
|
1358
1401
|
var aliass = ((_store$preProps4 = store.preProps) === null || _store$preProps4 === void 0 || (_store$preProps4 = _store$preProps4.notExistsColumns) === null || _store$preProps4 === void 0 ? void 0 : _store$preProps4.map(function (v) {
|
|
1359
1402
|
return v.alias;
|
|
1360
1403
|
})) || [];
|
|
1361
|
-
var tableAlias = (_meta$
|
|
1362
|
-
if (tableAlias && aliass.includes(tableAlias)) {
|
|
1404
|
+
var tableAlias = (_meta$table2 = meta.table2) === null || _meta$table2 === void 0 ? void 0 : _meta$table2.alias;
|
|
1405
|
+
if (tableAlias && aliass.includes(tableAlias) || isDel) {
|
|
1363
1406
|
return true;
|
|
1364
1407
|
}
|
|
1365
1408
|
return false;
|
|
@@ -1413,48 +1456,60 @@ var JoinData = function JoinData(props) {
|
|
|
1413
1456
|
showSubQuery(meta.subquery);
|
|
1414
1457
|
},
|
|
1415
1458
|
children: [subQuerySelected && _jsx(Tooltip, {
|
|
1416
|
-
title: __(tableIsError() ? 'SqlQueryBuilder.repeatAlias' : 'SqlQueryBuilder.alias'),
|
|
1459
|
+
title: __(tableIsError() ? isDel ? 'metabase.verify' : 'SqlQueryBuilder.repeatAlias' : 'SqlQueryBuilder.alias'),
|
|
1417
1460
|
children: _jsx(Button, {
|
|
1418
1461
|
danger: tableIsError(),
|
|
1419
1462
|
className: cx(':Sqb-TableName-as', {
|
|
1420
1463
|
isError: tableIsError()
|
|
1421
1464
|
}),
|
|
1422
1465
|
shape: 'circle',
|
|
1466
|
+
style: isDel ? {
|
|
1467
|
+
fontSize: 18,
|
|
1468
|
+
backgroundColor: '#fff',
|
|
1469
|
+
width: 'auto',
|
|
1470
|
+
height: 'auto'
|
|
1471
|
+
} : {},
|
|
1423
1472
|
iconOnly: true,
|
|
1424
|
-
primary:
|
|
1425
|
-
icon: 'As',
|
|
1473
|
+
primary: !isDel,
|
|
1474
|
+
icon: isDel ? _jsx(ExclamationCircleFill, {}) : 'As',
|
|
1426
1475
|
size: 'small',
|
|
1427
1476
|
onClick: function onClick(e) {
|
|
1428
|
-
var _meta$
|
|
1477
|
+
var _meta$table3;
|
|
1429
1478
|
e.stopPropagation();
|
|
1430
|
-
onChangeTableAlias(((_meta$
|
|
1479
|
+
onChangeTableAlias(((_meta$table3 = meta.table2) === null || _meta$table3 === void 0 ? void 0 : _meta$table3.alias) || '');
|
|
1431
1480
|
}
|
|
1432
1481
|
})
|
|
1433
|
-
}), subQuerySelected ? "".concat(((_meta$subquery2 = meta.subquery) === null || _meta$subquery2 === void 0 ? void 0 : _meta$subquery2[0]).table.datasourceName, ".").concat(((_meta$subquery3 = meta.subquery) === null || _meta$subquery3 === void 0 ? void 0 : _meta$subquery3[0]).table.name, " ").concat((_meta$
|
|
1482
|
+
}), subQuerySelected ? "".concat(((_meta$subquery2 = meta.subquery) === null || _meta$subquery2 === void 0 ? void 0 : _meta$subquery2[0]).table.datasourceName, ".").concat(((_meta$subquery3 = meta.subquery) === null || _meta$subquery3 === void 0 ? void 0 : _meta$subquery3[0]).table.name, " ").concat((_meta$table4 = meta.table2) !== null && _meta$table4 !== void 0 && _meta$table4.alias ? "as ".concat((_meta$table5 = meta.table2) === null || _meta$table5 === void 0 ? void 0 : _meta$table5.alias) : '', " ") : __('SqlQueryBuilder.setSubQuery')]
|
|
1434
1483
|
}) : _jsxs("div", {
|
|
1435
1484
|
className: cx("Sqb-TableName", {
|
|
1436
1485
|
notSelected: !table2Selected
|
|
1437
1486
|
}),
|
|
1438
1487
|
onClick: selectTable,
|
|
1439
1488
|
children: [table2Selected && _jsx(Tooltip, {
|
|
1440
|
-
title: __(tableIsError() ? 'SqlQueryBuilder.repeatAlias' : 'SqlQueryBuilder.alias'),
|
|
1489
|
+
title: __(tableIsError() ? isDel ? 'metabase.verify' : 'SqlQueryBuilder.repeatAlias' : 'SqlQueryBuilder.alias'),
|
|
1441
1490
|
children: _jsx(Button, {
|
|
1442
1491
|
danger: tableIsError(),
|
|
1443
1492
|
className: cx(':Sqb-TableName-as', {
|
|
1444
1493
|
isError: tableIsError()
|
|
1445
1494
|
}),
|
|
1446
1495
|
shape: 'circle',
|
|
1496
|
+
style: isDel ? {
|
|
1497
|
+
fontSize: 18,
|
|
1498
|
+
backgroundColor: '#fff',
|
|
1499
|
+
width: 'auto',
|
|
1500
|
+
height: 'auto'
|
|
1501
|
+
} : {},
|
|
1447
1502
|
iconOnly: true,
|
|
1448
|
-
primary:
|
|
1449
|
-
icon: 'As',
|
|
1503
|
+
primary: !isDel,
|
|
1504
|
+
icon: isDel ? _jsx(ExclamationCircleFill, {}) : 'As',
|
|
1450
1505
|
size: 'small',
|
|
1451
1506
|
onClick: function onClick(e) {
|
|
1452
|
-
var _meta$
|
|
1507
|
+
var _meta$table6;
|
|
1453
1508
|
e.stopPropagation();
|
|
1454
|
-
onChangeTableAlias(((_meta$
|
|
1509
|
+
onChangeTableAlias(((_meta$table6 = meta.table2) === null || _meta$table6 === void 0 ? void 0 : _meta$table6.alias) || '');
|
|
1455
1510
|
}
|
|
1456
1511
|
})
|
|
1457
|
-
}), table2Selected ? "".concat(meta.table2.datasourceName, ".").concat(meta.table2.name, " ").concat((_meta$
|
|
1512
|
+
}), table2Selected ? "".concat(meta.table2.datasourceName, ".").concat(meta.table2.name, " ").concat((_meta$table7 = meta.table2) !== null && _meta$table7 !== void 0 && _meta$table7.alias ? "as ".concat((_meta$table8 = meta.table2) === null || _meta$table8 === void 0 ? void 0 : _meta$table8.alias) : '') : __('SqlQueryBuilder.pickTable')]
|
|
1458
1513
|
}), store.showSubquery && _jsx(Tooltip, {
|
|
1459
1514
|
title: __('SqlQueryBuilder.switchSubQuery'),
|
|
1460
1515
|
children: _jsx(Button, {
|
|
@@ -1465,7 +1520,7 @@ var JoinData = function JoinData(props) {
|
|
|
1465
1520
|
icon: _jsx(RelatedWork, {}),
|
|
1466
1521
|
onClick: switchSubQuery
|
|
1467
1522
|
})
|
|
1468
|
-
}), ((_meta$
|
|
1523
|
+
}), ((_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$expressions = meta.expressions) === null || _meta$expressions === void 0 ? void 0 : _meta$expressions.map(function (v, i) {
|
|
1469
1524
|
if (v.type === AtomsTypeEnum.JOIN_DEFAULT) {
|
|
1470
1525
|
return _jsxs("div", {
|
|
1471
1526
|
className: cx("Sqb-where block"),
|
|
@@ -1692,7 +1747,7 @@ var JoinData = function JoinData(props) {
|
|
|
1692
1747
|
})]
|
|
1693
1748
|
}, i);
|
|
1694
1749
|
}
|
|
1695
|
-
})), ((_meta$
|
|
1750
|
+
})), ((_meta$table1 = meta.table2) === null || _meta$table1 === void 0 ? void 0 : _meta$table1.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 && _jsx(Tooltip, {
|
|
1696
1751
|
title: __('SqlQueryBuilder.add'),
|
|
1697
1752
|
children: _jsx(Dropdown, {
|
|
1698
1753
|
trigger: ['click'],
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
3
|
-
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
4
3
|
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
4
|
+
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
5
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
5
6
|
var _excluded = ["subToolbar", "notExistsColumns", "isExit", "toolbar"];
|
|
6
7
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
7
8
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
|
+
import { useEffect, useState } from 'react';
|
|
8
10
|
import cx from 'classnames';
|
|
9
11
|
import { __ } from '../../locale';
|
|
10
12
|
import { Tooltip, Button, Modal, Modal2, Input, Toast } from '@gingkoo/pandora';
|
|
@@ -18,14 +20,54 @@ import { SelectTable, SelectColumn } from '../dialog';
|
|
|
18
20
|
import Wrapper from './components/Wrapper';
|
|
19
21
|
import NextDom from './components/meta-icon';
|
|
20
22
|
import Header from './components/header';
|
|
23
|
+
import { ExclamationCircleFill } from '@gingkoo/pandora-icons';
|
|
21
24
|
import { useStore } from '../../hooks/use-provider';
|
|
22
25
|
var TableData = function TableData(props) {
|
|
23
|
-
var _meta$subquery, _meta$subquery2, _meta$subquery3, _meta$
|
|
26
|
+
var _meta$subquery, _meta$subquery2, _meta$subquery3, _meta$table4, _meta$table5, _meta$table7, _meta$table8, _store$showMainColumn;
|
|
24
27
|
var meta = props.meta,
|
|
25
28
|
groupIndex = props.groupIndex;
|
|
26
29
|
var store = useStore();
|
|
27
30
|
var selected = Boolean(meta.table.name);
|
|
28
31
|
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);
|
|
32
|
+
var _useState = useState(false),
|
|
33
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
34
|
+
isDel = _useState2[0],
|
|
35
|
+
setIsDel = _useState2[1];
|
|
36
|
+
var tableIsDel = /*#__PURE__*/function () {
|
|
37
|
+
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
38
|
+
var _meta$table;
|
|
39
|
+
var tableName, tables, names;
|
|
40
|
+
return _regeneratorRuntime.wrap(function (_context) {
|
|
41
|
+
while (1) switch (_context.prev = _context.next) {
|
|
42
|
+
case 0:
|
|
43
|
+
tableName = (_meta$table = meta.table) === null || _meta$table === void 0 ? void 0 : _meta$table.name;
|
|
44
|
+
_context.next = 1;
|
|
45
|
+
return store === null || store === void 0 ? void 0 : store.fetchDataset(meta.table.datasourceId);
|
|
46
|
+
case 1:
|
|
47
|
+
tables = _context.sent;
|
|
48
|
+
names = (tables === null || tables === void 0 ? void 0 : tables.map(function (v) {
|
|
49
|
+
return v.name;
|
|
50
|
+
})) || [];
|
|
51
|
+
if (!names.includes(tableName)) {
|
|
52
|
+
setIsDel(true);
|
|
53
|
+
} else {
|
|
54
|
+
setIsDel(false);
|
|
55
|
+
}
|
|
56
|
+
case 2:
|
|
57
|
+
case "end":
|
|
58
|
+
return _context.stop();
|
|
59
|
+
}
|
|
60
|
+
}, _callee);
|
|
61
|
+
}));
|
|
62
|
+
return function tableIsDel() {
|
|
63
|
+
return _ref.apply(this, arguments);
|
|
64
|
+
};
|
|
65
|
+
}();
|
|
66
|
+
useEffect(function () {
|
|
67
|
+
setTimeout(function () {
|
|
68
|
+
tableIsDel();
|
|
69
|
+
}, 0);
|
|
70
|
+
}, [meta]);
|
|
29
71
|
function selectTable(e) {
|
|
30
72
|
!meta.readonly && store.setPopup({
|
|
31
73
|
visible: true,
|
|
@@ -53,6 +95,7 @@ var TableData = function TableData(props) {
|
|
|
53
95
|
store.setPopup({
|
|
54
96
|
visible: false
|
|
55
97
|
});
|
|
98
|
+
setIsDel(false);
|
|
56
99
|
}
|
|
57
100
|
})
|
|
58
101
|
});
|
|
@@ -86,17 +129,17 @@ var TableData = function TableData(props) {
|
|
|
86
129
|
}
|
|
87
130
|
}),
|
|
88
131
|
onOk: function () {
|
|
89
|
-
var _onOk = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function
|
|
132
|
+
var _onOk = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
90
133
|
var newMetaList;
|
|
91
|
-
return _regeneratorRuntime.wrap(function (
|
|
92
|
-
while (1) switch (
|
|
134
|
+
return _regeneratorRuntime.wrap(function (_context2) {
|
|
135
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
93
136
|
case 0:
|
|
94
137
|
if (isValidSQLAlias(alias)) {
|
|
95
|
-
|
|
138
|
+
_context2.next = 1;
|
|
96
139
|
break;
|
|
97
140
|
}
|
|
98
141
|
Toast.warning(__('SqlQueryBuilder.aliasForRules'));
|
|
99
|
-
return
|
|
142
|
+
return _context2.abrupt("return", false);
|
|
100
143
|
case 1:
|
|
101
144
|
newMetaList = store.metaList[groupIndex].list.slice(); // @ts-ignore
|
|
102
145
|
newMetaList[0].table.alias = alias;
|
|
@@ -104,9 +147,9 @@ var TableData = function TableData(props) {
|
|
|
104
147
|
store.setMeta(newMetaList, groupIndex);
|
|
105
148
|
case 2:
|
|
106
149
|
case "end":
|
|
107
|
-
return
|
|
150
|
+
return _context2.stop();
|
|
108
151
|
}
|
|
109
|
-
},
|
|
152
|
+
}, _callee2);
|
|
110
153
|
}));
|
|
111
154
|
function onOk() {
|
|
112
155
|
return _onOk.apply(this, arguments);
|
|
@@ -207,12 +250,12 @@ var TableData = function TableData(props) {
|
|
|
207
250
|
store.setMeta(newMetaList, groupIndex);
|
|
208
251
|
};
|
|
209
252
|
var tableIsError = function tableIsError() {
|
|
210
|
-
var _store$preProps3, _meta$
|
|
253
|
+
var _store$preProps3, _meta$table2;
|
|
211
254
|
var aliass = ((_store$preProps3 = store.preProps) === null || _store$preProps3 === void 0 || (_store$preProps3 = _store$preProps3.notExistsColumns) === null || _store$preProps3 === void 0 ? void 0 : _store$preProps3.map(function (v) {
|
|
212
255
|
return v.alias;
|
|
213
256
|
})) || [];
|
|
214
|
-
var tableAlias = (_meta$
|
|
215
|
-
if (tableAlias && aliass.includes(tableAlias)) {
|
|
257
|
+
var tableAlias = (_meta$table2 = meta.table) === null || _meta$table2 === void 0 ? void 0 : _meta$table2.alias;
|
|
258
|
+
if (tableAlias && aliass.includes(tableAlias) || isDel) {
|
|
216
259
|
return true;
|
|
217
260
|
}
|
|
218
261
|
return false;
|
|
@@ -235,48 +278,60 @@ var TableData = function TableData(props) {
|
|
|
235
278
|
showSubQuery(meta.subquery);
|
|
236
279
|
},
|
|
237
280
|
children: [subQuerySelected && _jsx(Tooltip, {
|
|
238
|
-
title: __(tableIsError() ? 'SqlQueryBuilder.repeatAlias' : 'SqlQueryBuilder.alias'),
|
|
281
|
+
title: __(tableIsError() ? isDel ? 'metabase.verify' : 'SqlQueryBuilder.repeatAlias' : 'SqlQueryBuilder.alias'),
|
|
239
282
|
children: _jsx(Button, {
|
|
240
283
|
danger: tableIsError(),
|
|
241
284
|
className: cx(':Sqb-TableName-as', {
|
|
242
285
|
isError: tableIsError()
|
|
243
286
|
}),
|
|
244
287
|
shape: 'circle',
|
|
288
|
+
style: isDel ? {
|
|
289
|
+
fontSize: 18,
|
|
290
|
+
backgroundColor: '#fff',
|
|
291
|
+
width: 'auto',
|
|
292
|
+
height: 'auto'
|
|
293
|
+
} : {},
|
|
245
294
|
iconOnly: true,
|
|
246
|
-
primary:
|
|
247
|
-
icon: 'As',
|
|
295
|
+
primary: !isDel,
|
|
296
|
+
icon: isDel ? _jsx(ExclamationCircleFill, {}) : 'As',
|
|
248
297
|
size: 'small',
|
|
249
298
|
onClick: function onClick(e) {
|
|
250
|
-
var _meta$
|
|
299
|
+
var _meta$table3;
|
|
251
300
|
e.stopPropagation();
|
|
252
|
-
onChangeTableAlias(((_meta$
|
|
301
|
+
onChangeTableAlias(((_meta$table3 = meta.table) === null || _meta$table3 === void 0 ? void 0 : _meta$table3.alias) || '');
|
|
253
302
|
}
|
|
254
303
|
})
|
|
255
|
-
}), subQuerySelected ? "".concat(((_meta$subquery2 = meta.subquery) === null || _meta$subquery2 === void 0 ? void 0 : _meta$subquery2[0]).table.datasourceName, ".").concat(((_meta$subquery3 = meta.subquery) === null || _meta$subquery3 === void 0 ? void 0 : _meta$subquery3[0]).table.name, " ").concat((_meta$
|
|
304
|
+
}), subQuerySelected ? "".concat(((_meta$subquery2 = meta.subquery) === null || _meta$subquery2 === void 0 ? void 0 : _meta$subquery2[0]).table.datasourceName, ".").concat(((_meta$subquery3 = meta.subquery) === null || _meta$subquery3 === void 0 ? void 0 : _meta$subquery3[0]).table.name, " ").concat((_meta$table4 = meta.table) !== null && _meta$table4 !== void 0 && _meta$table4.alias ? "as ".concat((_meta$table5 = meta.table) === null || _meta$table5 === void 0 ? void 0 : _meta$table5.alias) : '', " ") : __('SqlQueryBuilder.setSubQuery')]
|
|
256
305
|
}) : _jsxs("div", {
|
|
257
306
|
className: cx("Sqb-TableName", {
|
|
258
307
|
notSelected: !selected
|
|
259
308
|
}),
|
|
260
309
|
onClick: selectTable,
|
|
261
310
|
children: [selected && _jsx(Tooltip, {
|
|
262
|
-
title: __(tableIsError() ? 'SqlQueryBuilder.repeatAlias' : 'SqlQueryBuilder.alias'),
|
|
311
|
+
title: __(tableIsError() ? isDel ? 'metabase.verify' : 'SqlQueryBuilder.repeatAlias' : 'SqlQueryBuilder.alias'),
|
|
263
312
|
children: _jsx(Button, {
|
|
264
313
|
danger: tableIsError(),
|
|
265
314
|
className: cx(':Sqb-TableName-as', {
|
|
266
315
|
isError: tableIsError()
|
|
267
316
|
}),
|
|
268
317
|
shape: 'circle',
|
|
318
|
+
style: isDel ? {
|
|
319
|
+
fontSize: 18,
|
|
320
|
+
backgroundColor: '#fff',
|
|
321
|
+
width: 'auto',
|
|
322
|
+
height: 'auto'
|
|
323
|
+
} : {},
|
|
269
324
|
iconOnly: true,
|
|
270
|
-
primary:
|
|
271
|
-
icon: 'As',
|
|
325
|
+
primary: !isDel,
|
|
326
|
+
icon: isDel ? _jsx(ExclamationCircleFill, {}) : 'As',
|
|
272
327
|
size: 'small',
|
|
273
328
|
onClick: function onClick(e) {
|
|
274
|
-
var _meta$
|
|
329
|
+
var _meta$table6;
|
|
275
330
|
e.stopPropagation();
|
|
276
|
-
onChangeTableAlias(((_meta$
|
|
331
|
+
onChangeTableAlias(((_meta$table6 = meta.table) === null || _meta$table6 === void 0 ? void 0 : _meta$table6.alias) || '');
|
|
277
332
|
}
|
|
278
333
|
})
|
|
279
|
-
}), selected ? "".concat(meta.table.datasourceName, ".").concat(meta.table.name, " ").concat((_meta$
|
|
334
|
+
}), selected ? "".concat(meta.table.datasourceName, ".").concat(meta.table.name, " ").concat((_meta$table7 = meta.table) !== null && _meta$table7 !== void 0 && _meta$table7.alias ? "as ".concat((_meta$table8 = meta.table) === null || _meta$table8 === void 0 ? void 0 : _meta$table8.alias) : '') : __('SqlQueryBuilder.pickTable')]
|
|
280
335
|
}), store.showSubquery && _jsx(Tooltip, {
|
|
281
336
|
title: __('SqlQueryBuilder.switchSubQuery'),
|
|
282
337
|
children: _jsx(Button, {
|