@chaoswise/ui 2.5.2 → 2.5.3
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/Ace/ace.js +6 -7
- package/lib/Ace/diff.js +6 -7
- package/lib/Ace/split.js +6 -7
- package/lib/Antd4Form/FormItemChildren.js +5 -6
- package/lib/CWSelect/antd-select.js +6 -7
- package/lib/CWTable/util.js +1 -1
- package/lib/CWTree/index.js +65 -64
- package/lib/CWUpload/upload/Upload.js +5 -6
- package/lib/CWUpload/upload/UploadList.js +5 -6
- package/lib/Checkbox/Checkbox.js +6 -7
- package/lib/Checkbox/Group.js +6 -7
- package/lib/ErrorBoundary/index.js +6 -7
- package/lib/FilterDropDown/drag.svg +17 -0
- package/lib/Menu/menu/MenuItem.js +5 -6
- package/lib/Menu/menu/SubMenu.js +5 -6
- package/lib/Menu/menu/index.js +6 -8
- package/lib/Modal/Modal.js +6 -7
- package/lib/ModuleFederation/ErrorBoundary/index.js +5 -6
- package/lib/QuickTransfer/CheckList.js +53 -0
- package/lib/QuickTransfer/TopicList.js +152 -0
- package/lib/Radio/Group.js +6 -7
- package/lib/Radio/Radio.js +6 -7
- package/lib/SiderMenu/Item.js +5 -6
- package/lib/SingleSpa/hooks/useErrorHandle.js +65 -0
- package/lib/SingleSpa/hooks/useModel.js +31 -0
- package/lib/SingleSpa/import-html/utils.js +14 -11
- package/lib/SingleSpa/index.js +35 -13
- package/lib/SingleSpa/singleSpa/single-spa.dev.js +11 -6
- package/lib/SingleSpa/system/amd.js +1 -0
- package/lib/SingleSpa/system/system.js +23 -16
- package/lib/SingleSpa/utils.js +15 -2
- package/lib/Table/index.js +29 -2
- package/lib/Table/util.js +15 -0
- package/lib/TimeRangeSlider/Refresh/index.js +161 -0
- package/lib/TimeRangeSlider/Refresh/index.less +26 -0
- package/lib/TimeRangeSlider/TimeRangeSliderCmp/assets/LimitAreaSvg.js +110 -0
- package/lib/TimeRangeSlider/TimeRangeSliderCmp/components/BottomSlider/BottomPlaceholder.js +70 -0
- package/lib/TimeRangeSlider/TimeRangeSliderCmp/components/BottomSlider/BottomTimeDateProcess.js +36 -0
- package/lib/TimeRangeSlider/TimeRangeSliderCmp/components/BottomSlider/index.js +38 -0
- package/lib/TimeRangeSlider/TimeRangeSliderCmp/components/BottomSlider/index.less +113 -0
- package/lib/TimeRangeSlider/TimeRangeSliderCmp/components/TopSlider/TopDateProcess.js +36 -0
- package/lib/TimeRangeSlider/TimeRangeSliderCmp/components/TopSlider/TopPlaceholder.js +36 -0
- package/lib/TimeRangeSlider/TimeRangeSliderCmp/components/TopSlider/index.js +31 -0
- package/lib/TimeRangeSlider/TimeRangeSliderCmp/components/TopSlider/index.less +79 -0
- package/lib/TimeRangeSlider/TimeRangeSliderCmp/hooks/useHover.js +31 -0
- package/lib/TimeRangeSlider/TimeRangeSliderCmp/hooks/useMouse.js +325 -0
- package/lib/TimeRangeSlider/TimeRangeSliderCmp/index.js +73 -0
- package/lib/TimeRangeSlider/TimeRangeSliderCmp/utils/index.js +227 -0
- package/lib/TimeRangeSlider/TimeSpan/index.js +81 -0
- package/lib/TimeRangeSlider/TimeSpan/index.less +12 -0
- package/lib/TimeRangeSlider/assets/Calendar.js +15 -0
- package/lib/TimeRangeSlider/assets/Calendar2.js +15 -0
- package/lib/TimeRangeSlider/assets/Recover.js +18 -0
- package/lib/TimeRangeSlider/assets/Refresh1.js +14 -0
- package/lib/TimeRangeSlider/assets/Refresh2.js +14 -0
- package/lib/TimeRangeSlider/assets/Refresh3.js +14 -0
- package/lib/TimeRangeSlider/assets/live.js +19 -0
- package/lib/TimeRangeSlider/assets/more.js +23 -0
- package/lib/TimeRangeSlider/index.js +480 -0
- package/lib/TimeRangeSlider/index.less +122 -0
- package/lib/TimeRangeSlider/locale/en_US.js +29 -0
- package/lib/TimeRangeSlider/locale/index.js +11 -0
- package/lib/TimeRangeSlider/locale/zh_CN.js +29 -0
- package/lib/TimeRangeSlider/locale/zh_TW.js +29 -0
- package/lib/TimeRangeSlider/utils/index.js +712 -0
- package/lib/TooltipText/ResizeObserverManager.js +56 -0
- package/lib/TooltipText/index.js +50 -60
- package/package.json +3 -2
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
.cw-range-picker-refresh-wrapper {
|
|
2
|
+
margin-left: 8px !important;
|
|
3
|
+
display: flex;
|
|
4
|
+
.@{ant-prefix}-btn {
|
|
5
|
+
width: 28px;
|
|
6
|
+
padding: 0;
|
|
7
|
+
}
|
|
8
|
+
.cw-range-picker-auto-refresh{
|
|
9
|
+
animation: autoRefresh 2s linear infinite;
|
|
10
|
+
}
|
|
11
|
+
.cw-range-picker-auto-refresh-wrapper{
|
|
12
|
+
&:not(&[disabled]){
|
|
13
|
+
border-color: @primary-color !important;
|
|
14
|
+
.cw-range-picker-auto-refresh{
|
|
15
|
+
color: @primary-color;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
}
|
|
22
|
+
@keyframes autoRefresh{
|
|
23
|
+
100%{
|
|
24
|
+
transform: rotate(360deg);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
var SvgLimitArea = function SvgLimitArea(props) {
|
|
4
|
+
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
5
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
6
|
+
xmlnsXlink: "http://www.w3.org/1999/xlink",
|
|
7
|
+
width: 6,
|
|
8
|
+
height: 24
|
|
9
|
+
}, props), /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("filter", {
|
|
10
|
+
id: "limitArea_svg__a",
|
|
11
|
+
width: "109.6%",
|
|
12
|
+
height: "160.9%",
|
|
13
|
+
x: "-4.8%",
|
|
14
|
+
y: "-25.8%",
|
|
15
|
+
filterUnits: "objectBoundingBox"
|
|
16
|
+
}, /*#__PURE__*/React.createElement("feMorphology", {
|
|
17
|
+
"in": "SourceAlpha",
|
|
18
|
+
operator: "dilate",
|
|
19
|
+
radius: 4,
|
|
20
|
+
result: "shadowSpreadOuter1"
|
|
21
|
+
}), /*#__PURE__*/React.createElement("feOffset", {
|
|
22
|
+
dy: 9,
|
|
23
|
+
"in": "shadowSpreadOuter1",
|
|
24
|
+
result: "shadowOffsetOuter1"
|
|
25
|
+
}), /*#__PURE__*/React.createElement("feGaussianBlur", {
|
|
26
|
+
"in": "shadowOffsetOuter1",
|
|
27
|
+
result: "shadowBlurOuter1",
|
|
28
|
+
stdDeviation: 14
|
|
29
|
+
}), /*#__PURE__*/React.createElement("feColorMatrix", {
|
|
30
|
+
"in": "shadowBlurOuter1",
|
|
31
|
+
result: "shadowMatrixOuter1",
|
|
32
|
+
values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05 0"
|
|
33
|
+
}), /*#__PURE__*/React.createElement("feOffset", {
|
|
34
|
+
dy: 6,
|
|
35
|
+
"in": "SourceAlpha",
|
|
36
|
+
result: "shadowOffsetOuter2"
|
|
37
|
+
}), /*#__PURE__*/React.createElement("feGaussianBlur", {
|
|
38
|
+
"in": "shadowOffsetOuter2",
|
|
39
|
+
result: "shadowBlurOuter2",
|
|
40
|
+
stdDeviation: 8
|
|
41
|
+
}), /*#__PURE__*/React.createElement("feColorMatrix", {
|
|
42
|
+
"in": "shadowBlurOuter2",
|
|
43
|
+
result: "shadowMatrixOuter2",
|
|
44
|
+
values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08 0"
|
|
45
|
+
}), /*#__PURE__*/React.createElement("feMorphology", {
|
|
46
|
+
"in": "SourceAlpha",
|
|
47
|
+
radius: 2,
|
|
48
|
+
result: "shadowSpreadOuter3"
|
|
49
|
+
}), /*#__PURE__*/React.createElement("feOffset", {
|
|
50
|
+
dy: 3,
|
|
51
|
+
"in": "shadowSpreadOuter3",
|
|
52
|
+
result: "shadowOffsetOuter3"
|
|
53
|
+
}), /*#__PURE__*/React.createElement("feGaussianBlur", {
|
|
54
|
+
"in": "shadowOffsetOuter3",
|
|
55
|
+
result: "shadowBlurOuter3",
|
|
56
|
+
stdDeviation: 3
|
|
57
|
+
}), /*#__PURE__*/React.createElement("feColorMatrix", {
|
|
58
|
+
"in": "shadowBlurOuter3",
|
|
59
|
+
result: "shadowMatrixOuter3",
|
|
60
|
+
values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12 0"
|
|
61
|
+
}), /*#__PURE__*/React.createElement("feMerge", null, /*#__PURE__*/React.createElement("feMergeNode", {
|
|
62
|
+
"in": "shadowMatrixOuter1"
|
|
63
|
+
}), /*#__PURE__*/React.createElement("feMergeNode", {
|
|
64
|
+
"in": "shadowMatrixOuter2"
|
|
65
|
+
}), /*#__PURE__*/React.createElement("feMergeNode", {
|
|
66
|
+
"in": "shadowMatrixOuter3"
|
|
67
|
+
}))), /*#__PURE__*/React.createElement("path", {
|
|
68
|
+
id: "limitArea_svg__b",
|
|
69
|
+
d: "M0 0h1216v192H0z"
|
|
70
|
+
})), /*#__PURE__*/React.createElement("g", {
|
|
71
|
+
fill: "none",
|
|
72
|
+
fillRule: "evenodd"
|
|
73
|
+
}, /*#__PURE__*/React.createElement("path", {
|
|
74
|
+
fill: "#FFF",
|
|
75
|
+
d: "M-1370-215H70v750h-1440z"
|
|
76
|
+
}), /*#__PURE__*/React.createElement("g", {
|
|
77
|
+
transform: "translate(-1166 -120)"
|
|
78
|
+
}, /*#__PURE__*/React.createElement("use", {
|
|
79
|
+
xlinkHref: "#limitArea_svg__b",
|
|
80
|
+
fill: "#000",
|
|
81
|
+
filter: "url(#limitArea_svg__a)"
|
|
82
|
+
}), /*#__PURE__*/React.createElement("use", {
|
|
83
|
+
xlinkHref: "#limitArea_svg__b",
|
|
84
|
+
fill: "#FFF"
|
|
85
|
+
})), /*#__PURE__*/React.createElement("path", {
|
|
86
|
+
fill: "#FFF",
|
|
87
|
+
stroke: "#000",
|
|
88
|
+
strokeOpacity: 0.15,
|
|
89
|
+
d: "M-1133.5-11.5h1151v47h-1151z"
|
|
90
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
91
|
+
fill: "#FFF",
|
|
92
|
+
d: "M4 2h27v20H4z"
|
|
93
|
+
}), /*#__PURE__*/React.createElement("text", {
|
|
94
|
+
fill: "#000",
|
|
95
|
+
fillOpacity: 0.65,
|
|
96
|
+
fontFamily: "PingFangSC-Regular, PingFang SC",
|
|
97
|
+
fontSize: 12,
|
|
98
|
+
transform: "translate(-1151 -32)"
|
|
99
|
+
}, /*#__PURE__*/React.createElement("tspan", {
|
|
100
|
+
x: 1155,
|
|
101
|
+
y: 47
|
|
102
|
+
}, "18:17")), /*#__PURE__*/React.createElement("path", {
|
|
103
|
+
fill: "#1890FF",
|
|
104
|
+
d: "M0 19.846c0 2.034 2.326 2.823 3.569 3.236l.248.083.11.037Q5.003 23.582 6 24V0q-.998.42-2.073.797l-.11.038-.248.083C2.326 1.331 0 2.12 0 4.154Z"
|
|
105
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
106
|
+
fill: "#FFF",
|
|
107
|
+
d: "M1.5 9a.5.5 0 0 1 .5.5v5a.5.5 0 1 1-1 0v-5a.5.5 0 0 1 .5-.5m3 0a.5.5 0 0 1 .5.5v5a.5.5 0 1 1-1 0v-5a.5.5 0 0 1 .5-.5"
|
|
108
|
+
})));
|
|
109
|
+
};
|
|
110
|
+
export default SvgLimitArea;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import "@chaoswise/ui/lib/Tooltip/index.less";
|
|
2
|
+
import _Tooltip from "@chaoswise/ui/lib/Tooltip";
|
|
3
|
+
import React, { useMemo } from "react";
|
|
4
|
+
import LimitAreaSvg from "../../assets/LimitAreaSvg";
|
|
5
|
+
import classnames from "classnames";
|
|
6
|
+
var BottomPlaceholder = function BottomPlaceholder(props) {
|
|
7
|
+
var timeSliderWidth = props.timeSliderWidth,
|
|
8
|
+
clickBottomWrapper = props.clickBottomWrapper,
|
|
9
|
+
bottomSliderInfo = props.bottomSliderInfo,
|
|
10
|
+
TimeRangeAreaLimitBottomSlider = props.TimeRangeAreaLimitBottomSlider,
|
|
11
|
+
beginMouseDown = props.beginMouseDown,
|
|
12
|
+
TimeRangeSliderBottomWrapperRef = props.TimeRangeSliderBottomWrapperRef,
|
|
13
|
+
bottomSliderHoverInfo = props.bottomSliderHoverInfo,
|
|
14
|
+
bottomSliderDragStatus = props.bottomSliderDragStatus,
|
|
15
|
+
isHoverBottomWrapper = props.isHoverBottomWrapper,
|
|
16
|
+
isHoverPlaceholderBottom = props.isHoverPlaceholderBottom;
|
|
17
|
+
var isHasTooltipTimeDate = useMemo(function () {
|
|
18
|
+
return Array.isArray(bottomSliderInfo.date) && bottomSliderInfo.date.length === 2;
|
|
19
|
+
}, [bottomSliderInfo]);
|
|
20
|
+
var isHasHoverTooltipTimeDate = useMemo(function () {
|
|
21
|
+
return Array.isArray(bottomSliderHoverInfo.date) && bottomSliderHoverInfo.date.length === 2;
|
|
22
|
+
}, [bottomSliderHoverInfo]);
|
|
23
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
24
|
+
style: {
|
|
25
|
+
width: timeSliderWidth
|
|
26
|
+
},
|
|
27
|
+
className: "time-range-slider-bottom-clone-wrapper",
|
|
28
|
+
onClick: clickBottomWrapper,
|
|
29
|
+
ref: TimeRangeSliderBottomWrapperRef
|
|
30
|
+
}, /*#__PURE__*/React.createElement(_Tooltip, {
|
|
31
|
+
overlayClassName: "time-range-area-limit-slider-tooltip-wrapper",
|
|
32
|
+
title: isHasTooltipTimeDate && /*#__PURE__*/React.createElement(React.Fragment, null, bottomSliderInfo.date[0].format("YYYY/MM/DD HH:mm:ss"), " -", " ", bottomSliderInfo.date[1].format("YYYY/MM/DD HH:mm:ss")),
|
|
33
|
+
visible: isHoverPlaceholderBottom && bottomSliderDragStatus
|
|
34
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
35
|
+
style: {
|
|
36
|
+
width: bottomSliderInfo.width,
|
|
37
|
+
height: 48,
|
|
38
|
+
left: bottomSliderInfo.left
|
|
39
|
+
},
|
|
40
|
+
className: classnames("time-range-area-limit-slider-bottom-wrapper", {
|
|
41
|
+
"time-range-area-limit-slider-bottom-wrapper-not-drag": !bottomSliderInfo.canDrag
|
|
42
|
+
}),
|
|
43
|
+
onMouseDown: function onMouseDown(e) {
|
|
44
|
+
return beginMouseDown(e, "bottom");
|
|
45
|
+
},
|
|
46
|
+
ref: TimeRangeAreaLimitBottomSlider
|
|
47
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
48
|
+
className: classnames("time-range-area-limit-slider-bottom-resize"),
|
|
49
|
+
onMouseDown: function onMouseDown(e) {
|
|
50
|
+
return beginMouseDown(e, "bottom", "left");
|
|
51
|
+
}
|
|
52
|
+
}, /*#__PURE__*/React.createElement(LimitAreaSvg, null)), /*#__PURE__*/React.createElement("div", {
|
|
53
|
+
className: classnames("time-range-area-limit-slider-bottom-resize", "time-range-area-limit-slider-bottom-resize-right"),
|
|
54
|
+
onMouseDown: function onMouseDown(e) {
|
|
55
|
+
return beginMouseDown(e, "bottom", "right");
|
|
56
|
+
}
|
|
57
|
+
}, /*#__PURE__*/React.createElement(LimitAreaSvg, null)))), isHoverBottomWrapper && !bottomSliderDragStatus && /*#__PURE__*/React.createElement(_Tooltip, {
|
|
58
|
+
overlayClassName: "time-range-area-limit-slider-tooltip-wrapper",
|
|
59
|
+
title: isHasHoverTooltipTimeDate && /*#__PURE__*/React.createElement(React.Fragment, null, bottomSliderHoverInfo.date[0].format("YYYY/MM/DD HH:mm:ss"), " -", " ", bottomSliderHoverInfo.date[1].format("YYYY/MM/DD HH:mm:ss")),
|
|
60
|
+
visible: !bottomSliderDragStatus
|
|
61
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
62
|
+
style: {
|
|
63
|
+
width: bottomSliderHoverInfo.width,
|
|
64
|
+
height: 48,
|
|
65
|
+
left: bottomSliderHoverInfo.left
|
|
66
|
+
},
|
|
67
|
+
className: classnames("time-range-area-limit-slider-bottom-hover-wrapper")
|
|
68
|
+
})));
|
|
69
|
+
};
|
|
70
|
+
export default BottomPlaceholder;
|
package/lib/TimeRangeSlider/TimeRangeSliderCmp/components/BottomSlider/BottomTimeDateProcess.js
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import React, { useMemo } from "react";
|
|
2
|
+
import { getAllTimeDates, getConvertedTimeDateDataByEndDate } from "../../utils";
|
|
3
|
+
import classnames from "classnames";
|
|
4
|
+
var BottomTimeDateProcess = function BottomTimeDateProcess(props) {
|
|
5
|
+
var recordTimeDateWrapper = props.recordTimeDateWrapper,
|
|
6
|
+
timeSliderWidth = props.timeSliderWidth;
|
|
7
|
+
var convertedTimeDateData = useMemo(function () {
|
|
8
|
+
if (recordTimeDateWrapper.length === 0) return [];
|
|
9
|
+
var allTimeDates = getAllTimeDates(recordTimeDateWrapper[1]);
|
|
10
|
+
return getConvertedTimeDateDataByEndDate(allTimeDates);
|
|
11
|
+
}, [recordTimeDateWrapper]);
|
|
12
|
+
var singleWidth = timeSliderWidth / 24; // 24代表24个小时
|
|
13
|
+
return convertedTimeDateData.map(function (item, index) {
|
|
14
|
+
var indexDivisibleByThree = index % 3 === 0; // 索引能够被三整除
|
|
15
|
+
var isCutLine = indexDivisibleByThree && index !== 0 && index !== 24;
|
|
16
|
+
var isShowMMDD = index == 0 || index == 24;
|
|
17
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
18
|
+
key: index,
|
|
19
|
+
style: {
|
|
20
|
+
width: index === 0 ? 0 : singleWidth
|
|
21
|
+
},
|
|
22
|
+
className: classnames("time-range-single-slider-bottom", {
|
|
23
|
+
"time-range-single-odd-slider-bottom": indexDivisibleByThree
|
|
24
|
+
})
|
|
25
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
26
|
+
className: "time-range-single-slider-bottom-HH-MM"
|
|
27
|
+
}, item.HH_MM), isCutLine && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
28
|
+
className: classnames("time-range-single-slider-bottom-cut-line")
|
|
29
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
30
|
+
className: classnames("time-range-single-slider-bottom-cut-line", "time-range-single-slider-bottom-cut-line-bottom")
|
|
31
|
+
})), isShowMMDD && /*#__PURE__*/React.createElement("div", {
|
|
32
|
+
className: "time-range-single-slider-bottom-MM-DD"
|
|
33
|
+
}, item.MM_DD));
|
|
34
|
+
});
|
|
35
|
+
};
|
|
36
|
+
export default BottomTimeDateProcess;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import BottomTimeDateProcess from "./BottomTimeDateProcess";
|
|
3
|
+
import BottomPlaceholder from "./BottomPlaceholder";
|
|
4
|
+
import "./index.less";
|
|
5
|
+
var Index = function Index(props) {
|
|
6
|
+
var timeSliderWidth = props.timeSliderWidth,
|
|
7
|
+
clickBottomWrapper = props.clickBottomWrapper,
|
|
8
|
+
bottomSliderInfo = props.bottomSliderInfo,
|
|
9
|
+
TimeRangeAreaLimitBottomSlider = props.TimeRangeAreaLimitBottomSlider,
|
|
10
|
+
beginMouseDown = props.beginMouseDown,
|
|
11
|
+
recordTimeDateWrapper = props.recordTimeDateWrapper,
|
|
12
|
+
TimeRangeSliderBottomWrapperRef = props.TimeRangeSliderBottomWrapperRef,
|
|
13
|
+
bottomSliderHoverInfo = props.bottomSliderHoverInfo,
|
|
14
|
+
bottomSliderDragStatus = props.bottomSliderDragStatus,
|
|
15
|
+
isHoverBottomWrapper = props.isHoverBottomWrapper,
|
|
16
|
+
isHoverPlaceholderBottom = props.isHoverPlaceholderBottom;
|
|
17
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
18
|
+
className: "time-range-slider-bottom-wrapper",
|
|
19
|
+
style: {
|
|
20
|
+
width: timeSliderWidth
|
|
21
|
+
}
|
|
22
|
+
}, /*#__PURE__*/React.createElement(BottomTimeDateProcess, {
|
|
23
|
+
recordTimeDateWrapper: recordTimeDateWrapper,
|
|
24
|
+
timeSliderWidth: timeSliderWidth
|
|
25
|
+
}), /*#__PURE__*/React.createElement(BottomPlaceholder, {
|
|
26
|
+
timeSliderWidth: timeSliderWidth,
|
|
27
|
+
clickBottomWrapper: clickBottomWrapper,
|
|
28
|
+
bottomSliderInfo: bottomSliderInfo,
|
|
29
|
+
TimeRangeAreaLimitBottomSlider: TimeRangeAreaLimitBottomSlider,
|
|
30
|
+
beginMouseDown: beginMouseDown,
|
|
31
|
+
TimeRangeSliderBottomWrapperRef: TimeRangeSliderBottomWrapperRef,
|
|
32
|
+
bottomSliderHoverInfo: bottomSliderHoverInfo,
|
|
33
|
+
bottomSliderDragStatus: bottomSliderDragStatus,
|
|
34
|
+
isHoverBottomWrapper: isHoverBottomWrapper,
|
|
35
|
+
isHoverPlaceholderBottom: isHoverPlaceholderBottom
|
|
36
|
+
}));
|
|
37
|
+
};
|
|
38
|
+
export default Index;
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
.time-range-slider-bottom-wrapper {
|
|
2
|
+
display: flex;
|
|
3
|
+
align-items: center;
|
|
4
|
+
height: 48px;
|
|
5
|
+
border: @border-width-base @border-style-base @border-color-base;
|
|
6
|
+
position: relative;
|
|
7
|
+
|
|
8
|
+
.time-range-single-slider-bottom {
|
|
9
|
+
position: relative;
|
|
10
|
+
height: 100%;
|
|
11
|
+
|
|
12
|
+
.time-range-single-slider-bottom-HH-MM {
|
|
13
|
+
position: absolute;
|
|
14
|
+
width: 40px;
|
|
15
|
+
text-align: center;
|
|
16
|
+
background-color: @component-background;
|
|
17
|
+
height: 20px;
|
|
18
|
+
line-height: 20px;
|
|
19
|
+
top: 13px;
|
|
20
|
+
right: -20px;
|
|
21
|
+
z-index: 2;
|
|
22
|
+
color: @text-color-secondary;
|
|
23
|
+
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.time-range-single-slider-bottom-cut-line {
|
|
27
|
+
position: absolute;
|
|
28
|
+
border-left: @border-width-base @border-style-base @border-color-base;
|
|
29
|
+
right: -0.5px;
|
|
30
|
+
height: 12px;
|
|
31
|
+
|
|
32
|
+
&.time-range-single-slider-bottom-cut-line-bottom {
|
|
33
|
+
bottom: 0;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.time-range-single-slider-bottom-MM-DD {
|
|
38
|
+
position: absolute;
|
|
39
|
+
width: 40px;
|
|
40
|
+
text-align: center;
|
|
41
|
+
background-color: @component-background;
|
|
42
|
+
height: 20px;
|
|
43
|
+
line-height: 20px;
|
|
44
|
+
bottom: -24px;
|
|
45
|
+
right: -20px;
|
|
46
|
+
z-index: 2;
|
|
47
|
+
color: @text-color-secondary;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
.time-range-slider-bottom-clone-wrapper {
|
|
54
|
+
position: absolute;
|
|
55
|
+
height: 48px;
|
|
56
|
+
left: -1px;
|
|
57
|
+
overflow: hidden;
|
|
58
|
+
z-index: 3;
|
|
59
|
+
cursor: crosshair;
|
|
60
|
+
|
|
61
|
+
.time-range-area-limit-slider-bottom-wrapper {
|
|
62
|
+
position: absolute;
|
|
63
|
+
cursor: move;
|
|
64
|
+
border: @border-width-base dashed @primary-color;
|
|
65
|
+
z-index: 2;
|
|
66
|
+
|
|
67
|
+
&.time-range-area-limit-slider-bottom-wrapper-not-drag {
|
|
68
|
+
border-color: @error-color;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.time-range-area-limit-slider-bottom-resize {
|
|
72
|
+
position: absolute;
|
|
73
|
+
left: -7px;
|
|
74
|
+
width: 6px;
|
|
75
|
+
height: 24px;
|
|
76
|
+
top: 11px;
|
|
77
|
+
cursor: ew-resize;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.time-range-area-limit-slider-bottom-resize-right {
|
|
81
|
+
right: -7px;
|
|
82
|
+
left: auto;
|
|
83
|
+
transform: rotateY(180deg);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.time-range-area-limit-slider-bottom-hover-wrapper {
|
|
88
|
+
position: absolute;
|
|
89
|
+
z-index: 1;
|
|
90
|
+
background-color: @primary-color;
|
|
91
|
+
opacity: 0.1;
|
|
92
|
+
|
|
93
|
+
&::before {
|
|
94
|
+
content: '';
|
|
95
|
+
position: absolute;
|
|
96
|
+
z-index: 1;
|
|
97
|
+
top: 0;
|
|
98
|
+
left: calc((100% - 1px) /2);
|
|
99
|
+
width: 1px;
|
|
100
|
+
height: 100%;
|
|
101
|
+
background-color: #555;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.time-range-area-limit-slider-tooltip-wrapper {
|
|
108
|
+
max-width: 500px;
|
|
109
|
+
|
|
110
|
+
.@{ant-prefix}-tooltip-inner {
|
|
111
|
+
white-space: nowrap !important;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { getAllDates, getConvertedDateData } from "../../utils";
|
|
3
|
+
import classnames from "classnames";
|
|
4
|
+
var TopDateProcess = function TopDateProcess(props) {
|
|
5
|
+
var currentMomentRef = props.currentMomentRef,
|
|
6
|
+
timeBoundary = props.timeBoundary,
|
|
7
|
+
timeSliderWidth = props.timeSliderWidth;
|
|
8
|
+
var days = timeBoundary.days;
|
|
9
|
+
var singleWidth = timeSliderWidth / days;
|
|
10
|
+
var allDates = getAllDates(currentMomentRef.current, days);
|
|
11
|
+
var convertedDateData = getConvertedDateData(allDates, singleWidth, days);
|
|
12
|
+
return convertedDateData.map(function (item, index) {
|
|
13
|
+
var isStartYYYY = item.isStartYYYY,
|
|
14
|
+
YYYY = item.YYYY,
|
|
15
|
+
MM_DD = item.MM_DD,
|
|
16
|
+
position = item.position;
|
|
17
|
+
var width = position.width;
|
|
18
|
+
var oddIndex = index % 2 === 1; // 奇数索引
|
|
19
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
20
|
+
className: classnames("time-range-single-slider", {
|
|
21
|
+
"time-range-single-odd-slider": oddIndex
|
|
22
|
+
}),
|
|
23
|
+
style: {
|
|
24
|
+
width: width
|
|
25
|
+
},
|
|
26
|
+
key: index
|
|
27
|
+
}, isStartYYYY && /*#__PURE__*/React.createElement("div", {
|
|
28
|
+
className: "time-range-single-slider-YYYY"
|
|
29
|
+
}, YYYY), oddIndex && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
30
|
+
className: "time-range-single-slider-cut-line-MM-DD"
|
|
31
|
+
}, "|"), /*#__PURE__*/React.createElement("div", {
|
|
32
|
+
className: "time-range-single-slider-MM-DD"
|
|
33
|
+
}, MM_DD)));
|
|
34
|
+
});
|
|
35
|
+
};
|
|
36
|
+
export default TopDateProcess;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import "@chaoswise/ui/lib/Tooltip/index.less";
|
|
2
|
+
import _Tooltip from "@chaoswise/ui/lib/Tooltip";
|
|
3
|
+
import _Icon from "@chaoswise/ui/lib/Icon";
|
|
4
|
+
import React, { useMemo } from "react";
|
|
5
|
+
var TopPlaceholder = function TopPlaceholder(props) {
|
|
6
|
+
var TimeRangeAreaLimitSlider = props.TimeRangeAreaLimitSlider,
|
|
7
|
+
topSliderInfo = props.topSliderInfo,
|
|
8
|
+
timeBoundary = props.timeBoundary,
|
|
9
|
+
timeSliderWidth = props.timeSliderWidth,
|
|
10
|
+
beginMouseDown = props.beginMouseDown;
|
|
11
|
+
var days = timeBoundary.days;
|
|
12
|
+
var singleWidth = timeSliderWidth / days;
|
|
13
|
+
var isHasTooltipDate = useMemo(function () {
|
|
14
|
+
return Array.isArray(topSliderInfo.date) && topSliderInfo.date.length === 2;
|
|
15
|
+
}, [topSliderInfo]);
|
|
16
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
17
|
+
style: {
|
|
18
|
+
width: singleWidth,
|
|
19
|
+
left: topSliderInfo.left
|
|
20
|
+
},
|
|
21
|
+
className: "time-range-area-limit-slider",
|
|
22
|
+
onMouseDown: function onMouseDown(e) {
|
|
23
|
+
return beginMouseDown(e, "top");
|
|
24
|
+
},
|
|
25
|
+
ref: TimeRangeAreaLimitSlider
|
|
26
|
+
}, /*#__PURE__*/React.createElement(_Tooltip, {
|
|
27
|
+
overlayClassName: "time-range-area-limit-slider-tooltip-wrapper",
|
|
28
|
+
title: isHasTooltipDate && /*#__PURE__*/React.createElement(React.Fragment, null, topSliderInfo.date[0].format("MM/DD HH:mm:ss"), " -", " ", topSliderInfo.date[1].format("MM/DD HH:mm:ss"))
|
|
29
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
30
|
+
className: "time-range-slider-top-placeholder-out"
|
|
31
|
+
}, /*#__PURE__*/React.createElement(_Icon, {
|
|
32
|
+
className: "time-range-slider-top-placeholder-inner",
|
|
33
|
+
type: "down"
|
|
34
|
+
}))));
|
|
35
|
+
};
|
|
36
|
+
export default TopPlaceholder;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import TopPlaceholder from "./TopPlaceholder";
|
|
3
|
+
import TopDateProcess from "./TopDateProcess";
|
|
4
|
+
import "./index.less";
|
|
5
|
+
var TopSlider = function TopSlider(props) {
|
|
6
|
+
var currentMomentRef = props.currentMomentRef,
|
|
7
|
+
TimeRangeSliderWrapperRef = props.TimeRangeSliderWrapperRef,
|
|
8
|
+
timeSliderWidth = props.timeSliderWidth,
|
|
9
|
+
TimeRangeAreaLimitSlider = props.TimeRangeAreaLimitSlider,
|
|
10
|
+
beginMouseDown = props.beginMouseDown,
|
|
11
|
+
topSliderInfo = props.topSliderInfo,
|
|
12
|
+
timeBoundary = props.timeBoundary;
|
|
13
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
14
|
+
className: "time-range-slider-top-wrapper",
|
|
15
|
+
ref: TimeRangeSliderWrapperRef,
|
|
16
|
+
style: {
|
|
17
|
+
width: timeSliderWidth
|
|
18
|
+
}
|
|
19
|
+
}, /*#__PURE__*/React.createElement(TopDateProcess, {
|
|
20
|
+
timeBoundary: timeBoundary,
|
|
21
|
+
currentMomentRef: currentMomentRef,
|
|
22
|
+
timeSliderWidth: timeSliderWidth
|
|
23
|
+
}), /*#__PURE__*/React.createElement(TopPlaceholder, {
|
|
24
|
+
TimeRangeAreaLimitSlider: TimeRangeAreaLimitSlider,
|
|
25
|
+
topSliderInfo: topSliderInfo,
|
|
26
|
+
timeBoundary: timeBoundary,
|
|
27
|
+
timeSliderWidth: timeSliderWidth,
|
|
28
|
+
beginMouseDown: beginMouseDown
|
|
29
|
+
}));
|
|
30
|
+
};
|
|
31
|
+
export default TopSlider;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
.time-range-slider-top-wrapper {
|
|
2
|
+
display: flex;
|
|
3
|
+
align-items: center;
|
|
4
|
+
height: 28px;
|
|
5
|
+
background-color: @disabled-bg;
|
|
6
|
+
position: relative;
|
|
7
|
+
margin-bottom: 66px;
|
|
8
|
+
|
|
9
|
+
.time-range-single-slider {
|
|
10
|
+
position: relative;
|
|
11
|
+
height: 100%;
|
|
12
|
+
color: @text-color-secondary;
|
|
13
|
+
|
|
14
|
+
&.time-range-single-odd-slider {
|
|
15
|
+
background-color: fade(@white, 60%);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.time-range-single-slider-YYYY,
|
|
19
|
+
.time-range-single-slider-MM-DD {
|
|
20
|
+
position: absolute;
|
|
21
|
+
height: 20px;
|
|
22
|
+
line-height: 20px;
|
|
23
|
+
width: 40px;
|
|
24
|
+
text-align: center;
|
|
25
|
+
left: -20px;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.time-range-single-slider-YYYY {
|
|
29
|
+
top: -24px;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.time-range-single-slider-MM-DD {
|
|
33
|
+
top: 32px;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.time-range-single-slider-cut-line-MM-DD {
|
|
37
|
+
position: absolute;
|
|
38
|
+
width: 4px;
|
|
39
|
+
left: -2px;
|
|
40
|
+
height: 6px;
|
|
41
|
+
line-height: 6px;
|
|
42
|
+
top: 28px;
|
|
43
|
+
overflow: hidden;
|
|
44
|
+
text-align: center;
|
|
45
|
+
color: @disabled-color;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.time-range-area-limit-slider {
|
|
50
|
+
position: absolute;
|
|
51
|
+
z-index: 2;
|
|
52
|
+
cursor: move;
|
|
53
|
+
height: 28px;
|
|
54
|
+
|
|
55
|
+
.time-range-slider-top-placeholder-out {
|
|
56
|
+
width: 100%;
|
|
57
|
+
height: 100%;
|
|
58
|
+
position: relative;
|
|
59
|
+
border: @border-width-base @border-style-base @primary-color;
|
|
60
|
+
border-radius: 2px;
|
|
61
|
+
background-color: @component-background;
|
|
62
|
+
|
|
63
|
+
.time-range-slider-top-placeholder-inner {
|
|
64
|
+
position: absolute;
|
|
65
|
+
color: @primary-color !important;
|
|
66
|
+
left: calc((100% - 12px) / 2);
|
|
67
|
+
bottom: -9px;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.time-range-area-limit-slider-tooltip-wrapper {
|
|
74
|
+
max-width: 500px;
|
|
75
|
+
|
|
76
|
+
.@{ant-prefix}-tooltip-inner {
|
|
77
|
+
white-space: nowrap !important;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
4
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
5
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
6
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
7
|
+
import { useState, useEffect } from "react";
|
|
8
|
+
var useHover = function useHover(targetElementRef) {
|
|
9
|
+
var _useState = useState(false),
|
|
10
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
11
|
+
isHover = _useState2[0],
|
|
12
|
+
setIsHover = _useState2[1];
|
|
13
|
+
var onMouseEnter = function onMouseEnter() {
|
|
14
|
+
setIsHover(true);
|
|
15
|
+
};
|
|
16
|
+
var onMouseLeave = function onMouseLeave() {
|
|
17
|
+
setIsHover(false);
|
|
18
|
+
};
|
|
19
|
+
useEffect(function () {
|
|
20
|
+
var _targetElementRef$cur, _targetElementRef$cur2;
|
|
21
|
+
(_targetElementRef$cur = targetElementRef.current) === null || _targetElementRef$cur === void 0 || _targetElementRef$cur.addEventListener("mouseenter", onMouseEnter);
|
|
22
|
+
(_targetElementRef$cur2 = targetElementRef.current) === null || _targetElementRef$cur2 === void 0 || _targetElementRef$cur2.addEventListener("mouseleave", onMouseLeave);
|
|
23
|
+
return function () {
|
|
24
|
+
var _targetElementRef$cur3, _targetElementRef$cur4;
|
|
25
|
+
(_targetElementRef$cur3 = targetElementRef.current) === null || _targetElementRef$cur3 === void 0 || _targetElementRef$cur3.removeEventListener("mouseenter", onMouseEnter);
|
|
26
|
+
(_targetElementRef$cur4 = targetElementRef.current) === null || _targetElementRef$cur4 === void 0 || _targetElementRef$cur4.removeEventListener("mouseleave", onMouseLeave);
|
|
27
|
+
};
|
|
28
|
+
}, []);
|
|
29
|
+
return isHover;
|
|
30
|
+
};
|
|
31
|
+
export default useHover;
|