@gingkoo/pandora-metabase 1.0.0-alpha.5 → 1.0.0-alpha.7
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
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @gingkoo/pandora-metabase v1.0.0-alpha.
|
|
2
|
+
* @gingkoo/pandora-metabase v1.0.0-alpha.7
|
|
3
3
|
*/
|
|
4
4
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
5
5
|
import * as React from 'react';
|
|
@@ -735,8 +735,8 @@ const changeTableAlias = (list, curObj) => {
|
|
|
735
735
|
if (v.type === TypeEnum.customColumn) {
|
|
736
736
|
v.customColumn.map(item => {
|
|
737
737
|
item.formulaList?.map(formula => {
|
|
738
|
-
if (formula.tableUuid === tableUuid) {
|
|
739
|
-
formula.alias = alias;
|
|
738
|
+
if (formula.expression && formula.expression.tableUuid === tableUuid) {
|
|
739
|
+
formula.expression.alias = alias;
|
|
740
740
|
}
|
|
741
741
|
});
|
|
742
742
|
});
|
|
@@ -808,8 +808,8 @@ const changeFieldAlias = (list, curObj) => {
|
|
|
808
808
|
if (v.type === TypeEnum.customColumn) {
|
|
809
809
|
v.customColumn.map(item => {
|
|
810
810
|
item.formulaList?.map(formula => {
|
|
811
|
-
if (formula.fieldUuid === fieldUuid) {
|
|
812
|
-
formula.fieldAlias = fieldAlias;
|
|
811
|
+
if (formula.expression && formula.expression.fieldUuid === fieldUuid) {
|
|
812
|
+
formula.expression.fieldAlias = fieldAlias;
|
|
813
813
|
}
|
|
814
814
|
});
|
|
815
815
|
});
|
|
@@ -3711,7 +3711,7 @@ const SelectColumn = ({
|
|
|
3711
3711
|
});
|
|
3712
3712
|
};
|
|
3713
3713
|
|
|
3714
|
-
var css_248z$6 = ".Sqb-SelectColumns--box {\n box-sizing: border-box;\n min-width: 1em;\n max-width: 500px;\n background-color: #ffffff;\n overflow: hidden;\n}\n.Sqb-SelectColumns--box .Sqb-List-item {\n display: flex;\n border-radius: 4px;\n margin-top: 2px;\n margin-bottom: 2px;\n}\n.Sqb-SelectColumns--box .Sqb-List-item
|
|
3714
|
+
var css_248z$6 = ".Sqb-SelectColumns--box {\n box-sizing: border-box;\n min-width: 1em;\n max-width: 500px;\n background-color: #ffffff;\n overflow: hidden;\n}\n.Sqb-SelectColumns--box .Sqb-List-item {\n display: flex;\n border-radius: 4px;\n margin-top: 2px;\n margin-bottom: 2px;\n}\n.Sqb-SelectColumns--box .Sqb-List-item .List-item {\n flex: auto;\n cursor: pointer;\n display: flex;\n align-items: center;\n}\n.Sqb-SelectColumns--box .Sqb-List-item .List-item-icon {\n display: flex;\n align-items: center;\n color: #b8bbc3;\n}\n.Sqb-SelectColumns--box .Sqb-List-item .List-item-title {\n word-break: break-word;\n word-wrap: anywhere;\n color: #4c5773;\n margin-top: 0;\n margin-bottom: 0;\n font-size: 14px;\n}\n.Sqb-SelectColumns--box .Sqb-List-item .Field-extra {\n display: flex;\n align-items: center;\n padding: 0.5rem;\n cursor: pointer;\n border-left: 2px solid rgba(113, 114, 173, 0.1);\n color: rgba(255, 255, 255, 0.5);\n visibility: hidden;\n}\n.Sqb-SelectColumns--box .Sqb-List-item .Field-extra h4 {\n margin-bottom: 0;\n color: inherit;\n}\n.Sqb-SelectColumns--box .Sqb-List-item .Field-extra svg {\n color: #fff;\n margin-left: 0.5rem;\n}\n.Sqb-SelectColumns--box .Sqb-List-item .Field-extra:hover {\n color: #fff;\n}\n.Sqb-SelectColumns--box .Sqb-List-item:not(.disabled):hover,\n.Sqb-SelectColumns--box .Sqb-List-item.active {\n background-color: #509ee3;\n border-color: rgba(169, 137, 197, 0.2);\n}\n.Sqb-SelectColumns--box .Sqb-List-item:not(.disabled):hover .List-item-icon,\n.Sqb-SelectColumns--box .Sqb-List-item.active .List-item-icon {\n color: #fff !important;\n}\n.Sqb-SelectColumns--box .Sqb-List-item:not(.disabled):hover .List-item-title,\n.Sqb-SelectColumns--box .Sqb-List-item.active .List-item-title {\n color: #fff !important;\n}\n.Sqb-SelectColumns--box .Sqb-List-item:not(.disabled):hover .Field-extra,\n.Sqb-SelectColumns--box .Sqb-List-item.active .Field-extra {\n visibility: visible;\n}\n.Sqb-SelectColumns--box .Sqb-List-item.disabled .List-item-title {\n color: #949aab !important;\n}\n.Sqb-SelectColumns--box .Sqb-List-title {\n display: flex;\n border-radius: 4px;\n}\n.Sqb-SelectColumns--box .Sqb-List-title .List-item {\n flex: auto;\n cursor: pointer;\n display: flex;\n align-items: center;\n color: #4c5773;\n overflow: hidden;\n}\n.Sqb-SelectColumns--box .Sqb-List-title .List-item-icon {\n display: flex;\n align-items: center;\n}\n.Sqb-SelectColumns--box .Sqb-List-title .List-item-title {\n word-break: break-word;\n word-wrap: anywhere;\n margin-top: 0;\n margin-bottom: 0;\n font-size: 16px;\n font-weight: 600;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.Sqb-SelectColumns--box .Sqb-List-title .List-title-arrow {\n margin-left: auto;\n}\n.Sqb-SelectColumns--box .Sqb-List-title.active .List-item-icon {\n color: #509ee3;\n}\n.Sqb-SelectColumns--box .Sqb-List-title.shrink {\n cursor: pointer;\n}\n.Sqb-SelectColumns--box .Sqb-List-title.shrink .List-item {\n cursor: pointer;\n}\n.Sqb-SelectColumns--box .Sqb-List-title.shrink:hover .List-item {\n color: #509ee3;\n}\n.Sqb-SelectColumns--box .Sqb-List-title.shrink:hover .List-item .List-item-title {\n color: #509ee3;\n}\n.Sqb-SelectColumns--box .Sqb-List-search {\n display: flex;\n align-items: center;\n flex: 1 0 auto;\n color: #b8bbc3;\n background-color: #fff;\n border: 1px solid #f0f0f0;\n font-size: 14px;\n}\n.Sqb-SelectColumns--box .Sqb-List-search span {\n line-height: 0;\n}\n.Sqb-SelectColumns--box .Sqb-List-search input {\n box-shadow: none;\n outline: 0;\n border: none !important;\n background: transparent;\n color: #4c5773;\n font-size: 1.12em;\n font-weight: 600;\n}\n.Sqb-SelectColumns--box .Sqb-List-search input::-webkit-input-placeholder {\n color: #b8bbc3;\n}\n.Sqb-SelectColumns--box .Sqb-List-search input::-ms-input-placeholder {\n color: #b8bbc3;\n}\n.Sqb-SelectColumns--box.greenGrass .Sqb-List-item:not(.disabled):hover,\n.Sqb-SelectColumns--box.greenGrass .Sqb-List-item.active {\n background-color: #88bf4d;\n}\n.Sqb-SelectColumns--box.greenGrass .Sqb-List-title.active .List-item-icon {\n color: #88bf4d;\n}\n.Sqb-SelectColumns--box.greenGrass .Sqb-List-title.shrink:hover a {\n color: #88bf4d;\n}\n.Sqb-SelectColumns--box.greenGrass .Sqb-List-title.shrink:hover a .List-item-title {\n color: #88bf4d;\n}\n.Sqb-SelectColumns--box.purple .Sqb-List-item:not(.disabled):hover,\n.Sqb-SelectColumns--box.purple .Sqb-List-item.active {\n background-color: #7172ad;\n}\n.Sqb-SelectColumns--box.purple .Sqb-List-title.active .List-item-icon {\n color: #7172ad;\n}\n.Sqb-SelectColumns--box.purple .Sqb-List-title.shrink:hover a {\n color: #7172ad;\n}\n.Sqb-SelectColumns--box.purple .Sqb-List-title.shrink:hover a .List-item-title {\n color: #7172ad;\n}\n.menu-list {\n border: none !important;\n}\n.menu-list .ant-menu-item:hover {\n color: #88bf4d !important;\n}\n.menu-list .ant-menu-item-selected {\n background-color: #88bf4d !important;\n color: #fff !important;\n border-radius: 4px !important;\n}\n";
|
|
3715
3715
|
styleInject(css_248z$6);
|
|
3716
3716
|
|
|
3717
3717
|
const NUMBER_GROUP = [SQL_COLUMN_TYPE.FLOAT, SQL_COLUMN_TYPE.LONG, SQL_COLUMN_TYPE.CURRENCY];
|
|
@@ -3829,7 +3829,8 @@ const SelectJoinColumn = ({
|
|
|
3829
3829
|
})));
|
|
3830
3830
|
}
|
|
3831
3831
|
},
|
|
3832
|
-
children: jsxs("
|
|
3832
|
+
children: jsxs("div", {
|
|
3833
|
+
className: 'List-item',
|
|
3833
3834
|
children: [jsx("span", {
|
|
3834
3835
|
className: 'List-item-icon',
|
|
3835
3836
|
children: jsx(TableIcon, {})
|
|
@@ -3848,7 +3849,7 @@ const SelectJoinColumn = ({
|
|
|
3848
3849
|
})]
|
|
3849
3850
|
})
|
|
3850
3851
|
})
|
|
3851
|
-
}), open && jsxs(Fragment, {
|
|
3852
|
+
}), (open || isSummarize) && jsxs(Fragment, {
|
|
3852
3853
|
children: [!isSummarize && jsx("div", {
|
|
3853
3854
|
className: cx(`Sqb-List-section`),
|
|
3854
3855
|
children: jsxs("div", {
|
|
@@ -3921,8 +3922,8 @@ const SelectJoinColumn = ({
|
|
|
3921
3922
|
realName
|
|
3922
3923
|
});
|
|
3923
3924
|
},
|
|
3924
|
-
children: [jsxs("
|
|
3925
|
-
className: 'p-2',
|
|
3925
|
+
children: [jsxs("div", {
|
|
3926
|
+
className: 'p-2 List-item',
|
|
3926
3927
|
children: [jsx("span", {
|
|
3927
3928
|
className: 'List-item-icon',
|
|
3928
3929
|
children: IconMap[special_type || database_type] || jsx(LetterAaIcon, {})
|
|
@@ -3961,7 +3962,8 @@ const SelectFilterColumn = ({
|
|
|
3961
3962
|
value,
|
|
3962
3963
|
onChange,
|
|
3963
3964
|
didUpdate,
|
|
3964
|
-
isCustom: _isCustom = false
|
|
3965
|
+
isCustom: _isCustom = false,
|
|
3966
|
+
container: _container = null
|
|
3965
3967
|
}) => {
|
|
3966
3968
|
const [curColumn, setCurColumn] = useState(value);
|
|
3967
3969
|
const [condition, setCondition] = useState(value.condition);
|
|
@@ -4378,6 +4380,7 @@ const SelectFilterColumn = ({
|
|
|
4378
4380
|
store.setPopup2({
|
|
4379
4381
|
visible: true,
|
|
4380
4382
|
node: e.currentTarget,
|
|
4383
|
+
container: _container,
|
|
4381
4384
|
content: jsx(SelectList, {
|
|
4382
4385
|
value: valType,
|
|
4383
4386
|
list: store.constantList || [],
|
|
@@ -4400,6 +4403,7 @@ const SelectFilterColumn = ({
|
|
|
4400
4403
|
store.setPopup2({
|
|
4401
4404
|
visible: true,
|
|
4402
4405
|
node: e.currentTarget,
|
|
4406
|
+
container: _container,
|
|
4403
4407
|
content: jsx(SelectList, {
|
|
4404
4408
|
value: valType,
|
|
4405
4409
|
list: [{
|
|
@@ -4434,6 +4438,7 @@ const SelectFilterColumn = ({
|
|
|
4434
4438
|
store.setPopup2({
|
|
4435
4439
|
visible: true,
|
|
4436
4440
|
node: e.currentTarget,
|
|
4441
|
+
container: _container,
|
|
4437
4442
|
content: jsx(SelectJoinColumn, {
|
|
4438
4443
|
data: [..._data],
|
|
4439
4444
|
value: value,
|
|
@@ -6539,12 +6544,12 @@ const CaseEditor = props => {
|
|
|
6539
6544
|
onOk,
|
|
6540
6545
|
onCancel
|
|
6541
6546
|
} = props;
|
|
6542
|
-
const [popup, setPopup] = useState({
|
|
6543
|
-
visible: false
|
|
6544
|
-
}); // 弹框信息
|
|
6547
|
+
// const [popup, setPopup] = useState<PopupType>({ visible: false }); // 弹框信息
|
|
6545
6548
|
const [caseList, setCaseList] = useState(value.formulaList || []);
|
|
6546
6549
|
const [name, setName] = useState(value?.name || ''); // 表达式名字
|
|
6547
6550
|
const [ind, setInd] = useState(-1);
|
|
6551
|
+
const ref = useRef(null);
|
|
6552
|
+
const store = useStore$1();
|
|
6548
6553
|
const filterCase = useMemo(() => {
|
|
6549
6554
|
const hasCase = caseList.some(item => item.type === OptionsTypeEnum.OTHER && item.operator === 'case');
|
|
6550
6555
|
if (hasCase) {
|
|
@@ -6556,24 +6561,22 @@ const CaseEditor = props => {
|
|
|
6556
6561
|
const usable = useMemo(() => {
|
|
6557
6562
|
return Array.from(caseList).length > 0 && name;
|
|
6558
6563
|
}, [caseList, name]);
|
|
6559
|
-
const popupContent = useMemo(() => {
|
|
6560
|
-
|
|
6561
|
-
|
|
6562
|
-
|
|
6563
|
-
|
|
6564
|
-
if (!visible) return null;
|
|
6565
|
-
return content;
|
|
6566
|
-
}, [popup]);
|
|
6564
|
+
// const popupContent = useMemo(() => {
|
|
6565
|
+
// let { visible, content } = popup;
|
|
6566
|
+
// if (!visible) return null;
|
|
6567
|
+
// return content;
|
|
6568
|
+
// }, [popup]);
|
|
6567
6569
|
function closePopup() {
|
|
6568
|
-
setPopup({
|
|
6570
|
+
store.setPopup({
|
|
6569
6571
|
visible: false
|
|
6570
6572
|
});
|
|
6571
6573
|
}
|
|
6572
6574
|
// 字段
|
|
6573
6575
|
function handleField(e, i, val) {
|
|
6574
|
-
setPopup({
|
|
6576
|
+
store.setPopup({
|
|
6575
6577
|
visible: true,
|
|
6576
6578
|
node: e.currentTarget,
|
|
6579
|
+
container: ref.current,
|
|
6577
6580
|
content: jsx(SelectJoinColumn, {
|
|
6578
6581
|
data: data,
|
|
6579
6582
|
value: val,
|
|
@@ -6581,8 +6584,13 @@ const CaseEditor = props => {
|
|
|
6581
6584
|
isGroup: true,
|
|
6582
6585
|
// @ts-ignore
|
|
6583
6586
|
onGroup: data => {
|
|
6587
|
+
let _data = cloneDeep(data);
|
|
6588
|
+
if (_data.alias != SummarizeAlias$1) {
|
|
6589
|
+
_data.fieldAlias = _data.name;
|
|
6590
|
+
_data.fieldUuid = uuidv4('field');
|
|
6591
|
+
}
|
|
6584
6592
|
const _caseList = caseList.slice();
|
|
6585
|
-
_caseList[i].expression =
|
|
6593
|
+
_caseList[i].expression = _data;
|
|
6586
6594
|
setCaseList(_caseList);
|
|
6587
6595
|
closePopup();
|
|
6588
6596
|
}
|
|
@@ -6598,16 +6606,23 @@ const CaseEditor = props => {
|
|
|
6598
6606
|
};
|
|
6599
6607
|
// 表达式
|
|
6600
6608
|
function handleExpression(e, i, val) {
|
|
6601
|
-
setPopup({
|
|
6609
|
+
store.setPopup({
|
|
6602
6610
|
visible: true,
|
|
6603
6611
|
node: e.currentTarget,
|
|
6612
|
+
container: ref.current,
|
|
6604
6613
|
content: jsx(SelectFilter, {
|
|
6605
6614
|
isCustom: true,
|
|
6615
|
+
container: ref.current,
|
|
6606
6616
|
data: data,
|
|
6607
6617
|
value: val,
|
|
6608
6618
|
onChange: data => {
|
|
6619
|
+
let _data = cloneDeep(data);
|
|
6620
|
+
if (_data.alias != SummarizeAlias$1) {
|
|
6621
|
+
_data.fieldAlias = _data.name;
|
|
6622
|
+
_data.fieldUuid = uuidv4('field');
|
|
6623
|
+
}
|
|
6609
6624
|
const _caseList = caseList.slice();
|
|
6610
|
-
_caseList[i].expression =
|
|
6625
|
+
_caseList[i].expression = _data;
|
|
6611
6626
|
setCaseList(_caseList);
|
|
6612
6627
|
closePopup();
|
|
6613
6628
|
}
|
|
@@ -6799,6 +6814,7 @@ const CaseEditor = props => {
|
|
|
6799
6814
|
};
|
|
6800
6815
|
return jsxs("div", {
|
|
6801
6816
|
className: 'custom-box',
|
|
6817
|
+
ref: ref,
|
|
6802
6818
|
children: [jsx(VisualBox$1, {
|
|
6803
6819
|
children: jsx("div", {
|
|
6804
6820
|
className: `Sqb-item Sqb-case-editor mb-2 mt-2`,
|
|
@@ -6936,13 +6952,6 @@ const CaseEditor = props => {
|
|
|
6936
6952
|
})]
|
|
6937
6953
|
})
|
|
6938
6954
|
})
|
|
6939
|
-
}), jsx(Popup, {
|
|
6940
|
-
visible: popup.visible,
|
|
6941
|
-
closable: true,
|
|
6942
|
-
node: popup.node,
|
|
6943
|
-
innerSpacing: popup.innerSpacing,
|
|
6944
|
-
hideVisible: closePopup,
|
|
6945
|
-
children: popupContent
|
|
6946
6955
|
}), jsx("div", {
|
|
6947
6956
|
className: `btns p-4`,
|
|
6948
6957
|
children: jsxs("div", {
|
|
@@ -7074,7 +7083,7 @@ const CustomColumn = props => {
|
|
|
7074
7083
|
}
|
|
7075
7084
|
return data;
|
|
7076
7085
|
}
|
|
7077
|
-
//
|
|
7086
|
+
// 自定义弹窗
|
|
7078
7087
|
const showSubQuery = (e, i) => {
|
|
7079
7088
|
let newMeta = store.metaList[groupIndex].list.slice();
|
|
7080
7089
|
const _value = newMeta[index].customColumn[i] || [];
|
|
@@ -8735,7 +8744,7 @@ const Metabase = props => {
|
|
|
8735
8744
|
onClick: onSave,
|
|
8736
8745
|
children: btnText || __('SqlQueryBuilder.visualize')
|
|
8737
8746
|
}) : null, store.popupContainer.current && jsx(Popup, {
|
|
8738
|
-
container: store.popupContainer.current,
|
|
8747
|
+
container: store.popupData.container || store.popupContainer.current,
|
|
8739
8748
|
visible: store.popupData.visible,
|
|
8740
8749
|
node: store.popupData.node,
|
|
8741
8750
|
closable: store.popupClosable,
|
|
@@ -8747,7 +8756,7 @@ const Metabase = props => {
|
|
|
8747
8756
|
},
|
|
8748
8757
|
children: popupContent
|
|
8749
8758
|
}), store.popupContainer.current && jsx(Popup, {
|
|
8750
|
-
container: store.popupContainer.current,
|
|
8759
|
+
container: store.popupData2.container || store.popupContainer.current,
|
|
8751
8760
|
visible: store.popupData2.visible,
|
|
8752
8761
|
node: store.popupData2.node,
|
|
8753
8762
|
closable: store.popupClosable2,
|