@chaoswise/ui 2.5.2 → 2.5.4

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.
Files changed (68) hide show
  1. package/lib/Ace/ace.js +6 -7
  2. package/lib/Ace/diff.js +6 -7
  3. package/lib/Ace/split.js +6 -7
  4. package/lib/Antd4Form/FormItemChildren.js +5 -6
  5. package/lib/CWSelect/antd-select.js +6 -7
  6. package/lib/CWTable/util.js +1 -1
  7. package/lib/CWTree/index.js +65 -64
  8. package/lib/CWUpload/upload/Upload.js +5 -6
  9. package/lib/CWUpload/upload/UploadList.js +5 -6
  10. package/lib/Checkbox/Checkbox.js +6 -7
  11. package/lib/Checkbox/Group.js +6 -7
  12. package/lib/ErrorBoundary/index.js +6 -7
  13. package/lib/Menu/menu/MenuItem.js +5 -6
  14. package/lib/Menu/menu/SubMenu.js +5 -6
  15. package/lib/Menu/menu/index.js +6 -8
  16. package/lib/Modal/Modal.js +6 -7
  17. package/lib/ModuleFederation/ErrorBoundary/index.js +5 -6
  18. package/lib/Radio/Group.js +6 -7
  19. package/lib/Radio/Radio.js +6 -7
  20. package/lib/SiderMenu/Item.js +5 -6
  21. package/lib/SingleSpa/hooks/useErrorHandle.js +65 -0
  22. package/lib/SingleSpa/hooks/useModel.js +31 -0
  23. package/lib/SingleSpa/import-html/utils.js +14 -11
  24. package/lib/SingleSpa/index.js +35 -13
  25. package/lib/SingleSpa/singleSpa/single-spa.dev.js +11 -6
  26. package/lib/SingleSpa/system/amd.js +1 -0
  27. package/lib/SingleSpa/system/system.js +23 -16
  28. package/lib/SingleSpa/utils.js +15 -2
  29. package/lib/Table/index.js +29 -2
  30. package/lib/Table/util.js +15 -0
  31. package/lib/TimeRangeSlider/Refresh/index.js +161 -0
  32. package/lib/TimeRangeSlider/Refresh/index.less +26 -0
  33. package/lib/TimeRangeSlider/TimeRangeSliderCmp/assets/LimitAreaSvg.js +110 -0
  34. package/lib/TimeRangeSlider/TimeRangeSliderCmp/components/BottomSlider/BottomPlaceholder.js +70 -0
  35. package/lib/TimeRangeSlider/TimeRangeSliderCmp/components/BottomSlider/BottomTimeDateProcess.js +36 -0
  36. package/lib/TimeRangeSlider/TimeRangeSliderCmp/components/BottomSlider/index.js +38 -0
  37. package/lib/TimeRangeSlider/TimeRangeSliderCmp/components/BottomSlider/index.less +113 -0
  38. package/lib/TimeRangeSlider/TimeRangeSliderCmp/components/TopSlider/TopDateProcess.js +36 -0
  39. package/lib/TimeRangeSlider/TimeRangeSliderCmp/components/TopSlider/TopPlaceholder.js +36 -0
  40. package/lib/TimeRangeSlider/TimeRangeSliderCmp/components/TopSlider/index.js +31 -0
  41. package/lib/TimeRangeSlider/TimeRangeSliderCmp/components/TopSlider/index.less +79 -0
  42. package/lib/TimeRangeSlider/TimeRangeSliderCmp/hooks/useHover.js +31 -0
  43. package/lib/TimeRangeSlider/TimeRangeSliderCmp/hooks/useMouse.js +325 -0
  44. package/lib/TimeRangeSlider/TimeRangeSliderCmp/index.js +73 -0
  45. package/lib/TimeRangeSlider/TimeRangeSliderCmp/utils/index.js +227 -0
  46. package/lib/TimeRangeSlider/TimeSpan/index.js +81 -0
  47. package/lib/TimeRangeSlider/TimeSpan/index.less +12 -0
  48. package/lib/TimeRangeSlider/assets/Calendar.js +15 -0
  49. package/lib/TimeRangeSlider/assets/Calendar2.js +15 -0
  50. package/lib/TimeRangeSlider/assets/Recover.js +18 -0
  51. package/lib/TimeRangeSlider/assets/Refresh1.js +14 -0
  52. package/lib/TimeRangeSlider/assets/Refresh2.js +14 -0
  53. package/lib/TimeRangeSlider/assets/Refresh3.js +14 -0
  54. package/lib/TimeRangeSlider/assets/live.js +19 -0
  55. package/lib/TimeRangeSlider/assets/more.js +23 -0
  56. package/lib/TimeRangeSlider/index.js +480 -0
  57. package/lib/TimeRangeSlider/index.less +122 -0
  58. package/lib/TimeRangeSlider/locale/en_US.js +29 -0
  59. package/lib/TimeRangeSlider/locale/index.js +11 -0
  60. package/lib/TimeRangeSlider/locale/zh_CN.js +29 -0
  61. package/lib/TimeRangeSlider/locale/zh_TW.js +29 -0
  62. package/lib/TimeRangeSlider/utils/index.js +712 -0
  63. package/lib/TooltipText/ResizeObserverManager.js +56 -0
  64. package/lib/TooltipText/index.js +50 -60
  65. package/package.json +3 -3
  66. package/lib/Col/Collapse.less +0 -129
  67. package/lib/Select/TreeSelect.less +0 -10
  68. package/lib/Tree/TreeSelect.less +0 -10
