@gingkoo/pandora-metabase 1.0.123 → 1.0.124
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/cjs/components/dialog/expression/date-format-picker.d.ts +2 -0
- package/lib/cjs/components/dialog/expression/date-format-picker.js +14 -6
- package/lib/cjs/components/dialog/expression/index.d.ts +1 -0
- package/lib/cjs/components/dialog/expression/index.js +54 -9
- package/lib/cjs/components/dialog/formula-list/index.js +9 -0
- package/lib/cjs/components/modules/custom-column.js +3 -0
- package/lib/cjs/components/modules/summarize/group-by.js +5 -2
- package/lib/cjs/components/modules/summarize/select-index.js +13 -5
- package/lib/es/components/dialog/expression/date-format-picker.d.ts +2 -0
- package/lib/es/components/dialog/expression/date-format-picker.js +14 -6
- package/lib/es/components/dialog/expression/index.d.ts +1 -0
- package/lib/es/components/dialog/expression/index.js +54 -9
- package/lib/es/components/dialog/formula-list/index.js +9 -0
- package/lib/es/components/modules/custom-column.js +3 -0
- package/lib/es/components/modules/summarize/group-by.js +6 -3
- package/lib/es/components/modules/summarize/select-index.js +14 -6
- package/package.json +1 -1
|
@@ -3,12 +3,14 @@ interface DateRangeFormatPickerProps {
|
|
|
3
3
|
value?: string[];
|
|
4
4
|
format?: string;
|
|
5
5
|
onChange?: (val: string[], format?: string) => void;
|
|
6
|
+
getPopupContainer?: (node: HTMLElement) => Element;
|
|
6
7
|
}
|
|
7
8
|
export declare const DateRangeFormatPicker: React.FC<DateRangeFormatPickerProps>;
|
|
8
9
|
interface DateFormatPickerProps {
|
|
9
10
|
value?: string;
|
|
10
11
|
format?: string;
|
|
11
12
|
onChange?: (val: string, format?: string) => void;
|
|
13
|
+
getPopupContainer?: (node: HTMLElement) => Element;
|
|
12
14
|
}
|
|
13
15
|
export declare const DateFormatPicker: React.FC<DateFormatPickerProps>;
|
|
14
16
|
export {};
|
|
@@ -24,7 +24,8 @@ var DEFAULT_FORMAT = 'YYYY-MM-DD HH:mm';
|
|
|
24
24
|
var DateRangeFormatPicker = exports.DateRangeFormatPicker = function DateRangeFormatPicker(_ref) {
|
|
25
25
|
var value = _ref.value,
|
|
26
26
|
format = _ref.format,
|
|
27
|
-
onChange = _ref.onChange
|
|
27
|
+
onChange = _ref.onChange,
|
|
28
|
+
getPopupContainer = _ref.getPopupContainer;
|
|
28
29
|
var _useState = (0, _react.useState)(format || DEFAULT_FORMAT),
|
|
29
30
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
30
31
|
currentFormat = _useState2[0],
|
|
@@ -79,6 +80,7 @@ var DateRangeFormatPicker = exports.DateRangeFormatPicker = function DateRangeFo
|
|
|
79
80
|
},
|
|
80
81
|
value: currentFormat,
|
|
81
82
|
onChange: handleFormatChange,
|
|
83
|
+
getPopupContainer: getPopupContainer,
|
|
82
84
|
children: DATE_FORMAT_OPTIONS.map(function (option) {
|
|
83
85
|
return (0, _jsxRuntime.jsx)(_pandora.Select.Option, {
|
|
84
86
|
value: option.value,
|
|
@@ -93,14 +95,16 @@ var DateRangeFormatPicker = exports.DateRangeFormatPicker = function DateRangeFo
|
|
|
93
95
|
},
|
|
94
96
|
format: currentFormat,
|
|
95
97
|
showTime: showTime,
|
|
96
|
-
mode: getRangePickerMode()
|
|
98
|
+
mode: getRangePickerMode(),
|
|
99
|
+
getPopupContainer: getPopupContainer
|
|
97
100
|
})]
|
|
98
101
|
});
|
|
99
102
|
};
|
|
100
103
|
var DateFormatPicker = exports.DateFormatPicker = function DateFormatPicker(_ref2) {
|
|
101
104
|
var value = _ref2.value,
|
|
102
105
|
format = _ref2.format,
|
|
103
|
-
onChange = _ref2.onChange
|
|
106
|
+
onChange = _ref2.onChange,
|
|
107
|
+
getPopupContainer = _ref2.getPopupContainer;
|
|
104
108
|
var _useState3 = (0, _react.useState)(format || DEFAULT_FORMAT),
|
|
105
109
|
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
106
110
|
currentFormat = _useState4[0],
|
|
@@ -147,7 +151,8 @@ var DateFormatPicker = exports.DateFormatPicker = function DateFormatPicker(_ref
|
|
|
147
151
|
onChange: handleYearChange,
|
|
148
152
|
style: {
|
|
149
153
|
flex: 1
|
|
150
|
-
}
|
|
154
|
+
},
|
|
155
|
+
getPopupContainer: getPopupContainer
|
|
151
156
|
});
|
|
152
157
|
}
|
|
153
158
|
if (isMonthOnly) {
|
|
@@ -157,7 +162,8 @@ var DateFormatPicker = exports.DateFormatPicker = function DateFormatPicker(_ref
|
|
|
157
162
|
style: {
|
|
158
163
|
flex: 1
|
|
159
164
|
},
|
|
160
|
-
format: currentFormat
|
|
165
|
+
format: currentFormat,
|
|
166
|
+
getPopupContainer: getPopupContainer
|
|
161
167
|
});
|
|
162
168
|
}
|
|
163
169
|
return (0, _jsxRuntime.jsx)(_pandora.DatePicker, {
|
|
@@ -167,7 +173,8 @@ var DateFormatPicker = exports.DateFormatPicker = function DateFormatPicker(_ref
|
|
|
167
173
|
flex: 1
|
|
168
174
|
},
|
|
169
175
|
format: currentFormat,
|
|
170
|
-
showTime: showTime
|
|
176
|
+
showTime: showTime,
|
|
177
|
+
getPopupContainer: getPopupContainer
|
|
171
178
|
});
|
|
172
179
|
};
|
|
173
180
|
return (0, _jsxRuntime.jsxs)("div", {
|
|
@@ -181,6 +188,7 @@ var DateFormatPicker = exports.DateFormatPicker = function DateFormatPicker(_ref
|
|
|
181
188
|
},
|
|
182
189
|
value: currentFormat,
|
|
183
190
|
onChange: handleFormatChange,
|
|
191
|
+
getPopupContainer: getPopupContainer,
|
|
184
192
|
children: DATE_FORMAT_OPTIONS.map(function (option) {
|
|
185
193
|
return (0, _jsxRuntime.jsx)(_pandora.Select.Option, {
|
|
186
194
|
value: option.value,
|
|
@@ -9,6 +9,7 @@ interface PropsType {
|
|
|
9
9
|
isCustom?: boolean;
|
|
10
10
|
container?: any;
|
|
11
11
|
filterCustomType?: boolean;
|
|
12
|
+
parentPopupChannel?: 'primary' | 'secondary';
|
|
12
13
|
}
|
|
13
14
|
declare const _default: (props: PropsType) => import("react/jsx-runtime").JSX.Element;
|
|
14
15
|
export default _default;
|
|
@@ -54,7 +54,8 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
|
|
|
54
54
|
_ref$container = _ref.container,
|
|
55
55
|
container = _ref$container === void 0 ? null : _ref$container,
|
|
56
56
|
_ref$filterCustomType = _ref.filterCustomType,
|
|
57
|
-
filterCustomType = _ref$filterCustomType === void 0 ? false : _ref$filterCustomType
|
|
57
|
+
filterCustomType = _ref$filterCustomType === void 0 ? false : _ref$filterCustomType,
|
|
58
|
+
parentPopupChannel = _ref.parentPopupChannel;
|
|
58
59
|
var _useState = (0, _react.useState)(value),
|
|
59
60
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
60
61
|
curColumn = _useState2[0],
|
|
@@ -84,6 +85,37 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
|
|
|
84
85
|
_useState12 = (0, _slicedToArray2["default"])(_useState11, 2),
|
|
85
86
|
isNext = _useState12[0],
|
|
86
87
|
setIsNext = _useState12[1];
|
|
88
|
+
var setParentClosable = function setParentClosable(closable) {
|
|
89
|
+
if (parentPopupChannel === 'secondary') {
|
|
90
|
+
store.setClosable2(closable);
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
store.setClosable(closable);
|
|
94
|
+
};
|
|
95
|
+
var setDropdownClosable = function setDropdownClosable(visible) {
|
|
96
|
+
if (visible) {
|
|
97
|
+
setParentClosable(false);
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
setTimeout(function () {
|
|
101
|
+
return setParentClosable(true);
|
|
102
|
+
}, 300);
|
|
103
|
+
};
|
|
104
|
+
var setSelectPopupClosable = function setSelectPopupClosable(visible) {
|
|
105
|
+
setPopupVisible(visible);
|
|
106
|
+
if (visible) {
|
|
107
|
+
setParentClosable(false);
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
setTimeout(function () {
|
|
111
|
+
return setParentClosable(true);
|
|
112
|
+
}, 300);
|
|
113
|
+
};
|
|
114
|
+
var getCurrentPopupContainer = function getCurrentPopupContainer(node) {
|
|
115
|
+
var _node$closest;
|
|
116
|
+
var popupContainer = node === null || node === void 0 || (_node$closest = node.closest) === null || _node$closest === void 0 ? void 0 : _node$closest.call(node, '[data-sqb-popup-container="true"]');
|
|
117
|
+
return popupContainer || document.body;
|
|
118
|
+
};
|
|
87
119
|
var table2Selected = Boolean(rhsVal && (rhsVal === null || rhsVal === void 0 ? void 0 : rhsVal.length) > 0);
|
|
88
120
|
var disabled = (0, _react.useMemo)(function () {
|
|
89
121
|
if (!condition) return true;
|
|
@@ -362,6 +394,8 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
|
|
|
362
394
|
return (0, _jsxRuntime.jsx)("div", {
|
|
363
395
|
children: (0, _jsxRuntime.jsx)(_pandora.Dropdown, {
|
|
364
396
|
trigger: ['click'],
|
|
397
|
+
onVisibleChange: setDropdownClosable,
|
|
398
|
+
getPopupContainer: getCurrentPopupContainer,
|
|
365
399
|
onChange: function onChange(key) {
|
|
366
400
|
setRhsVal([{
|
|
367
401
|
type: _types.AtomsTypeEnum.INPUT_STRING,
|
|
@@ -404,6 +438,8 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
|
|
|
404
438
|
}
|
|
405
439
|
}), (0, _jsxRuntime.jsx)(_pandora.Dropdown, {
|
|
406
440
|
trigger: ['click'],
|
|
441
|
+
onVisibleChange: setDropdownClosable,
|
|
442
|
+
getPopupContainer: getCurrentPopupContainer,
|
|
407
443
|
droplist: [{
|
|
408
444
|
key: '分',
|
|
409
445
|
label: (0, _locale.__)('filter.minute')
|
|
@@ -444,6 +480,7 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
|
|
|
444
480
|
return (0, _jsxRuntime.jsx)(_dateFormatPicker.DateFormatPicker, {
|
|
445
481
|
value: _dateVal,
|
|
446
482
|
format: _dateFormat,
|
|
483
|
+
getPopupContainer: getCurrentPopupContainer,
|
|
447
484
|
onChange: function onChange(val, format) {
|
|
448
485
|
if (val) {
|
|
449
486
|
setRhsVal([{
|
|
@@ -467,6 +504,7 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
|
|
|
467
504
|
return (0, _jsxRuntime.jsx)(_dateFormatPicker.DateFormatPicker, {
|
|
468
505
|
value: _dateVal2,
|
|
469
506
|
format: _dateFormat2,
|
|
507
|
+
getPopupContainer: getCurrentPopupContainer,
|
|
470
508
|
onChange: function onChange(val, format) {
|
|
471
509
|
if (val) {
|
|
472
510
|
setRhsVal([{
|
|
@@ -492,6 +530,7 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
|
|
|
492
530
|
placeholder: "\u53EF\u8F93\u5165\u56DE\u8F66\u65B0\u589E\u4E0B\u62C9\u9009\u9879",
|
|
493
531
|
allowCreate: true,
|
|
494
532
|
multiple: true,
|
|
533
|
+
getPopupContainer: getCurrentPopupContainer,
|
|
495
534
|
value: options,
|
|
496
535
|
onChange: function onChange(val) {
|
|
497
536
|
setRhsVal([{
|
|
@@ -501,10 +540,10 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
|
|
|
501
540
|
},
|
|
502
541
|
popupVisible: popupVisible,
|
|
503
542
|
onBlur: function onBlur() {
|
|
504
|
-
|
|
543
|
+
setSelectPopupClosable(false);
|
|
505
544
|
},
|
|
506
545
|
onClick: function onClick() {
|
|
507
|
-
|
|
546
|
+
setSelectPopupClosable(true);
|
|
508
547
|
},
|
|
509
548
|
children: options.map(function (option) {
|
|
510
549
|
return (0, _jsxRuntime.jsx)(_pandora.Select.Option, {
|
|
@@ -536,7 +575,7 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
|
|
|
536
575
|
});
|
|
537
576
|
}
|
|
538
577
|
var selectConstant = function selectConstant(e) {
|
|
539
|
-
|
|
578
|
+
setParentClosable(false);
|
|
540
579
|
var node = e.currentTarget;
|
|
541
580
|
var _val = node.getAttribute('v-val');
|
|
542
581
|
store.setPopup2({
|
|
@@ -552,13 +591,13 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
|
|
|
552
591
|
newVal[0].id = val;
|
|
553
592
|
newVal[0].val = (0, _utils.getConstantLabel)(store.constantList, val);
|
|
554
593
|
setRhsVal(newVal);
|
|
555
|
-
|
|
594
|
+
setParentClosable(true);
|
|
556
595
|
}
|
|
557
596
|
})
|
|
558
597
|
});
|
|
559
598
|
};
|
|
560
599
|
var onRepeat = function onRepeat(e) {
|
|
561
|
-
|
|
600
|
+
setParentClosable(false);
|
|
562
601
|
store.setPopup2({
|
|
563
602
|
visible: true,
|
|
564
603
|
node: e.currentTarget,
|
|
@@ -600,13 +639,13 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
|
|
|
600
639
|
type: _types.AtomsTypeEnum.FIELD
|
|
601
640
|
}]);
|
|
602
641
|
}
|
|
603
|
-
|
|
642
|
+
setParentClosable(true);
|
|
604
643
|
}
|
|
605
644
|
})
|
|
606
645
|
});
|
|
607
646
|
};
|
|
608
647
|
var selectTable = function selectTable(e) {
|
|
609
|
-
|
|
648
|
+
setParentClosable(false);
|
|
610
649
|
var node = e.currentTarget;
|
|
611
650
|
var _index = Number(node.getAttribute('v-index'));
|
|
612
651
|
store.setPopup2({
|
|
@@ -633,7 +672,7 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
|
|
|
633
672
|
store.setPopup2({
|
|
634
673
|
visible: false
|
|
635
674
|
});
|
|
636
|
-
|
|
675
|
+
setParentClosable(true);
|
|
637
676
|
}
|
|
638
677
|
})
|
|
639
678
|
});
|
|
@@ -680,6 +719,8 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
|
|
|
680
719
|
className: 'left-info-formula',
|
|
681
720
|
children: (0, _jsxRuntime.jsx)(_pandora.Dropdown, {
|
|
682
721
|
trigger: ['click'],
|
|
722
|
+
onVisibleChange: setDropdownClosable,
|
|
723
|
+
getPopupContainer: getCurrentPopupContainer,
|
|
683
724
|
onChange: function onChange(key) {
|
|
684
725
|
changeFormula(key);
|
|
685
726
|
},
|
|
@@ -745,6 +786,8 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
|
|
|
745
786
|
className: 'right-info',
|
|
746
787
|
children: [filterCustomType && (0, _jsxRuntime.jsx)(_pandora.Dropdown, {
|
|
747
788
|
trigger: ['click'],
|
|
789
|
+
onVisibleChange: setDropdownClosable,
|
|
790
|
+
getPopupContainer: getCurrentPopupContainer,
|
|
748
791
|
onChange: function onChange(key) {
|
|
749
792
|
setCondition('');
|
|
750
793
|
setCurColumn((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, curColumn), {}, {
|
|
@@ -768,6 +811,8 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
|
|
|
768
811
|
})
|
|
769
812
|
}), (0, _jsxRuntime.jsx)(_pandora.Dropdown, {
|
|
770
813
|
trigger: ['click'],
|
|
814
|
+
onVisibleChange: setDropdownClosable,
|
|
815
|
+
getPopupContainer: getCurrentPopupContainer,
|
|
771
816
|
onChange: function onChange(key) {
|
|
772
817
|
setCurColumn((0, _objectSpread2["default"])({}, curColumn));
|
|
773
818
|
setDefaultVal(key);
|
|
@@ -633,6 +633,11 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
|
|
|
633
633
|
visible: false
|
|
634
634
|
});
|
|
635
635
|
}
|
|
636
|
+
var getCurrentPopupContainer = function getCurrentPopupContainer(node) {
|
|
637
|
+
var _node$closest;
|
|
638
|
+
var popupContainer = node === null || node === void 0 || (_node$closest = node.closest) === null || _node$closest === void 0 ? void 0 : _node$closest.call(node, '[data-sqb-popup-container="true"]');
|
|
639
|
+
return popupContainer || document.body;
|
|
640
|
+
};
|
|
636
641
|
var getSelectTriggerProps = function getSelectTriggerProps() {
|
|
637
642
|
return {
|
|
638
643
|
clickToClose: true,
|
|
@@ -657,6 +662,7 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
|
|
|
657
662
|
showSearch: true,
|
|
658
663
|
trigger: trigger,
|
|
659
664
|
triggerProps: getSelectTriggerProps(),
|
|
665
|
+
getPopupContainer: getCurrentPopupContainer,
|
|
660
666
|
virtualListProps: {
|
|
661
667
|
threshold: null
|
|
662
668
|
},
|
|
@@ -754,6 +760,7 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
|
|
|
754
760
|
filterCustomType: filterCustomType,
|
|
755
761
|
data: data,
|
|
756
762
|
container: ref === null || ref === void 0 ? void 0 : ref.current,
|
|
763
|
+
parentPopupChannel: 'primary',
|
|
757
764
|
value: val || {},
|
|
758
765
|
onChange: function onChange(data) {
|
|
759
766
|
var _caseList = caseList.slice();
|
|
@@ -1216,6 +1223,7 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
|
|
|
1216
1223
|
}),
|
|
1217
1224
|
node: (0, _jsxRuntime.jsx)(_pandora.Select, {
|
|
1218
1225
|
triggerProps: getSelectTriggerProps(),
|
|
1226
|
+
getPopupContainer: getCurrentPopupContainer,
|
|
1219
1227
|
value: v.val,
|
|
1220
1228
|
triggerElement: function triggerElement() {
|
|
1221
1229
|
return renderTokenContent((0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
@@ -1317,6 +1325,7 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
|
|
|
1317
1325
|
}),
|
|
1318
1326
|
node: (0, _jsxRuntime.jsx)(_pandora.Select, {
|
|
1319
1327
|
triggerProps: getSelectTriggerProps(),
|
|
1328
|
+
getPopupContainer: getCurrentPopupContainer,
|
|
1320
1329
|
multiple: v.multiple,
|
|
1321
1330
|
value: v.val,
|
|
1322
1331
|
triggerElement: function triggerElement() {
|
|
@@ -26,6 +26,7 @@ var _metaIcon = _interopRequireDefault(require("./components/meta-icon"));
|
|
|
26
26
|
var _header = _interopRequireDefault(require("./components/header"));
|
|
27
27
|
var _itemWrapper = _interopRequireDefault(require("./components/item-wrapper"));
|
|
28
28
|
var _itemName = _interopRequireDefault(require("./components/item-name"));
|
|
29
|
+
var _helperDom = require("../../utils/helper-dom");
|
|
29
30
|
var CustomColumn = function CustomColumn(props) {
|
|
30
31
|
var meta = props.meta,
|
|
31
32
|
groupIndex = props.groupIndex;
|
|
@@ -213,7 +214,9 @@ var CustomColumn = function CustomColumn(props) {
|
|
|
213
214
|
var showSubQuery = function showSubQuery(e, i) {
|
|
214
215
|
var newMeta = store.metaList[groupIndex].list.slice();
|
|
215
216
|
var _value = newMeta[index].customColumn[i] || [];
|
|
217
|
+
var childModalZIndex = (0, _helperDom.getTopLayerZIndex)() + 1;
|
|
216
218
|
var o = _pandora.Modal2.openModal({
|
|
219
|
+
zIndex: childModalZIndex,
|
|
217
220
|
title: (0, _locale.__)('SqlQueryBuilder.customExpression'),
|
|
218
221
|
transparentMask: true,
|
|
219
222
|
content: (0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
|
|
@@ -365,7 +365,6 @@ var GroupBy = function GroupBy(props) {
|
|
|
365
365
|
newMeta = store.metaList[groupIndex].list.slice();
|
|
366
366
|
newMeta[index].by[i].fieldAlias = fieldAlias;
|
|
367
367
|
newMeta[index].by[i].sql = (0, _helper2.summarizeByToSql)(newMeta[index].by[i]);
|
|
368
|
-
newMeta = (0, _utils.changeFieldAlias)(newMeta, newMeta[index].by[i]);
|
|
369
368
|
store.setMeta(newMeta, groupIndex, {
|
|
370
369
|
obj: newMeta[index].by,
|
|
371
370
|
type: _types.ChangeType.by
|
|
@@ -460,6 +459,10 @@ var GroupBy = function GroupBy(props) {
|
|
|
460
459
|
var field = getField(record);
|
|
461
460
|
return field.fieldName ? [field] : [];
|
|
462
461
|
};
|
|
462
|
+
var getErrorCheckField = function getErrorCheckField(record) {
|
|
463
|
+
var atoms = getAtomsValue(record);
|
|
464
|
+
return _getFirstField(atoms) || getField(record);
|
|
465
|
+
};
|
|
463
466
|
var normalizeByRecord = function normalizeByRecord(record, itemIndex, metaList) {
|
|
464
467
|
var _store$preProps;
|
|
465
468
|
var atoms = getAtomsValue(record);
|
|
@@ -496,7 +499,7 @@ var GroupBy = function GroupBy(props) {
|
|
|
496
499
|
return (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
497
500
|
children: [meta.by.map(function (v, i) {
|
|
498
501
|
return (0, _jsxRuntime.jsx)(_itemName["default"], {
|
|
499
|
-
isError: (0, _utils.isExistsError)([
|
|
502
|
+
isError: (0, _utils.isExistsError)([getErrorCheckField(v)], store.existsError),
|
|
500
503
|
children: (0, _jsxRuntime.jsxs)("div", {
|
|
501
504
|
className: "Sqb-TableName green-name",
|
|
502
505
|
onClick: function onClick(e) {
|
|
@@ -161,7 +161,11 @@ var SelectIndex = function SelectIndex(props) {
|
|
|
161
161
|
_pandora.Toast.warning(summarizeWithoutArgumentMessage);
|
|
162
162
|
return;
|
|
163
163
|
}
|
|
164
|
-
newMeta[index].group
|
|
164
|
+
var prevRecord = newMeta[index].group[i];
|
|
165
|
+
var nextRecord = normalizeGroupRecord(data);
|
|
166
|
+
nextRecord.fieldAlias = (prevRecord === null || prevRecord === void 0 ? void 0 : prevRecord.fieldAlias) || nextRecord.fieldAlias;
|
|
167
|
+
nextRecord.fieldUuid = (prevRecord === null || prevRecord === void 0 ? void 0 : prevRecord.fieldUuid) || nextRecord.fieldUuid;
|
|
168
|
+
newMeta[index].group.splice(i, 1, nextRecord);
|
|
165
169
|
newMeta[index].group = newMeta[index].group.map(function (v) {
|
|
166
170
|
var _summarizeToSql = (0, _helper.summarizeToSql)(newMeta[index].group, v),
|
|
167
171
|
sql = _summarizeToSql.sql,
|
|
@@ -169,7 +173,8 @@ var SelectIndex = function SelectIndex(props) {
|
|
|
169
173
|
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v), {}, {
|
|
170
174
|
name: v.name || v.quotes,
|
|
171
175
|
sql: sql,
|
|
172
|
-
|
|
176
|
+
fieldUuid: v.fieldUuid || (0, _helper2.uuidv4)('field'),
|
|
177
|
+
fieldAlias: v.fieldAlias || fieldAlias
|
|
173
178
|
});
|
|
174
179
|
});
|
|
175
180
|
store.setMeta(newMeta, groupIndex, {
|
|
@@ -221,7 +226,7 @@ var SelectIndex = function SelectIndex(props) {
|
|
|
221
226
|
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v), {}, {
|
|
222
227
|
name: v.name || v.quotes,
|
|
223
228
|
sql: sql,
|
|
224
|
-
fieldUuid: (0, _helper2.uuidv4)('field'),
|
|
229
|
+
fieldUuid: v.fieldUuid || (0, _helper2.uuidv4)('field'),
|
|
225
230
|
fieldAlias: v.fieldAlias || fieldAlias,
|
|
226
231
|
summarizeType: _types.MetaSummarize_Enum.GROUP
|
|
227
232
|
});
|
|
@@ -276,7 +281,6 @@ var SelectIndex = function SelectIndex(props) {
|
|
|
276
281
|
newMeta = store.metaList[groupIndex].list.slice();
|
|
277
282
|
newMeta[index].group[i].fieldAlias = fieldAlias;
|
|
278
283
|
newMeta[index].group[i].sql = newMeta[index].group[i].sql.split('AS ')[0] + "AS ".concat(fieldAlias);
|
|
279
|
-
newMeta = (0, _utils.changeFieldAlias)(newMeta, newMeta[index].group[i]);
|
|
280
284
|
store.setMeta(newMeta, groupIndex, {
|
|
281
285
|
obj: newMeta[index].group,
|
|
282
286
|
type: _types.ChangeType.group
|
|
@@ -379,6 +383,10 @@ var SelectIndex = function SelectIndex(props) {
|
|
|
379
383
|
var field = getField(record);
|
|
380
384
|
return field.fieldName ? [field] : [];
|
|
381
385
|
};
|
|
386
|
+
var getErrorCheckField = function getErrorCheckField(record) {
|
|
387
|
+
var atoms = getAtomsValue(record);
|
|
388
|
+
return _getFirstField(atoms) || getField(record);
|
|
389
|
+
};
|
|
382
390
|
var normalizeGroupRecord = function normalizeGroupRecord(record) {
|
|
383
391
|
var atoms = getAtomsValue(record);
|
|
384
392
|
var firstField = _getFirstField(atoms);
|
|
@@ -406,7 +414,7 @@ var SelectIndex = function SelectIndex(props) {
|
|
|
406
414
|
return (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
407
415
|
children: [meta.group.map(function (v, i) {
|
|
408
416
|
return (0, _jsxRuntime.jsx)(_itemName["default"], {
|
|
409
|
-
isError: (0, _utils.isExistsError)([
|
|
417
|
+
isError: (0, _utils.isExistsError)([getErrorCheckField(v)], store.existsError),
|
|
410
418
|
children: (0, _jsxRuntime.jsxs)("div", {
|
|
411
419
|
className: "Sqb-TableName green-name",
|
|
412
420
|
onClick: function onClick(e) {
|
|
@@ -3,12 +3,14 @@ interface DateRangeFormatPickerProps {
|
|
|
3
3
|
value?: string[];
|
|
4
4
|
format?: string;
|
|
5
5
|
onChange?: (val: string[], format?: string) => void;
|
|
6
|
+
getPopupContainer?: (node: HTMLElement) => Element;
|
|
6
7
|
}
|
|
7
8
|
export declare const DateRangeFormatPicker: React.FC<DateRangeFormatPickerProps>;
|
|
8
9
|
interface DateFormatPickerProps {
|
|
9
10
|
value?: string;
|
|
10
11
|
format?: string;
|
|
11
12
|
onChange?: (val: string, format?: string) => void;
|
|
13
|
+
getPopupContainer?: (node: HTMLElement) => Element;
|
|
12
14
|
}
|
|
13
15
|
export declare const DateFormatPicker: React.FC<DateFormatPickerProps>;
|
|
14
16
|
export {};
|
|
@@ -17,7 +17,8 @@ var DEFAULT_FORMAT = 'YYYY-MM-DD HH:mm';
|
|
|
17
17
|
export var DateRangeFormatPicker = function DateRangeFormatPicker(_ref) {
|
|
18
18
|
var value = _ref.value,
|
|
19
19
|
format = _ref.format,
|
|
20
|
-
onChange = _ref.onChange
|
|
20
|
+
onChange = _ref.onChange,
|
|
21
|
+
getPopupContainer = _ref.getPopupContainer;
|
|
21
22
|
var _useState = useState(format || DEFAULT_FORMAT),
|
|
22
23
|
_useState2 = _slicedToArray(_useState, 2),
|
|
23
24
|
currentFormat = _useState2[0],
|
|
@@ -72,6 +73,7 @@ export var DateRangeFormatPicker = function DateRangeFormatPicker(_ref) {
|
|
|
72
73
|
},
|
|
73
74
|
value: currentFormat,
|
|
74
75
|
onChange: handleFormatChange,
|
|
76
|
+
getPopupContainer: getPopupContainer,
|
|
75
77
|
children: DATE_FORMAT_OPTIONS.map(function (option) {
|
|
76
78
|
return _jsx(Select.Option, {
|
|
77
79
|
value: option.value,
|
|
@@ -86,14 +88,16 @@ export var DateRangeFormatPicker = function DateRangeFormatPicker(_ref) {
|
|
|
86
88
|
},
|
|
87
89
|
format: currentFormat,
|
|
88
90
|
showTime: showTime,
|
|
89
|
-
mode: getRangePickerMode()
|
|
91
|
+
mode: getRangePickerMode(),
|
|
92
|
+
getPopupContainer: getPopupContainer
|
|
90
93
|
})]
|
|
91
94
|
});
|
|
92
95
|
};
|
|
93
96
|
export var DateFormatPicker = function DateFormatPicker(_ref2) {
|
|
94
97
|
var value = _ref2.value,
|
|
95
98
|
format = _ref2.format,
|
|
96
|
-
onChange = _ref2.onChange
|
|
99
|
+
onChange = _ref2.onChange,
|
|
100
|
+
getPopupContainer = _ref2.getPopupContainer;
|
|
97
101
|
var _useState3 = useState(format || DEFAULT_FORMAT),
|
|
98
102
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
99
103
|
currentFormat = _useState4[0],
|
|
@@ -140,7 +144,8 @@ export var DateFormatPicker = function DateFormatPicker(_ref2) {
|
|
|
140
144
|
onChange: handleYearChange,
|
|
141
145
|
style: {
|
|
142
146
|
flex: 1
|
|
143
|
-
}
|
|
147
|
+
},
|
|
148
|
+
getPopupContainer: getPopupContainer
|
|
144
149
|
});
|
|
145
150
|
}
|
|
146
151
|
if (isMonthOnly) {
|
|
@@ -150,7 +155,8 @@ export var DateFormatPicker = function DateFormatPicker(_ref2) {
|
|
|
150
155
|
style: {
|
|
151
156
|
flex: 1
|
|
152
157
|
},
|
|
153
|
-
format: currentFormat
|
|
158
|
+
format: currentFormat,
|
|
159
|
+
getPopupContainer: getPopupContainer
|
|
154
160
|
});
|
|
155
161
|
}
|
|
156
162
|
return _jsx(DatePicker, {
|
|
@@ -160,7 +166,8 @@ export var DateFormatPicker = function DateFormatPicker(_ref2) {
|
|
|
160
166
|
flex: 1
|
|
161
167
|
},
|
|
162
168
|
format: currentFormat,
|
|
163
|
-
showTime: showTime
|
|
169
|
+
showTime: showTime,
|
|
170
|
+
getPopupContainer: getPopupContainer
|
|
164
171
|
});
|
|
165
172
|
};
|
|
166
173
|
return _jsxs("div", {
|
|
@@ -174,6 +181,7 @@ export var DateFormatPicker = function DateFormatPicker(_ref2) {
|
|
|
174
181
|
},
|
|
175
182
|
value: currentFormat,
|
|
176
183
|
onChange: handleFormatChange,
|
|
184
|
+
getPopupContainer: getPopupContainer,
|
|
177
185
|
children: DATE_FORMAT_OPTIONS.map(function (option) {
|
|
178
186
|
return _jsx(Select.Option, {
|
|
179
187
|
value: option.value,
|
|
@@ -9,6 +9,7 @@ interface PropsType {
|
|
|
9
9
|
isCustom?: boolean;
|
|
10
10
|
container?: any;
|
|
11
11
|
filterCustomType?: boolean;
|
|
12
|
+
parentPopupChannel?: 'primary' | 'secondary';
|
|
12
13
|
}
|
|
13
14
|
declare const _default: (props: PropsType) => import("react/jsx-runtime").JSX.Element;
|
|
14
15
|
export default _default;
|
|
@@ -46,7 +46,8 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
|
|
|
46
46
|
_ref$container = _ref.container,
|
|
47
47
|
container = _ref$container === void 0 ? null : _ref$container,
|
|
48
48
|
_ref$filterCustomType = _ref.filterCustomType,
|
|
49
|
-
filterCustomType = _ref$filterCustomType === void 0 ? false : _ref$filterCustomType
|
|
49
|
+
filterCustomType = _ref$filterCustomType === void 0 ? false : _ref$filterCustomType,
|
|
50
|
+
parentPopupChannel = _ref.parentPopupChannel;
|
|
50
51
|
var _useState = useState(value),
|
|
51
52
|
_useState2 = _slicedToArray(_useState, 2),
|
|
52
53
|
curColumn = _useState2[0],
|
|
@@ -76,6 +77,37 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
|
|
|
76
77
|
_useState12 = _slicedToArray(_useState11, 2),
|
|
77
78
|
isNext = _useState12[0],
|
|
78
79
|
setIsNext = _useState12[1];
|
|
80
|
+
var setParentClosable = function setParentClosable(closable) {
|
|
81
|
+
if (parentPopupChannel === 'secondary') {
|
|
82
|
+
store.setClosable2(closable);
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
store.setClosable(closable);
|
|
86
|
+
};
|
|
87
|
+
var setDropdownClosable = function setDropdownClosable(visible) {
|
|
88
|
+
if (visible) {
|
|
89
|
+
setParentClosable(false);
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
setTimeout(function () {
|
|
93
|
+
return setParentClosable(true);
|
|
94
|
+
}, 300);
|
|
95
|
+
};
|
|
96
|
+
var setSelectPopupClosable = function setSelectPopupClosable(visible) {
|
|
97
|
+
setPopupVisible(visible);
|
|
98
|
+
if (visible) {
|
|
99
|
+
setParentClosable(false);
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
setTimeout(function () {
|
|
103
|
+
return setParentClosable(true);
|
|
104
|
+
}, 300);
|
|
105
|
+
};
|
|
106
|
+
var getCurrentPopupContainer = function getCurrentPopupContainer(node) {
|
|
107
|
+
var _node$closest;
|
|
108
|
+
var popupContainer = node === null || node === void 0 || (_node$closest = node.closest) === null || _node$closest === void 0 ? void 0 : _node$closest.call(node, '[data-sqb-popup-container="true"]');
|
|
109
|
+
return popupContainer || document.body;
|
|
110
|
+
};
|
|
79
111
|
var table2Selected = Boolean(rhsVal && (rhsVal === null || rhsVal === void 0 ? void 0 : rhsVal.length) > 0);
|
|
80
112
|
var disabled = useMemo(function () {
|
|
81
113
|
if (!condition) return true;
|
|
@@ -354,6 +386,8 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
|
|
|
354
386
|
return _jsx("div", {
|
|
355
387
|
children: _jsx(Dropdown, {
|
|
356
388
|
trigger: ['click'],
|
|
389
|
+
onVisibleChange: setDropdownClosable,
|
|
390
|
+
getPopupContainer: getCurrentPopupContainer,
|
|
357
391
|
onChange: function onChange(key) {
|
|
358
392
|
setRhsVal([{
|
|
359
393
|
type: AtomsTypeEnum.INPUT_STRING,
|
|
@@ -396,6 +430,8 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
|
|
|
396
430
|
}
|
|
397
431
|
}), _jsx(Dropdown, {
|
|
398
432
|
trigger: ['click'],
|
|
433
|
+
onVisibleChange: setDropdownClosable,
|
|
434
|
+
getPopupContainer: getCurrentPopupContainer,
|
|
399
435
|
droplist: [{
|
|
400
436
|
key: '分',
|
|
401
437
|
label: __('filter.minute')
|
|
@@ -436,6 +472,7 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
|
|
|
436
472
|
return _jsx(DateFormatPicker, {
|
|
437
473
|
value: _dateVal,
|
|
438
474
|
format: _dateFormat,
|
|
475
|
+
getPopupContainer: getCurrentPopupContainer,
|
|
439
476
|
onChange: function onChange(val, format) {
|
|
440
477
|
if (val) {
|
|
441
478
|
setRhsVal([{
|
|
@@ -459,6 +496,7 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
|
|
|
459
496
|
return _jsx(DateFormatPicker, {
|
|
460
497
|
value: _dateVal2,
|
|
461
498
|
format: _dateFormat2,
|
|
499
|
+
getPopupContainer: getCurrentPopupContainer,
|
|
462
500
|
onChange: function onChange(val, format) {
|
|
463
501
|
if (val) {
|
|
464
502
|
setRhsVal([{
|
|
@@ -484,6 +522,7 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
|
|
|
484
522
|
placeholder: "\u53EF\u8F93\u5165\u56DE\u8F66\u65B0\u589E\u4E0B\u62C9\u9009\u9879",
|
|
485
523
|
allowCreate: true,
|
|
486
524
|
multiple: true,
|
|
525
|
+
getPopupContainer: getCurrentPopupContainer,
|
|
487
526
|
value: options,
|
|
488
527
|
onChange: function onChange(val) {
|
|
489
528
|
setRhsVal([{
|
|
@@ -493,10 +532,10 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
|
|
|
493
532
|
},
|
|
494
533
|
popupVisible: popupVisible,
|
|
495
534
|
onBlur: function onBlur() {
|
|
496
|
-
|
|
535
|
+
setSelectPopupClosable(false);
|
|
497
536
|
},
|
|
498
537
|
onClick: function onClick() {
|
|
499
|
-
|
|
538
|
+
setSelectPopupClosable(true);
|
|
500
539
|
},
|
|
501
540
|
children: options.map(function (option) {
|
|
502
541
|
return _jsx(Select.Option, {
|
|
@@ -528,7 +567,7 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
|
|
|
528
567
|
});
|
|
529
568
|
}
|
|
530
569
|
var selectConstant = function selectConstant(e) {
|
|
531
|
-
|
|
570
|
+
setParentClosable(false);
|
|
532
571
|
var node = e.currentTarget;
|
|
533
572
|
var _val = node.getAttribute('v-val');
|
|
534
573
|
store.setPopup2({
|
|
@@ -544,13 +583,13 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
|
|
|
544
583
|
newVal[0].id = val;
|
|
545
584
|
newVal[0].val = getConstantLabel(store.constantList, val);
|
|
546
585
|
setRhsVal(newVal);
|
|
547
|
-
|
|
586
|
+
setParentClosable(true);
|
|
548
587
|
}
|
|
549
588
|
})
|
|
550
589
|
});
|
|
551
590
|
};
|
|
552
591
|
var onRepeat = function onRepeat(e) {
|
|
553
|
-
|
|
592
|
+
setParentClosable(false);
|
|
554
593
|
store.setPopup2({
|
|
555
594
|
visible: true,
|
|
556
595
|
node: e.currentTarget,
|
|
@@ -592,13 +631,13 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
|
|
|
592
631
|
type: AtomsTypeEnum.FIELD
|
|
593
632
|
}]);
|
|
594
633
|
}
|
|
595
|
-
|
|
634
|
+
setParentClosable(true);
|
|
596
635
|
}
|
|
597
636
|
})
|
|
598
637
|
});
|
|
599
638
|
};
|
|
600
639
|
var selectTable = function selectTable(e) {
|
|
601
|
-
|
|
640
|
+
setParentClosable(false);
|
|
602
641
|
var node = e.currentTarget;
|
|
603
642
|
var _index = Number(node.getAttribute('v-index'));
|
|
604
643
|
store.setPopup2({
|
|
@@ -625,7 +664,7 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
|
|
|
625
664
|
store.setPopup2({
|
|
626
665
|
visible: false
|
|
627
666
|
});
|
|
628
|
-
|
|
667
|
+
setParentClosable(true);
|
|
629
668
|
}
|
|
630
669
|
})
|
|
631
670
|
});
|
|
@@ -672,6 +711,8 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
|
|
|
672
711
|
className: 'left-info-formula',
|
|
673
712
|
children: _jsx(Dropdown, {
|
|
674
713
|
trigger: ['click'],
|
|
714
|
+
onVisibleChange: setDropdownClosable,
|
|
715
|
+
getPopupContainer: getCurrentPopupContainer,
|
|
675
716
|
onChange: function onChange(key) {
|
|
676
717
|
changeFormula(key);
|
|
677
718
|
},
|
|
@@ -737,6 +778,8 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
|
|
|
737
778
|
className: 'right-info',
|
|
738
779
|
children: [filterCustomType && _jsx(Dropdown, {
|
|
739
780
|
trigger: ['click'],
|
|
781
|
+
onVisibleChange: setDropdownClosable,
|
|
782
|
+
getPopupContainer: getCurrentPopupContainer,
|
|
740
783
|
onChange: function onChange(key) {
|
|
741
784
|
setCondition('');
|
|
742
785
|
setCurColumn(_objectSpread(_objectSpread({}, curColumn), {}, {
|
|
@@ -760,6 +803,8 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
|
|
|
760
803
|
})
|
|
761
804
|
}), _jsx(Dropdown, {
|
|
762
805
|
trigger: ['click'],
|
|
806
|
+
onVisibleChange: setDropdownClosable,
|
|
807
|
+
getPopupContainer: getCurrentPopupContainer,
|
|
763
808
|
onChange: function onChange(key) {
|
|
764
809
|
setCurColumn(_objectSpread({}, curColumn));
|
|
765
810
|
setDefaultVal(key);
|
|
@@ -624,6 +624,11 @@ var FormulaList = forwardRef(function (props, ref) {
|
|
|
624
624
|
visible: false
|
|
625
625
|
});
|
|
626
626
|
}
|
|
627
|
+
var getCurrentPopupContainer = function getCurrentPopupContainer(node) {
|
|
628
|
+
var _node$closest;
|
|
629
|
+
var popupContainer = node === null || node === void 0 || (_node$closest = node.closest) === null || _node$closest === void 0 ? void 0 : _node$closest.call(node, '[data-sqb-popup-container="true"]');
|
|
630
|
+
return popupContainer || document.body;
|
|
631
|
+
};
|
|
627
632
|
var getSelectTriggerProps = function getSelectTriggerProps() {
|
|
628
633
|
return {
|
|
629
634
|
clickToClose: true,
|
|
@@ -648,6 +653,7 @@ var FormulaList = forwardRef(function (props, ref) {
|
|
|
648
653
|
showSearch: true,
|
|
649
654
|
trigger: trigger,
|
|
650
655
|
triggerProps: getSelectTriggerProps(),
|
|
656
|
+
getPopupContainer: getCurrentPopupContainer,
|
|
651
657
|
virtualListProps: {
|
|
652
658
|
threshold: null
|
|
653
659
|
},
|
|
@@ -745,6 +751,7 @@ var FormulaList = forwardRef(function (props, ref) {
|
|
|
745
751
|
filterCustomType: filterCustomType,
|
|
746
752
|
data: data,
|
|
747
753
|
container: ref === null || ref === void 0 ? void 0 : ref.current,
|
|
754
|
+
parentPopupChannel: 'primary',
|
|
748
755
|
value: val || {},
|
|
749
756
|
onChange: function onChange(data) {
|
|
750
757
|
var _caseList = caseList.slice();
|
|
@@ -1207,6 +1214,7 @@ var FormulaList = forwardRef(function (props, ref) {
|
|
|
1207
1214
|
}),
|
|
1208
1215
|
node: _jsx(Select, {
|
|
1209
1216
|
triggerProps: getSelectTriggerProps(),
|
|
1217
|
+
getPopupContainer: getCurrentPopupContainer,
|
|
1210
1218
|
value: v.val,
|
|
1211
1219
|
triggerElement: function triggerElement() {
|
|
1212
1220
|
return renderTokenContent(_jsxs(_Fragment, {
|
|
@@ -1308,6 +1316,7 @@ var FormulaList = forwardRef(function (props, ref) {
|
|
|
1308
1316
|
}),
|
|
1309
1317
|
node: _jsx(Select, {
|
|
1310
1318
|
triggerProps: getSelectTriggerProps(),
|
|
1319
|
+
getPopupContainer: getCurrentPopupContainer,
|
|
1311
1320
|
multiple: v.multiple,
|
|
1312
1321
|
value: v.val,
|
|
1313
1322
|
triggerElement: function triggerElement() {
|
|
@@ -21,6 +21,7 @@ import NextDom from './components/meta-icon';
|
|
|
21
21
|
import Header from './components/header';
|
|
22
22
|
import ItemWrapper from './components/item-wrapper';
|
|
23
23
|
import ItemName from './components/item-name';
|
|
24
|
+
import { getTopLayerZIndex } from '../../utils/helper-dom';
|
|
24
25
|
import { useStore } from '../../hooks/use-provider';
|
|
25
26
|
var CustomColumn = function CustomColumn(props) {
|
|
26
27
|
var meta = props.meta,
|
|
@@ -209,7 +210,9 @@ var CustomColumn = function CustomColumn(props) {
|
|
|
209
210
|
var showSubQuery = function showSubQuery(e, i) {
|
|
210
211
|
var newMeta = store.metaList[groupIndex].list.slice();
|
|
211
212
|
var _value = newMeta[index].customColumn[i] || [];
|
|
213
|
+
var childModalZIndex = getTopLayerZIndex() + 1;
|
|
212
214
|
var o = Modal2.openModal({
|
|
215
|
+
zIndex: childModalZIndex,
|
|
213
216
|
title: __('SqlQueryBuilder.customExpression'),
|
|
214
217
|
transparentMask: true,
|
|
215
218
|
content: _jsx(_Fragment, {
|
|
@@ -14,7 +14,7 @@ import { TypeEnum, SQL_COLUMN_TYPE } from '../../../store/enum';
|
|
|
14
14
|
import { MetaSummarize_Enum, AtomsTypeEnum, ChangeType } from '../../../store/types';
|
|
15
15
|
import { Tooltip, Button, Modal, Input, Toast } from '@gingkoo/pandora';
|
|
16
16
|
import { uuidv4, getAlias } from '../../../utils/helper';
|
|
17
|
-
import {
|
|
17
|
+
import { isExistsError, isValidSQLAlias } from '../../../utils';
|
|
18
18
|
import ItemName from '../components/item-name';
|
|
19
19
|
import { AddIcon, CloseIcon } from '../../icons';
|
|
20
20
|
import FormulaList from '../../dialog/formula-list';
|
|
@@ -359,7 +359,6 @@ var GroupBy = function GroupBy(props) {
|
|
|
359
359
|
newMeta = store.metaList[groupIndex].list.slice();
|
|
360
360
|
newMeta[index].by[i].fieldAlias = fieldAlias;
|
|
361
361
|
newMeta[index].by[i].sql = summarizeByToSql(newMeta[index].by[i]);
|
|
362
|
-
newMeta = changeFieldAlias(newMeta, newMeta[index].by[i]);
|
|
363
362
|
store.setMeta(newMeta, groupIndex, {
|
|
364
363
|
obj: newMeta[index].by,
|
|
365
364
|
type: ChangeType.by
|
|
@@ -454,6 +453,10 @@ var GroupBy = function GroupBy(props) {
|
|
|
454
453
|
var field = getField(record);
|
|
455
454
|
return field.fieldName ? [field] : [];
|
|
456
455
|
};
|
|
456
|
+
var getErrorCheckField = function getErrorCheckField(record) {
|
|
457
|
+
var atoms = getAtomsValue(record);
|
|
458
|
+
return _getFirstField(atoms) || getField(record);
|
|
459
|
+
};
|
|
457
460
|
var normalizeByRecord = function normalizeByRecord(record, itemIndex, metaList) {
|
|
458
461
|
var _store$preProps;
|
|
459
462
|
var atoms = getAtomsValue(record);
|
|
@@ -490,7 +493,7 @@ var GroupBy = function GroupBy(props) {
|
|
|
490
493
|
return _jsxs(_Fragment, {
|
|
491
494
|
children: [meta.by.map(function (v, i) {
|
|
492
495
|
return _jsx(ItemName, {
|
|
493
|
-
isError: isExistsError([
|
|
496
|
+
isError: isExistsError([getErrorCheckField(v)], store.existsError),
|
|
494
497
|
children: _jsxs("div", {
|
|
495
498
|
className: "Sqb-TableName green-name",
|
|
496
499
|
onClick: function onClick(e) {
|
|
@@ -13,7 +13,7 @@ import { summarizeToSql } from '../../../store/helper';
|
|
|
13
13
|
import { Tooltip, Button, Modal, Input, Toast } from '@gingkoo/pandora';
|
|
14
14
|
import { uuidv4 } from '../../../utils/helper';
|
|
15
15
|
import { MetaSummarize_Enum, AtomsTypeEnum, ChangeType } from '../../../store/types';
|
|
16
|
-
import {
|
|
16
|
+
import { isExistsError, isValidSQLAlias } from '../../../utils';
|
|
17
17
|
import ItemName from '../components/item-name';
|
|
18
18
|
import { AddIcon, CloseIcon } from '../../icons';
|
|
19
19
|
import { SelectSummarize } from '../../dialog';
|
|
@@ -155,7 +155,11 @@ var SelectIndex = function SelectIndex(props) {
|
|
|
155
155
|
Toast.warning(summarizeWithoutArgumentMessage);
|
|
156
156
|
return;
|
|
157
157
|
}
|
|
158
|
-
newMeta[index].group
|
|
158
|
+
var prevRecord = newMeta[index].group[i];
|
|
159
|
+
var nextRecord = normalizeGroupRecord(data);
|
|
160
|
+
nextRecord.fieldAlias = (prevRecord === null || prevRecord === void 0 ? void 0 : prevRecord.fieldAlias) || nextRecord.fieldAlias;
|
|
161
|
+
nextRecord.fieldUuid = (prevRecord === null || prevRecord === void 0 ? void 0 : prevRecord.fieldUuid) || nextRecord.fieldUuid;
|
|
162
|
+
newMeta[index].group.splice(i, 1, nextRecord);
|
|
159
163
|
newMeta[index].group = newMeta[index].group.map(function (v) {
|
|
160
164
|
var _summarizeToSql = summarizeToSql(newMeta[index].group, v),
|
|
161
165
|
sql = _summarizeToSql.sql,
|
|
@@ -163,7 +167,8 @@ var SelectIndex = function SelectIndex(props) {
|
|
|
163
167
|
return _objectSpread(_objectSpread({}, v), {}, {
|
|
164
168
|
name: v.name || v.quotes,
|
|
165
169
|
sql: sql,
|
|
166
|
-
|
|
170
|
+
fieldUuid: v.fieldUuid || uuidv4('field'),
|
|
171
|
+
fieldAlias: v.fieldAlias || fieldAlias
|
|
167
172
|
});
|
|
168
173
|
});
|
|
169
174
|
store.setMeta(newMeta, groupIndex, {
|
|
@@ -215,7 +220,7 @@ var SelectIndex = function SelectIndex(props) {
|
|
|
215
220
|
return _objectSpread(_objectSpread({}, v), {}, {
|
|
216
221
|
name: v.name || v.quotes,
|
|
217
222
|
sql: sql,
|
|
218
|
-
fieldUuid: uuidv4('field'),
|
|
223
|
+
fieldUuid: v.fieldUuid || uuidv4('field'),
|
|
219
224
|
fieldAlias: v.fieldAlias || fieldAlias,
|
|
220
225
|
summarizeType: MetaSummarize_Enum.GROUP
|
|
221
226
|
});
|
|
@@ -270,7 +275,6 @@ var SelectIndex = function SelectIndex(props) {
|
|
|
270
275
|
newMeta = store.metaList[groupIndex].list.slice();
|
|
271
276
|
newMeta[index].group[i].fieldAlias = fieldAlias;
|
|
272
277
|
newMeta[index].group[i].sql = newMeta[index].group[i].sql.split('AS ')[0] + "AS ".concat(fieldAlias);
|
|
273
|
-
newMeta = changeFieldAlias(newMeta, newMeta[index].group[i]);
|
|
274
278
|
store.setMeta(newMeta, groupIndex, {
|
|
275
279
|
obj: newMeta[index].group,
|
|
276
280
|
type: ChangeType.group
|
|
@@ -373,6 +377,10 @@ var SelectIndex = function SelectIndex(props) {
|
|
|
373
377
|
var field = getField(record);
|
|
374
378
|
return field.fieldName ? [field] : [];
|
|
375
379
|
};
|
|
380
|
+
var getErrorCheckField = function getErrorCheckField(record) {
|
|
381
|
+
var atoms = getAtomsValue(record);
|
|
382
|
+
return _getFirstField(atoms) || getField(record);
|
|
383
|
+
};
|
|
376
384
|
var normalizeGroupRecord = function normalizeGroupRecord(record) {
|
|
377
385
|
var atoms = getAtomsValue(record);
|
|
378
386
|
var firstField = _getFirstField(atoms);
|
|
@@ -400,7 +408,7 @@ var SelectIndex = function SelectIndex(props) {
|
|
|
400
408
|
return _jsxs(_Fragment, {
|
|
401
409
|
children: [meta.group.map(function (v, i) {
|
|
402
410
|
return _jsx(ItemName, {
|
|
403
|
-
isError: isExistsError([
|
|
411
|
+
isError: isExistsError([getErrorCheckField(v)], store.existsError),
|
|
404
412
|
children: _jsxs("div", {
|
|
405
413
|
className: "Sqb-TableName green-name",
|
|
406
414
|
onClick: function onClick(e) {
|