@gingkoo/pandora-metabase 0.0.1-alpha.14 → 0.0.1-alpha.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/es/index.js +297 -4
- package/lib/es/index.js.map +1 -1
- package/lib/es/store/types.d.ts +12 -0
- package/package.json +1 -1
package/lib/es/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @gingkoo/pandora-metabase v0.0.1-alpha.
|
|
2
|
+
* @gingkoo/pandora-metabase v0.0.1-alpha.16
|
|
3
3
|
*/
|
|
4
4
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
5
5
|
import * as React from 'react';
|
|
@@ -7,7 +7,7 @@ import React__default, { forwardRef, useRef, useImperativeHandle, useEffect, use
|
|
|
7
7
|
import { DatePicker, Menu, Dropdown, Button, Input, Tooltip, InputNumber, ConfigProvider } from 'antd';
|
|
8
8
|
import zhCN from 'antd/locale/zh_CN';
|
|
9
9
|
import cx from 'classnames';
|
|
10
|
-
import { Toast } from '@gingkoo/pandora';
|
|
10
|
+
import { Input as Input$1, Tooltip as Tooltip$1, Button as Button$1, Toast } from '@gingkoo/pandora';
|
|
11
11
|
import { configure, makeAutoObservable, runInAction, toJS } from 'mobx';
|
|
12
12
|
import { DownOutlined, LoadingOutlined } from '@ant-design/icons';
|
|
13
13
|
import Styled from 'styled-components';
|
|
@@ -17,6 +17,7 @@ import ReactDOMServer from 'react-dom/server';
|
|
|
17
17
|
import { useLocalObservable, observer } from 'mobx-react';
|
|
18
18
|
import _$3 from 'lodash';
|
|
19
19
|
import moment from 'dayjs';
|
|
20
|
+
import { Repeat, FfPlus, FfLine } from '@gingkoo/pandora-icons';
|
|
20
21
|
|
|
21
22
|
//获取指定名称的cookie值
|
|
22
23
|
function getCookie(name) {
|
|
@@ -80,6 +81,10 @@ register('en', {
|
|
|
80
81
|
'SqlQueryBuilder.maximumOf': 'maximumOf',
|
|
81
82
|
'SqlQueryBuilder.customExpression': 'customExpression',
|
|
82
83
|
'SqlQueryBuilder.pickTable': 'Select data table...',
|
|
84
|
+
'SqlQueryBuilder.add': 'Add',
|
|
85
|
+
'SqlQueryBuilder.del': 'Delete',
|
|
86
|
+
'SqlQueryBuilder.switch': 'Switch input type',
|
|
87
|
+
'SqlQueryBuilder.pleaseEnter': 'please enter',
|
|
83
88
|
'SqlQueryBuilder.pickPermissionTable': 'Select permission table...',
|
|
84
89
|
'SqlQueryBuilder.visualize': 'visualize',
|
|
85
90
|
'SqlQueryBuilder.selectColumnAll': 'select all',
|
|
@@ -200,6 +205,10 @@ register('zh', {
|
|
|
200
205
|
'SqlQueryBuilder.maximumOf': '最大值',
|
|
201
206
|
'SqlQueryBuilder.customExpression': '自定义表达方式',
|
|
202
207
|
'SqlQueryBuilder.pickTable': '选择数据表...',
|
|
208
|
+
'SqlQueryBuilder.add': '添加',
|
|
209
|
+
'SqlQueryBuilder.del': '删除',
|
|
210
|
+
'SqlQueryBuilder.switch': '切换输入类型',
|
|
211
|
+
'SqlQueryBuilder.pleaseEnter': '请输入',
|
|
203
212
|
'SqlQueryBuilder.pickPermissionTable': '选择权限数据表...',
|
|
204
213
|
'SqlQueryBuilder.visualize': '可视化',
|
|
205
214
|
'SqlQueryBuilder.selectColumnAll': '全选',
|
|
@@ -336,7 +345,7 @@ const Loading = ({
|
|
|
336
345
|
});
|
|
337
346
|
};
|
|
338
347
|
|
|
339
|
-
var css_248z$b = ".mx-4 {\n margin-left: 1rem;\n margin-right: 1rem;\n}\n.m-2 {\n margin: 0.5rem;\n}\n.mx-2 {\n margin-left: 0.5rem;\n margin-right: 0.5rem;\n}\n.ml-2 {\n margin-left: 0.5rem;\n}\n.mt-2 {\n margin-top: 0.5rem;\n}\n.mb-2 {\n margin-bottom: 0.5rem;\n}\n.mt-4 {\n margin-top: 1rem;\n}\n.ml-4 {\n margin-left: 1rem;\n}\n.mr-4 {\n margin-right: 1rem;\n}\n.mr-2 {\n margin-right: 0.5rem;\n}\n.pt-2 {\n padding-top: 0.5rem;\n}\n.pb-2 {\n padding-bottom: 0.5rem;\n}\n.px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n.p-4 {\n padding: 1rem;\n}\n.p-2 {\n padding: 0.5rem;\n}\n.px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n.pb-4 {\n padding-bottom: 1rem;\n}\n.pt-4 {\n padding-top: 1rem;\n}\n.block {\n display: block;\n}\n.w-full {\n width: 100%;\n}\n.font-bold {\n font-weight: 700;\n}\n.uppercase {\n text-transform: uppercase;\n}\n.tracking-wider {\n letter-spacing: 0.05em;\n}\n.relative {\n position: relative;\n}\n.absolute {\n position: absolute;\n}\n.top-0 {\n top: 0px;\n}\n.left-0 {\n left: 0;\n}\n.rounded-lg {\n border-radius: 0.5rem;\n}\n.text-gray-500 {\n color: #6b7280;\n}\n.flex {\n display: flex;\n}\n.items-center {\n align-items: center;\n}\n.justify-center {\n justify-content: center;\n}\n.visual-box {\n position: relative;\n width: 100%;\n height: 100%;\n overflow-y: scroll;\n overflow-x: hidden;\n transition: all 0.3s;\n z-index: 3;\n background-color: #fff;\n}\n.Sqb {\n padding: 0 20px 50px;\n}\n.Sqb-list {\n padding-top: 1.5rem;\n}\n.Sqb-hover-parent {\n margin-bottom: 16px;\n padding-bottom: 16px;\n}\n.Sqb-item {\n font-size: 14px;\n}\n.Sqb-item--text {\n color: #509ee3;\n width: 66.6667%;\n box-sizing: border-box;\n margin-bottom: 8px;\n display: flex;\n align-items: center;\n font-weight: 600;\n}\n.Sqb-item--text.purple-text {\n color: #7172ad;\n}\n.Sqb-item--text.gray-text {\n color: #93a1ab;\n}\n.Sqb-item--text.green-text {\n color: #88bf4d;\n}\n.Sqb-item-close {\n width: 16px;\n height: 16px;\n color: #b8bbc3;\n margin-left: auto;\n visibility: hidden;\n cursor: pointer;\n}\n.Sqb-item--content {\n width: 66.6667%;\n box-sizing: border-box;\n}\n.Sqb-item--content .Sqb-NotebookCell {\n box-sizing: border-box;\n padding: 16px 16px 8px;\n color: #509ee3;\n display: flex;\n flex-wrap: wrap;\n -webkit-box-align: center;\n align-items: center;\n border-radius: 8px;\n background-color: rgba(80, 158, 227, 0.1);\n}\n.Sqb-item--content .Sqb-NotebookCell.gray-bg {\n background-color: rgba(147, 161, 171, 0.1);\n}\n.Sqb-item--content .Sqb-NotebookCell.green-bg {\n background-color: rgba(136, 191, 77, 0.1);\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName {\n border: 2px solid transparent;\n border-radius: 6px;\n color: white;\n background-color: #509ee3;\n transition: background 300ms linear 0s,\n border 300ms linear 0s;\n box-sizing: border-box;\n margin-bottom: 8px;\n margin-right: 8px;\n padding: 8px;\n display: flex;\n -webkit-box-align: center;\n align-items: center;\n cursor: pointer;\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName::selection {\n color: #ffffff;\n background-color: #d489ac;\n text-shadow: none;\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName:hover {\n background-color: rgba(80, 158, 227, 0.8);\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName.noClick {\n cursor: default;\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName.noClick:hover {\n background-color: #509ee3;\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName.notSelected {\n border: 2px solid rgba(80, 158, 227, 0.25);\n color: #509ee3;\n background-color: transparent;\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName.notSelected:hover {\n border-color: rgba(80, 158, 227, 0.8);\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName.purple-name {\n color: white;\n background-color: #7172ad;\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName.purple-name:hover {\n background-color: rgba(113, 114, 173, 0.8);\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName.purple-name svg.closeIcon {\n opacity: 0.6;\n margin-left: 8px;\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName.purple-name.notSelected {\n border: 2px solid rgba(113, 114, 173, 0.25);\n color: #7172ad;\n background-color: transparent;\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName.purple-name.notSelected:hover {\n border-color: rgba(113, 114, 173, 0.8);\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName.gray-name {\n color: white;\n background-color: #93a1ab;\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName.gray-name:hover {\n background-color: rgba(147, 161, 171, 0.8);\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName.gray-name svg.sort-arrow {\n margin-right: 0.5rem;\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName.gray-name svg.closeIcon {\n opacity: 0.6;\n margin-left: 8px;\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName.green-name {\n color: white;\n background-color: #88bf4d;\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName.green-name:hover {\n background-color: rgba(136, 191, 77, 0.8);\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName.green-name svg.closeIcon {\n opacity: 0.6;\n margin-left: 8px;\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName.green-name.notSelected {\n border: 2px solid rgba(136, 191, 77, 0.25);\n color: #88bf4d;\n background-color: transparent;\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName.green-name.notSelected:hover {\n border-color: rgba(136, 191, 77, 0.8);\n}\n.Sqb-item--content .Sqb-NotebookCell .ant-input-number {\n margin-bottom: 0.5rem;\n}\n.Sqb-item--content .Sqb-NotebookCell .ant-input-number .ant-input-number-input {\n height: 32px;\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-where {\n box-sizing: border-box;\n display: flex;\n -webkit-box-align: center;\n align-items: center;\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableColumns {\n font-weight: 600;\n margin-bottom: 0.5rem;\n margin-left: auto;\n cursor: pointer;\n}\n.Sqb-item--content .flex-row {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n align-items: center;\n flex-direction: row;\n}\n.Sqb-item--content .flex-row .Sqb-NotebookCell {\n width: 50%;\n}\n.Sqb-item--content .flex-row .pass {\n color: #88bf4d;\n margin: 4px 16px;\n font-size: 600;\n}\n.Sqb-item--func {\n box-sizing: border-box;\n margin-top: 8px;\n}\n.Sqb-item--func .Sqb-button {\n display: inline-block;\n box-sizing: border-box;\n text-decoration: none;\n cursor: pointer;\n font-weight: bold;\n padding: 12px 16px;\n border-radius: 6px;\n margin-right: 16px;\n margin-top: 16px;\n border: none;\n transition: background 300ms ease 0s;\n flex-shrink: 0;\n color: #93a1ab;\n background-color: #ffffff;\n}\n.Sqb-item--func .Sqb-button:hover {\n color: #7e8f9b;\n background-color: #eceff0;\n}\n.Sqb-item--func .Sqb-button > div {\n min-width: 60px;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n display: flex;\n}\n.Sqb-item--func .Sqb-button > div svg {\n flex-shrink: 0;\n}\n.Sqb-item--func .Sqb-button > div div {\n margin-top: 0.5rem;\n}\n.Sqb-item--func .Sqb-button.filter {\n color: #7172ad;\n background-color: #e0e0ed;\n}\n.Sqb-item--func .Sqb-button.filter:hover {\n color: #5d5ea0;\n background-color: #cccce1;\n}\n.Sqb-item--func .Sqb-button.summarize {\n color: #88bf4d;\n background-color: #d8eac5;\n}\n.Sqb-item--func .Sqb-button.summarize:hover {\n color: #79ae3f;\n background-color: #cae2af;\n}\n.Sqb-item--func .Sqb-button.joinData {\n color: #509ee3;\n background-color: #f1f7fd;\n}\n.Sqb-item--func .Sqb-button.joinData:hover {\n color: #328dde;\n background-color: #d4e7f8;\n}\n.Sqb-item--func .Sqb-button.small {\n margin-right: 8px;\n margin-top: 0;\n padding: 0.5rem;\n}\n.Sqb-item--func .Sqb-button.small > div {\n min-width: 0;\n}\n.Sqb-item--func .Sqb-button.small > div svg {\n width: 14px;\n height: 14px;\n}\n.Sqb-item--func .Sqb-button.small > div div {\n display: none;\n}\n.Sqb-item:hover .Sqb-item-close {\n visibility: visible;\n}\n.Sqb > .Sqb-btn {\n min-width: 220px;\n height: 36px;\n border-radius: 6px;\n color: #ffffff;\n background: #509ee3;\n border: 1px solid #509ee3;\n}\n.Sqb > .Sqb-btn:hover {\n background-color: rgba(80, 158, 227, 0.8) !important;\n}\n";
|
|
348
|
+
var css_248z$b = ".mx-4 {\n margin-left: 1rem;\n margin-right: 1rem;\n}\n.m-2 {\n margin: 0.5rem;\n}\n.mx-2 {\n margin-left: 0.5rem;\n margin-right: 0.5rem;\n}\n.ml-2 {\n margin-left: 0.5rem;\n}\n.mt-2 {\n margin-top: 0.5rem;\n}\n.mb-2 {\n margin-bottom: 0.5rem;\n}\n.mt-4 {\n margin-top: 1rem;\n}\n.ml-4 {\n margin-left: 1rem;\n}\n.mr-4 {\n margin-right: 1rem;\n}\n.mr-2 {\n margin-right: 0.5rem;\n}\n.pt-2 {\n padding-top: 0.5rem;\n}\n.pb-2 {\n padding-bottom: 0.5rem;\n}\n.px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n.p-4 {\n padding: 1rem;\n}\n.p-2 {\n padding: 0.5rem;\n}\n.px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n.pb-4 {\n padding-bottom: 1rem;\n}\n.pt-4 {\n padding-top: 1rem;\n}\n.block {\n display: block;\n}\n.w-full {\n width: 100%;\n}\n.font-bold {\n font-weight: 700;\n}\n.uppercase {\n text-transform: uppercase;\n}\n.tracking-wider {\n letter-spacing: 0.05em;\n}\n.relative {\n position: relative;\n}\n.absolute {\n position: absolute;\n}\n.top-0 {\n top: 0px;\n}\n.left-0 {\n left: 0;\n}\n.rounded-lg {\n border-radius: 0.5rem;\n}\n.text-gray-500 {\n color: #6b7280;\n}\n.flex {\n display: flex;\n}\n.items-center {\n align-items: center;\n}\n.justify-center {\n justify-content: center;\n}\n.visual-box {\n position: relative;\n width: 100%;\n height: 100%;\n overflow-y: scroll;\n overflow-x: hidden;\n transition: all 0.3s;\n z-index: 3;\n background-color: #fff;\n}\n.Sqb {\n padding: 0 20px 50px;\n}\n.Sqb-list {\n padding-top: 1.5rem;\n}\n.Sqb-hover-parent {\n margin-bottom: 16px;\n padding-bottom: 16px;\n}\n.Sqb-item {\n font-size: 14px;\n}\n.Sqb-item--text {\n color: #509ee3;\n width: 66.6667%;\n box-sizing: border-box;\n margin-bottom: 8px;\n display: flex;\n align-items: center;\n font-weight: 600;\n}\n.Sqb-item--text.purple-text {\n color: #7172ad;\n}\n.Sqb-item--text.gray-text {\n color: #93a1ab;\n}\n.Sqb-item--text.green-text {\n color: #88bf4d;\n}\n.Sqb-item-close {\n width: 16px;\n height: 16px;\n color: #b8bbc3;\n margin-left: auto;\n visibility: hidden;\n cursor: pointer;\n}\n.Sqb-item--content {\n width: 66.6667%;\n box-sizing: border-box;\n}\n.Sqb-item--content .Sqb-NotebookCell {\n box-sizing: border-box;\n padding: 16px 16px 8px;\n color: #509ee3;\n display: flex;\n flex-wrap: wrap;\n -webkit-box-align: center;\n align-items: center;\n border-radius: 8px;\n background-color: rgba(80, 158, 227, 0.1);\n}\n.Sqb-item--content .Sqb-NotebookCell.gray-bg {\n background-color: rgba(147, 161, 171, 0.1);\n}\n.Sqb-item--content .Sqb-NotebookCell.green-bg {\n background-color: rgba(136, 191, 77, 0.1);\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName {\n border: 2px solid transparent;\n border-radius: 6px;\n color: white;\n background-color: #509ee3;\n transition: background 300ms linear 0s,\n border 300ms linear 0s;\n box-sizing: border-box;\n margin-bottom: 8px;\n margin-right: 8px;\n padding: 8px;\n display: flex;\n -webkit-box-align: center;\n align-items: center;\n cursor: pointer;\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName-input {\n margin-bottom: 9px;\n margin-right: 8px;\n padding: 9px;\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName::selection {\n color: #ffffff;\n background-color: #d489ac;\n text-shadow: none;\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName:hover {\n background-color: rgba(80, 158, 227, 0.8);\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName.noClick {\n cursor: default;\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName.noClick:hover {\n background-color: #509ee3;\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName.notSelected {\n border: 2px solid rgba(80, 158, 227, 0.25);\n color: #509ee3;\n background-color: transparent;\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName.notSelected:hover {\n border-color: rgba(80, 158, 227, 0.8);\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName.purple-name {\n color: white;\n background-color: #7172ad;\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName.purple-name:hover {\n background-color: rgba(113, 114, 173, 0.8);\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName.purple-name svg.closeIcon {\n opacity: 0.6;\n margin-left: 8px;\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName.purple-name.notSelected {\n border: 2px solid rgba(113, 114, 173, 0.25);\n color: #7172ad;\n background-color: transparent;\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName.purple-name.notSelected:hover {\n border-color: rgba(113, 114, 173, 0.8);\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName.gray-name {\n color: white;\n background-color: #93a1ab;\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName.gray-name:hover {\n background-color: rgba(147, 161, 171, 0.8);\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName.gray-name svg.sort-arrow {\n margin-right: 0.5rem;\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName.gray-name svg.closeIcon {\n opacity: 0.6;\n margin-left: 8px;\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName.green-name {\n color: white;\n background-color: #88bf4d;\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName.green-name:hover {\n background-color: rgba(136, 191, 77, 0.8);\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName.green-name svg.closeIcon {\n opacity: 0.6;\n margin-left: 8px;\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName.green-name.notSelected {\n border: 2px solid rgba(136, 191, 77, 0.25);\n color: #88bf4d;\n background-color: transparent;\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableName.green-name.notSelected:hover {\n border-color: rgba(136, 191, 77, 0.8);\n}\n.Sqb-item--content .Sqb-NotebookCell .ant-input-number {\n margin-bottom: 0.5rem;\n}\n.Sqb-item--content .Sqb-NotebookCell .ant-input-number .ant-input-number-input {\n height: 32px;\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-where {\n box-sizing: border-box;\n display: flex;\n -webkit-box-align: center;\n align-items: center;\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-where.block {\n width: 100%;\n}\n.Sqb-item--content .Sqb-NotebookCell .operator-icon,\n.Sqb-item--content .Sqb-NotebookCell .operator-icon button {\n font-size: 18px !important;\n border: none !important;\n}\n.Sqb-item--content .Sqb-NotebookCell .Sqb-TableColumns {\n font-weight: 600;\n margin-bottom: 0.5rem;\n margin-left: auto;\n cursor: pointer;\n}\n.Sqb-item--content .flex-row {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n align-items: center;\n flex-direction: row;\n}\n.Sqb-item--content .flex-row .Sqb-NotebookCell {\n width: 50%;\n}\n.Sqb-item--content .flex-row .pass {\n color: #88bf4d;\n margin: 4px 16px;\n font-size: 600;\n}\n.Sqb-item--func {\n box-sizing: border-box;\n margin-top: 8px;\n}\n.Sqb-item--func .Sqb-button {\n display: inline-block;\n box-sizing: border-box;\n text-decoration: none;\n cursor: pointer;\n font-weight: bold;\n padding: 12px 16px;\n border-radius: 6px;\n margin-right: 16px;\n margin-top: 16px;\n border: none;\n transition: background 300ms ease 0s;\n flex-shrink: 0;\n color: #93a1ab;\n background-color: #ffffff;\n}\n.Sqb-item--func .Sqb-button:hover {\n color: #7e8f9b;\n background-color: #eceff0;\n}\n.Sqb-item--func .Sqb-button > div {\n min-width: 60px;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n display: flex;\n}\n.Sqb-item--func .Sqb-button > div svg {\n flex-shrink: 0;\n}\n.Sqb-item--func .Sqb-button > div div {\n margin-top: 0.5rem;\n}\n.Sqb-item--func .Sqb-button.filter {\n color: #7172ad;\n background-color: #e0e0ed;\n}\n.Sqb-item--func .Sqb-button.filter:hover {\n color: #5d5ea0;\n background-color: #cccce1;\n}\n.Sqb-item--func .Sqb-button.summarize {\n color: #88bf4d;\n background-color: #d8eac5;\n}\n.Sqb-item--func .Sqb-button.summarize:hover {\n color: #79ae3f;\n background-color: #cae2af;\n}\n.Sqb-item--func .Sqb-button.joinData {\n color: #509ee3;\n background-color: #f1f7fd;\n}\n.Sqb-item--func .Sqb-button.joinData:hover {\n color: #328dde;\n background-color: #d4e7f8;\n}\n.Sqb-item--func .Sqb-button.small {\n margin-right: 8px;\n margin-top: 0;\n padding: 0.5rem;\n}\n.Sqb-item--func .Sqb-button.small > div {\n min-width: 0;\n}\n.Sqb-item--func .Sqb-button.small > div svg {\n width: 14px;\n height: 14px;\n}\n.Sqb-item--func .Sqb-button.small > div div {\n display: none;\n}\n.Sqb-item:hover .Sqb-item-close {\n visibility: visible;\n}\n.Sqb > .Sqb-btn {\n min-width: 220px;\n height: 36px;\n border-radius: 6px;\n color: #ffffff;\n background: #509ee3;\n border: 1px solid #509ee3;\n}\n.Sqb > .Sqb-btn:hover {\n background-color: rgba(80, 158, 227, 0.8) !important;\n}\n";
|
|
340
349
|
styleInject(css_248z$b);
|
|
341
350
|
|
|
342
351
|
var SortEnum;
|
|
@@ -2323,7 +2332,8 @@ class SqlVisionStore {
|
|
|
2323
2332
|
column: '',
|
|
2324
2333
|
column_id: ''
|
|
2325
2334
|
},
|
|
2326
|
-
columns: []
|
|
2335
|
+
columns: [],
|
|
2336
|
+
expressions: []
|
|
2327
2337
|
};
|
|
2328
2338
|
}
|
|
2329
2339
|
if (type === TypeEnum.customColumn) {
|
|
@@ -4767,6 +4777,11 @@ var FlagLocation;
|
|
|
4767
4777
|
FlagLocation["TABLE_1"] = "table1";
|
|
4768
4778
|
FlagLocation["TABLE_2"] = "table2";
|
|
4769
4779
|
})(FlagLocation || (FlagLocation = {}));
|
|
4780
|
+
var ExpressionsEnum;
|
|
4781
|
+
(function (ExpressionsEnum) {
|
|
4782
|
+
ExpressionsEnum["LEFT"] = "left_column";
|
|
4783
|
+
ExpressionsEnum["RIGHT"] = "right_column";
|
|
4784
|
+
})(ExpressionsEnum || (ExpressionsEnum = {}));
|
|
4770
4785
|
const JoinData = props => {
|
|
4771
4786
|
const {
|
|
4772
4787
|
meta
|
|
@@ -4998,6 +5013,7 @@ const JoinData = props => {
|
|
|
4998
5013
|
newMeta[index][type].name = table;
|
|
4999
5014
|
newMeta[index][type].datasourceId = datasourceId;
|
|
5000
5015
|
newMeta[index][type].datasourceName = datasourceName;
|
|
5016
|
+
newMeta[index].expressions = [];
|
|
5001
5017
|
if (alias === SummarizeAlias) {
|
|
5002
5018
|
newMeta[index][type].groupSql = sql?.split(' AS ')?.[1] || '';
|
|
5003
5019
|
}
|
|
@@ -5011,6 +5027,144 @@ const JoinData = props => {
|
|
|
5011
5027
|
})
|
|
5012
5028
|
});
|
|
5013
5029
|
}
|
|
5030
|
+
function selectMoreJoinColumn(e) {
|
|
5031
|
+
let node = e.currentTarget;
|
|
5032
|
+
let type = node.getAttribute('v-data');
|
|
5033
|
+
let _ind = Number(node.getAttribute('v-index'));
|
|
5034
|
+
let index = findIndex(store.metaList, meta);
|
|
5035
|
+
let table_type = type === ExpressionsEnum.LEFT ? FlagLocation.TABLE_1 : FlagLocation.TABLE_2;
|
|
5036
|
+
let value = {
|
|
5037
|
+
name: meta.expressions[_ind][type],
|
|
5038
|
+
table: meta[table_type].name,
|
|
5039
|
+
alias: meta[table_type].alias,
|
|
5040
|
+
database_type: ''
|
|
5041
|
+
};
|
|
5042
|
+
let data = [];
|
|
5043
|
+
let {
|
|
5044
|
+
ExistAboveGroupBy,
|
|
5045
|
+
prevList,
|
|
5046
|
+
prevGroupBy
|
|
5047
|
+
} = getHelper(store.metaList, meta);
|
|
5048
|
+
if (type === ExpressionsEnum.LEFT) {
|
|
5049
|
+
if (ExistAboveGroupBy) {
|
|
5050
|
+
let _data = {
|
|
5051
|
+
table: prevGroupBy.alias,
|
|
5052
|
+
alias: prevGroupBy.alias,
|
|
5053
|
+
datasourceId: '',
|
|
5054
|
+
datasourceName: '',
|
|
5055
|
+
columns: []
|
|
5056
|
+
};
|
|
5057
|
+
if (prevGroupBy?.group?.length) {
|
|
5058
|
+
_data.columns = _data.columns.concat(prevGroupBy.group.map(v => {
|
|
5059
|
+
return {
|
|
5060
|
+
...v,
|
|
5061
|
+
name: v.quotes,
|
|
5062
|
+
database_type: v?.database_type || SQL_COLUMN_TYPE.FLOAT,
|
|
5063
|
+
special_type: '',
|
|
5064
|
+
sql: v.sql,
|
|
5065
|
+
select: true
|
|
5066
|
+
};
|
|
5067
|
+
}));
|
|
5068
|
+
}
|
|
5069
|
+
if (prevGroupBy?.by?.length) {
|
|
5070
|
+
_data.columns = _data.columns.concat(prevGroupBy.by.map(v => {
|
|
5071
|
+
return {
|
|
5072
|
+
...v,
|
|
5073
|
+
name: v.quotes,
|
|
5074
|
+
database_type: v?.database_type || SQL_COLUMN_TYPE.FLOAT,
|
|
5075
|
+
special_type: '',
|
|
5076
|
+
sql: v.sql,
|
|
5077
|
+
select: true
|
|
5078
|
+
};
|
|
5079
|
+
}));
|
|
5080
|
+
}
|
|
5081
|
+
data = [_data];
|
|
5082
|
+
let joinData = prevList.filter(v => v.type === TypeEnum.joinData).filter(v => v && v.table2.name);
|
|
5083
|
+
if (joinData.length) {
|
|
5084
|
+
data = data.concat(joinData.map(v => {
|
|
5085
|
+
return {
|
|
5086
|
+
alias: v.table2.alias,
|
|
5087
|
+
table: v.table2.name,
|
|
5088
|
+
datasourceId: v.table2.datasourceId,
|
|
5089
|
+
datasourceName: v.table2.datasourceName,
|
|
5090
|
+
columns: v.columns
|
|
5091
|
+
};
|
|
5092
|
+
}));
|
|
5093
|
+
}
|
|
5094
|
+
} else {
|
|
5095
|
+
data = store.metaList.slice(0, index).reduce((mo, v) => {
|
|
5096
|
+
if (v.type === TypeEnum.data) {
|
|
5097
|
+
mo.push({
|
|
5098
|
+
alias: v.table.alias,
|
|
5099
|
+
table: v.table.name,
|
|
5100
|
+
columns: v.columns,
|
|
5101
|
+
datasourceId: v.table.datasourceId,
|
|
5102
|
+
datasourceName: v.table.datasourceName
|
|
5103
|
+
});
|
|
5104
|
+
} else if (v.type === TypeEnum.joinData) {
|
|
5105
|
+
mo.push({
|
|
5106
|
+
alias: v.table2.alias,
|
|
5107
|
+
table: v.table2.name,
|
|
5108
|
+
columns: v.columns,
|
|
5109
|
+
datasourceId: v.table2.datasourceId,
|
|
5110
|
+
datasourceName: v.table2.datasourceName
|
|
5111
|
+
});
|
|
5112
|
+
}
|
|
5113
|
+
return mo;
|
|
5114
|
+
}, []);
|
|
5115
|
+
}
|
|
5116
|
+
// 过滤为table1选中的表
|
|
5117
|
+
let newMeta = store.metaList.slice();
|
|
5118
|
+
data = data.filter(v => {
|
|
5119
|
+
return newMeta[index][FlagLocation.TABLE_1].name == v.table;
|
|
5120
|
+
});
|
|
5121
|
+
} else {
|
|
5122
|
+
data = [{
|
|
5123
|
+
alias: meta.table2.alias,
|
|
5124
|
+
table: meta.table2.name,
|
|
5125
|
+
datasourceId: meta.table2.datasourceId,
|
|
5126
|
+
datasourceName: meta.table2.datasourceName,
|
|
5127
|
+
columns: meta.columns
|
|
5128
|
+
}];
|
|
5129
|
+
}
|
|
5130
|
+
!meta.readonly && store.setPopup({
|
|
5131
|
+
visible: true,
|
|
5132
|
+
node,
|
|
5133
|
+
content: jsx(SelectJoinColumn$1, {
|
|
5134
|
+
data: data,
|
|
5135
|
+
value: value,
|
|
5136
|
+
theme: ColumnsPopupThemeEnum.skyBlue,
|
|
5137
|
+
onSelect: record => {
|
|
5138
|
+
let {
|
|
5139
|
+
table,
|
|
5140
|
+
alias,
|
|
5141
|
+
name,
|
|
5142
|
+
sql,
|
|
5143
|
+
datasourceId,
|
|
5144
|
+
datasourceName,
|
|
5145
|
+
id = ''
|
|
5146
|
+
} = record;
|
|
5147
|
+
let newMeta = store.metaList.slice();
|
|
5148
|
+
newMeta[index].expressions[_ind][type] = name;
|
|
5149
|
+
newMeta[index].expressions[_ind][`${type}_id`] = id;
|
|
5150
|
+
store.setMeta(newMeta);
|
|
5151
|
+
store.setPopup({
|
|
5152
|
+
visible: false
|
|
5153
|
+
});
|
|
5154
|
+
}
|
|
5155
|
+
})
|
|
5156
|
+
});
|
|
5157
|
+
}
|
|
5158
|
+
function onIsString(type, _ind) {
|
|
5159
|
+
let index = findIndex(store.metaList, meta);
|
|
5160
|
+
let newMeta = store.metaList.slice();
|
|
5161
|
+
newMeta[index].expressions[_ind][type] = !newMeta[index].expressions[_ind][type];
|
|
5162
|
+
}
|
|
5163
|
+
function onChangeString(type, _ind, val) {
|
|
5164
|
+
let index = findIndex(store.metaList, meta);
|
|
5165
|
+
let newMeta = store.metaList.slice();
|
|
5166
|
+
newMeta[index].expressions[_ind][type] = val;
|
|
5167
|
+
}
|
|
5014
5168
|
return jsx(Wrapper, {
|
|
5015
5169
|
className: cx(`Sqb-item`),
|
|
5016
5170
|
children: jsxs("div", {
|
|
@@ -5073,6 +5227,145 @@ const JoinData = props => {
|
|
|
5073
5227
|
onClick: selectJoinColumn,
|
|
5074
5228
|
children: meta.table2.column ? meta.table2.column : __('SqlQueryBuilder.pickTable')
|
|
5075
5229
|
})]
|
|
5230
|
+
}), meta.table1.column_id && meta.table2.column_id && meta.expressions?.map((v, i) => {
|
|
5231
|
+
return jsxs("div", {
|
|
5232
|
+
className: cx(`Sqb-where block`),
|
|
5233
|
+
children: [jsx("span", {
|
|
5234
|
+
className: 'ml-2 mr-4 text-gray-500',
|
|
5235
|
+
children: v.operator
|
|
5236
|
+
}), v.left_isString ? jsx(Input$1, {
|
|
5237
|
+
disabled: meta.readonly,
|
|
5238
|
+
className: ':Sqb-TableName-input',
|
|
5239
|
+
value: v.left_string,
|
|
5240
|
+
placeholder: __('SqlQueryBuilder.pleaseEnter'),
|
|
5241
|
+
style: {
|
|
5242
|
+
width: '180px'
|
|
5243
|
+
},
|
|
5244
|
+
size: 'large',
|
|
5245
|
+
onChange: val => {
|
|
5246
|
+
onChangeString('left_string', i, val);
|
|
5247
|
+
}
|
|
5248
|
+
}) : jsx("div", {
|
|
5249
|
+
className: cx(`Sqb-TableName`, {
|
|
5250
|
+
notSelected: !v.left_column
|
|
5251
|
+
}),
|
|
5252
|
+
"v-data": ExpressionsEnum.LEFT,
|
|
5253
|
+
"v-index": i,
|
|
5254
|
+
onClick: selectMoreJoinColumn,
|
|
5255
|
+
children: v.left_column ? v.left_column : __('SqlQueryBuilder.pickTable')
|
|
5256
|
+
}), jsx(Tooltip$1, {
|
|
5257
|
+
title: __('SqlQueryBuilder.switch'),
|
|
5258
|
+
children: jsx(Button$1, {
|
|
5259
|
+
disabled: meta.readonly,
|
|
5260
|
+
primary: true,
|
|
5261
|
+
ghost: true,
|
|
5262
|
+
className: 'mr-2 operator-icon',
|
|
5263
|
+
icon: jsx(Repeat, {}),
|
|
5264
|
+
onClick: () => {
|
|
5265
|
+
onIsString('left_isString', i);
|
|
5266
|
+
}
|
|
5267
|
+
})
|
|
5268
|
+
}), jsx("span", {
|
|
5269
|
+
className: 'mr-2 text-gray-500',
|
|
5270
|
+
children: "="
|
|
5271
|
+
}), v.right_isString ? jsx(Input$1, {
|
|
5272
|
+
disabled: meta.readonly,
|
|
5273
|
+
className: ':Sqb-TableName-input',
|
|
5274
|
+
value: v.right_string,
|
|
5275
|
+
placeholder: __('SqlQueryBuilder.pleaseEnter'),
|
|
5276
|
+
style: {
|
|
5277
|
+
width: '180px'
|
|
5278
|
+
},
|
|
5279
|
+
size: 'large',
|
|
5280
|
+
onChange: val => {
|
|
5281
|
+
onChangeString('right_string', i, val);
|
|
5282
|
+
}
|
|
5283
|
+
}) : jsx("div", {
|
|
5284
|
+
className: cx(`Sqb-TableName`, {
|
|
5285
|
+
notSelected: !v.right_column
|
|
5286
|
+
}),
|
|
5287
|
+
"v-data": ExpressionsEnum.RIGHT,
|
|
5288
|
+
"v-index": i,
|
|
5289
|
+
onClick: selectMoreJoinColumn,
|
|
5290
|
+
children: v.right_column ? v.right_column : __('SqlQueryBuilder.pickTable')
|
|
5291
|
+
}), jsx(Tooltip$1, {
|
|
5292
|
+
title: __('SqlQueryBuilder.switch'),
|
|
5293
|
+
children: jsx(Button$1, {
|
|
5294
|
+
disabled: meta.readonly,
|
|
5295
|
+
primary: true,
|
|
5296
|
+
ghost: true,
|
|
5297
|
+
className: 'mr-2 operator-icon',
|
|
5298
|
+
icon: jsx(Repeat, {}),
|
|
5299
|
+
onClick: () => {
|
|
5300
|
+
onIsString('right_isString', i);
|
|
5301
|
+
}
|
|
5302
|
+
})
|
|
5303
|
+
}), jsx(Tooltip$1, {
|
|
5304
|
+
title: __('SqlQueryBuilder.add'),
|
|
5305
|
+
children: jsx(Button$1, {
|
|
5306
|
+
disabled: meta.readonly,
|
|
5307
|
+
primary: true,
|
|
5308
|
+
ghost: true,
|
|
5309
|
+
className: 'mr-2 operator-icon',
|
|
5310
|
+
icon: jsx(FfPlus, {}),
|
|
5311
|
+
onClick: () => {
|
|
5312
|
+
let index = findIndex(store.metaList, meta);
|
|
5313
|
+
let newMeta = store.metaList.slice();
|
|
5314
|
+
newMeta[index].expressions.splice(i + 1, 0, {
|
|
5315
|
+
operator: 'and',
|
|
5316
|
+
left_column: '',
|
|
5317
|
+
left_column_id: '',
|
|
5318
|
+
left_string: '',
|
|
5319
|
+
left_isString: false,
|
|
5320
|
+
right_column: '',
|
|
5321
|
+
right_column_id: '',
|
|
5322
|
+
right_string: '',
|
|
5323
|
+
right_isString: false
|
|
5324
|
+
});
|
|
5325
|
+
store.setMeta(newMeta);
|
|
5326
|
+
}
|
|
5327
|
+
})
|
|
5328
|
+
}), meta.expressions.length > 0 && jsx(Tooltip$1, {
|
|
5329
|
+
title: __('SqlQueryBuilder.del'),
|
|
5330
|
+
children: jsx(Button$1, {
|
|
5331
|
+
disabled: meta.readonly,
|
|
5332
|
+
danger: true,
|
|
5333
|
+
className: 'mr-2 operator-icon',
|
|
5334
|
+
icon: jsx(FfLine, {}),
|
|
5335
|
+
onClick: () => {
|
|
5336
|
+
let index = findIndex(store.metaList, meta);
|
|
5337
|
+
let newMeta = store.metaList.slice();
|
|
5338
|
+
newMeta[index].expressions.splice(i, 1);
|
|
5339
|
+
store.setMeta(newMeta);
|
|
5340
|
+
}
|
|
5341
|
+
})
|
|
5342
|
+
})]
|
|
5343
|
+
}, i);
|
|
5344
|
+
}), meta.table1.column_id && meta.table2.column_id && meta.expressions.length < 1 && jsx(Tooltip$1, {
|
|
5345
|
+
title: __('SqlQueryBuilder.add'),
|
|
5346
|
+
children: jsx(Button$1, {
|
|
5347
|
+
disabled: meta.readonly,
|
|
5348
|
+
primary: true,
|
|
5349
|
+
ghost: true,
|
|
5350
|
+
className: 'mr-2 operator-icon',
|
|
5351
|
+
icon: jsx(FfPlus, {}),
|
|
5352
|
+
onClick: () => {
|
|
5353
|
+
let index = findIndex(store.metaList, meta);
|
|
5354
|
+
let newMeta = store.metaList.slice();
|
|
5355
|
+
newMeta[index].expressions = [{
|
|
5356
|
+
operator: 'and',
|
|
5357
|
+
left_column: '',
|
|
5358
|
+
left_column_id: '',
|
|
5359
|
+
left_string: '',
|
|
5360
|
+
left_isString: false,
|
|
5361
|
+
right_column: '',
|
|
5362
|
+
right_column_id: '',
|
|
5363
|
+
right_string: '',
|
|
5364
|
+
right_isString: false
|
|
5365
|
+
}];
|
|
5366
|
+
store.setMeta(newMeta);
|
|
5367
|
+
}
|
|
5368
|
+
})
|
|
5076
5369
|
}), columnsSelected && store.showFields && jsx("div", {
|
|
5077
5370
|
className: `Sqb-TableColumns`,
|
|
5078
5371
|
onClick: selectColumns,
|