@@ -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;
@@ -0,0 +1,325 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
8
+ 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."); }
9
+ 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); }
10
+ 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; }
11
+ 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; } }
12
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
13
+ import React, { useState, useEffect, useRef } from "react";
14
+ import { getCorrectValue } from "../../utils";
15
+ import { getPositionInfoByDateInfo, getDateInfoByPositionInfo, getPositionInfoByTimeDateInfo, getTimeDateInfoByPositionInfo, isSameOrAfter, getOffsetLeft, getBottomSliderHoverInfo } from "../utils";
16
+ import useHover from "./useHover";
17
+ import moment from "moment";
18
+ var useMouse = function useMouse(_ref) {
19
+ var timeBoundary = _ref.timeBoundary,
20
+ isHandleClickRef = _ref.isHandleClickRef,
21
+ onChange = _ref.onChange,
22
+ timeSliderWidth = _ref.timeSliderWidth,
23
+ visible = _ref.visible,
24
+ inputRef = _ref.inputRef,
25
+ TimeRangeSliderWrapperRef = _ref.TimeRangeSliderWrapperRef,
26
+ TimeRangeAreaLimitSlider = _ref.TimeRangeAreaLimitSlider,
27
+ TimeRangeAreaLimitBottomSlider = _ref.TimeRangeAreaLimitBottomSlider,
28
+ recordDate = _ref.recordDate,
29
+ TimeRangeSliderBottomWrapperRef = _ref.TimeRangeSliderBottomWrapperRef;
30
+ var min = timeBoundary.min,
31
+ max = timeBoundary.max,
32
+ days = timeBoundary.days;
33
+ var _useState = useState(false),
34
+ _useState2 = _slicedToArray(_useState, 2),
35
+ bottomSliderDragStatus = _useState2[0],
36
+ setBottomSliderDragStatus = _useState2[1]; // 下部分滑块拖拽状态
37
+ var _useState3 = useState({
38
+ left: 0,
39
+ date: []
40
+ }),
41
+ _useState4 = _slicedToArray(_useState3, 2),
42
+ topSliderInfo = _useState4[0],
43
+ setTopSliderInfo = _useState4[1];
44
+ var _useState5 = useState({
45
+ width: 0,
46
+ left: 0,
47
+ data: [],
48
+ canDrag: true
49
+ }),
50
+ _useState6 = _slicedToArray(_useState5, 2),
51
+ bottomSliderInfo = _useState6[0],
52
+ setBottomSliderInfo = _useState6[1];
53
+ var _useState7 = useState({
54
+ width: 0,
55
+ left: 0,
56
+ data: []
57
+ }),
58
+ _useState8 = _slicedToArray(_useState7, 2),
59
+ bottomSliderHoverInfo = _useState8[0],
60
+ setBottomSliderHoverInfo = _useState8[1];
61
+ var _useState9 = useState([]),
62
+ _useState10 = _slicedToArray(_useState9, 2),
63
+ recordTimeDateWrapper = _useState10[0],
64
+ setRecordTimeDateWrapper = _useState10[1]; // 记录时间日期用于时间滑块外层容器渲染
65
+ var currentMomentRef = useRef(moment()); // 保存当前时间,用于计算时间滑块位置(下部分滑块),每次打开弹窗时更新
66
+ var recordEndTimeDateWrapper = useRef([]); // 保存最后一次时间日期用于时间滑块外层容器渲染(拖拽结束后)(下部分滑块)
67
+ var dragableRef = useRef({
68
+ status: false,
69
+ // 记录拖拽状态
70
+ position: undefined,
71
+ // 记录拖拽位置
72
+ resizePosition: undefined,
73
+ // 记录左右拖拽信息
74
+ initialWidth: 0,
75
+ // 记录初始宽度
76
+ beginX: 0 // 记录鼠标按下时的位置
77
+ });
78
+ var bottomSliderInfoRef = useRef({
79
+ width: 0,
80
+ left: 0,
81
+ data: [],
82
+ canDrag: true
83
+ });
84
+ var isHoverBottomWrapper = useHover(TimeRangeSliderBottomWrapperRef);
85
+ var isHoverPlaceholderBottom = useHover(TimeRangeAreaLimitBottomSlider);
86
+ useEffect(function () {
87
+ document.addEventListener("mousemove", move);
88
+ document.addEventListener("mouseup", endMove);
89
+ return function () {
90
+ document.removeEventListener("mousemove", move);
91
+ document.removeEventListener("mouseup", endMove);
92
+ };
93
+ }, []);
94
+ useEffect(function () {
95
+ if (!visible) {
96
+ inputRef.current.blur();
97
+ return;
98
+ }
99
+ if (Array.isArray(recordDate) && recordDate.length) {
100
+ currentMomentRef.current = moment();
101
+ var endDate = recordDate[1].clone();
102
+ var startDate = recordDate[1].clone().subtract(1, "days");
103
+ var startLeft = getPositionInfoByDateInfo(startDate, timeSliderWidth, currentMomentRef.current, days);
104
+ var newRecordEndTimeDateWrapper = [startDate, endDate];
105
+ recordEndTimeDateWrapper.current = newRecordEndTimeDateWrapper;
106
+ setTopSliderInfo(function (pre) {
107
+ return _objectSpread(_objectSpread({}, pre), {}, {
108
+ left: startLeft,
109
+ date: newRecordEndTimeDateWrapper
110
+ });
111
+ });
112
+ setBottomSliderInfo(function (pre) {
113
+ return _objectSpread(_objectSpread({}, pre), {}, {
114
+ date: recordDate
115
+ });
116
+ });
117
+ setRecordTimeDateWrapper(newRecordEndTimeDateWrapper);
118
+ }
119
+ }, [visible]);
120
+ useEffect(function () {
121
+ bottomSliderInfoRef.current = bottomSliderInfo;
122
+ }, [bottomSliderInfo]);
123
+ // 下半部分滑块信息
124
+ useEffect(function () {
125
+ var positionInfo = getPositionInfoByTimeDateInfo(recordDate, timeSliderWidth, currentMomentRef.current, recordTimeDateWrapper, days);
126
+ var date = getTimeDateInfoByPositionInfo(positionInfo.left, positionInfo.width, timeSliderWidth, currentMomentRef.current, recordTimeDateWrapper, days);
127
+ setBottomSliderInfo(function (pre) {
128
+ return _objectSpread(_objectSpread(_objectSpread({}, pre), positionInfo), {}, {
129
+ date: [date.startDate, date.endDate]
130
+ });
131
+ });
132
+ }, [recordDate, recordTimeDateWrapper]);
133
+ var resStartLeftDate = currentMomentRef.current.clone().subtract(1, "days");
134
+ var resStartLeftDatePosition = getPositionInfoByDateInfo(resStartLeftDate, timeSliderWidth, currentMomentRef.current, days);
135
+ /**
136
+ * 拖拽中
137
+ * @param {*} e : 事件对象
138
+ * @returns
139
+ */
140
+ var move = function move(e) {
141
+ var left = getOffsetLeft(e, TimeRangeSliderBottomWrapperRef); // 计算鼠标位置距离目标元素左侧的距离
142
+ var _getBottomSliderHover = getBottomSliderHoverInfo(left, bottomSliderInfoRef, timeSliderWidth, currentMomentRef, recordEndTimeDateWrapper.current, days),
143
+ hoverTimeDate = _getBottomSliderHover.date,
144
+ hoverLeft = _getBottomSliderHover.left,
145
+ hoverWidth = _getBottomSliderHover.width;
146
+ setBottomSliderHoverInfo({
147
+ left: hoverLeft,
148
+ width: hoverWidth,
149
+ date: hoverTimeDate
150
+ });
151
+ isHandleClickRef.current = e.buttons !== 1; // e.buttons === 1 为鼠标左键按下
152
+ var _dragableRef$current = dragableRef.current,
153
+ status = _dragableRef$current.status,
154
+ position = _dragableRef$current.position,
155
+ resizePosition = _dragableRef$current.resizePosition,
156
+ initialWidth = _dragableRef$current.initialWidth,
157
+ beginX = _dragableRef$current.beginX;
158
+ if (!status) return;
159
+ var TimeRangeSliderWrapper = TimeRangeSliderWrapperRef.current;
160
+ var TimeRangeAreaLimitSliderDom = TimeRangeAreaLimitSlider.current;
161
+ // 计算当前偏移量
162
+ var newLeft = e.clientX - beginX;
163
+ if (position === "top") {
164
+ if (newLeft >= 0 && newLeft + TimeRangeAreaLimitSliderDom.offsetWidth <= TimeRangeSliderWrapper.offsetWidth) {
165
+ if (newLeft > resStartLeftDatePosition) {
166
+ newLeft = resStartLeftDatePosition;
167
+ }
168
+ var _getDateInfoByPositio = getDateInfoByPositionInfo(newLeft, timeSliderWidth, currentMomentRef.current, days),
169
+ startDate = _getDateInfoByPositio.startDate,
170
+ endDate = _getDateInfoByPositio.endDate;
171
+ var newRecordEndTimeDateWrapper = [startDate, endDate];
172
+ recordEndTimeDateWrapper.current = newRecordEndTimeDateWrapper;
173
+ setTopSliderInfo({
174
+ left: newLeft,
175
+ date: newRecordEndTimeDateWrapper
176
+ });
177
+ }
178
+ }
179
+ if (position === "bottom") {
180
+ var width = bottomSliderInfoRef.current.width;
181
+ var _left = bottomSliderInfoRef.current.left;
182
+ var millisecondsOfTheDay = moment.duration(1, "days").valueOf(); // 一天的毫秒数 86400000
183
+ var minWidth = min / millisecondsOfTheDay * timeSliderWidth;
184
+ var maxWidth = max / millisecondsOfTheDay * timeSliderWidth;
185
+ var canDrag = true;
186
+ if (!resizePosition) {
187
+ _left = newLeft;
188
+ } else if (resizePosition === "left") {
189
+ var diffLeft = _left - newLeft;
190
+ width = Number(width + diffLeft);
191
+ _left = newLeft;
192
+ if (width < minWidth) {
193
+ width = minWidth;
194
+ _left = Number(bottomSliderInfoRef.current.left + bottomSliderInfoRef.current.width - minWidth);
195
+ canDrag = false;
196
+ } else if (width > maxWidth) {
197
+ width = maxWidth;
198
+ _left = Number(bottomSliderInfoRef.current.left + bottomSliderInfoRef.current.width - maxWidth);
199
+ canDrag = false;
200
+ }
201
+ } else {
202
+ width = Number(initialWidth + newLeft);
203
+ if (width < minWidth) {
204
+ width = minWidth;
205
+ canDrag = false;
206
+ } else if (width > maxWidth) {
207
+ width = maxWidth;
208
+ canDrag = false;
209
+ }
210
+ }
211
+ var date = getTimeDateInfoByPositionInfo(_left, width, timeSliderWidth, currentMomentRef.current, recordEndTimeDateWrapper.current, days);
212
+ var _startDate = currentMomentRef.current.clone().subtract(days, "days");
213
+ var isSameOrAfterStart = isSameOrAfter(date.startDate, _startDate);
214
+ var isSameOrAfterEnd = isSameOrAfter(currentMomentRef.current, date.endDate);
215
+ if (!isSameOrAfterStart || !isSameOrAfterEnd) return;
216
+ var newTimeDate = [date.startDate, date.endDate];
217
+ setBottomSliderInfo(function (pre) {
218
+ return _objectSpread(_objectSpread({}, pre), {}, {
219
+ width: width,
220
+ left: _left,
221
+ date: newTimeDate,
222
+ canDrag: canDrag
223
+ });
224
+ });
225
+ }
226
+ };
227
+ /**
228
+ * 拖拽结束
229
+ * @param {*} e : 事件对象
230
+ */
231
+ var endMove = function endMove(e) {
232
+ var position = dragableRef.current.position;
233
+ if (position === "top") {
234
+ setRecordTimeDateWrapper(recordEndTimeDateWrapper.current);
235
+ }
236
+ if (position === "bottom") {
237
+ var returnValue = getCorrectValue({
238
+ value: bottomSliderInfoRef.current.date
239
+ });
240
+ onChange(returnValue);
241
+ }
242
+ var status = false;
243
+ setBottomSliderDragStatus(status);
244
+ dragableRef.current = _objectSpread(_objectSpread({}, dragableRef.current), {}, {
245
+ status: status,
246
+ position: undefined,
247
+ initialWidth: 0,
248
+ resizePosition: undefined,
249
+ beginX: 0
250
+ });
251
+ setBottomSliderInfo(function (pre) {
252
+ return _objectSpread(_objectSpread({}, pre), {}, {
253
+ canDrag: true
254
+ });
255
+ });
256
+ };
257
+ /**
258
+ * 拖拽开始、滑块按下机制触发: 记录拖拽信息
259
+ * @param {*} e : 事件对象
260
+ * @param {*} position : top 上部分滑块 bottom 下部分滑块
261
+ * @param {*} resizePosition : position = "bottom" 情况下 left 向左拖拽 right 向右拖拽
262
+ */
263
+ var beginMouseDown = function beginMouseDown(e, position, resizePosition) {
264
+ e.stopPropagation();
265
+ e.preventDefault();
266
+ var TimeRangeAreaLimitSliderDom = TimeRangeAreaLimitSlider.current;
267
+ var TimeRangeAreaLimitBottomSliderDom = TimeRangeAreaLimitBottomSlider.current;
268
+ var X = e.clientX;
269
+ if (position === "top") {
270
+ X = e.clientX - TimeRangeAreaLimitSliderDom.offsetLeft;
271
+ } else if (position === "bottom" && resizePosition !== "right") {
272
+ X = e.clientX - TimeRangeAreaLimitBottomSliderDom.offsetLeft;
273
+ }
274
+ var status = true;
275
+ setBottomSliderDragStatus(status);
276
+ dragableRef.current = _objectSpread(_objectSpread({}, dragableRef.current), {}, {
277
+ status: status,
278
+ position: position,
279
+ resizePosition: resizePosition,
280
+ // 左右拖拽
281
+ initialWidth: TimeRangeAreaLimitBottomSliderDom.offsetWidth,
282
+ // 左右拖拽
283
+ beginX: X
284
+ });
285
+ };
286
+ /**
287
+ * 点击下部分滑块
288
+ * @param {*} e : 事件对象
289
+ * @returns
290
+ */
291
+ var clickBottomWrapper = function clickBottomWrapper(e) {
292
+ e.stopPropagation();
293
+ if (!isHandleClickRef.current) {
294
+ isHandleClickRef.current = true;
295
+ return;
296
+ }
297
+ var left = getOffsetLeft(e, TimeRangeSliderBottomWrapperRef); // 计算鼠标位置距离目标元素左侧的距离
298
+ var _getBottomSliderHover2 = getBottomSliderHoverInfo(left, bottomSliderInfoRef, timeSliderWidth, currentMomentRef, recordTimeDateWrapper, days),
299
+ newTimeDate = _getBottomSliderHover2.date,
300
+ hoverLeft = _getBottomSliderHover2.left;
301
+ setBottomSliderInfo(function (pre) {
302
+ return _objectSpread(_objectSpread({}, pre), {}, {
303
+ left: hoverLeft,
304
+ date: newTimeDate
305
+ });
306
+ });
307
+ var returnValue = getCorrectValue({
308
+ value: newTimeDate
309
+ });
310
+ onChange(returnValue);
311
+ };
312
+ return {
313
+ topSliderInfo: topSliderInfo,
314
+ bottomSliderInfo: bottomSliderInfo,
315
+ recordTimeDateWrapper: recordTimeDateWrapper,
316
+ currentMomentRef: currentMomentRef,
317
+ beginMouseDown: beginMouseDown,
318
+ clickBottomWrapper: clickBottomWrapper,
319
+ bottomSliderHoverInfo: bottomSliderHoverInfo,
320
+ bottomSliderDragStatus: bottomSliderDragStatus,
321
+ isHoverBottomWrapper: isHoverBottomWrapper,
322
+ isHoverPlaceholderBottom: isHoverPlaceholderBottom
323
+ };
324
+ };
325
+ export default useMouse;