@chaoswise/ui 3.0.15 → 3.0.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/lib/Ace/diff.js +1 -0
  2. package/lib/Antd5/_util/scrollTo.js +3 -3
  3. package/lib/Antd5/anchor/Anchor.js +3 -3
  4. package/lib/Antd5/table/hooks/useFilter/FilterDropdown.js +6 -6
  5. package/lib/Antd5/table/hooks/useFilter/index.js +3 -3
  6. package/lib/Antd5/table/hooks/useLazyKVMap.js +3 -3
  7. package/lib/Antd5/table/hooks/useSelection.js +3 -3
  8. package/lib/Antd5/theme/useToken.js +4 -3
  9. package/lib/Badge/index.js +1 -1
  10. package/lib/CWCascader/rc-cascader/utils/warningPropsUtil.js +3 -3
  11. package/lib/CWColorPicker/SketchPicker/components/common/ColorWrap.js +1 -1
  12. package/lib/CWColorPicker/SketchPicker/components/common/Hue.js +1 -1
  13. package/lib/CWColorPicker/SketchPicker/components/common/Raised.js +1 -1
  14. package/lib/CWColorPicker/SketchPicker/components/common/Saturation.js +1 -1
  15. package/lib/CWColorPicker/SketchPicker/components/sketch/index.js +1 -1
  16. package/lib/CWColorPicker/SketchPicker/helpers/color.js +1 -1
  17. package/lib/CWRangePicker/Refresh/index.style.js +10 -5
  18. package/lib/CWRangePicker/index.js +2 -2
  19. package/lib/CWRangePicker/index.style.js +0 -6
  20. package/lib/CWTree/index.js +3 -3
  21. package/lib/CWTree/utils/index.js +4 -3
  22. package/lib/Collapse/index.js +1 -1
  23. package/lib/ConfigProvider/ConfigProvider.js +7 -4
  24. package/lib/DateRangePicker/index.js +2 -0
  25. package/lib/Documentation/Tocify.js +1 -1
  26. package/lib/Drawer/index.js +1 -1
  27. package/lib/EchartsArea/index.js +2 -2
  28. package/lib/EchartsBar/index.js +2 -2
  29. package/lib/EchartsBarRow/index.js +0 -2
  30. package/lib/EchartsBase/index.js +14 -14
  31. package/lib/EchartsLine/index.js +2 -2
  32. package/lib/EchartsPie/index.js +2 -3
  33. package/lib/EchartsRing/index.js +2 -2
  34. package/lib/Empty/index.js +1 -1
  35. package/lib/FilterDropDown/DragList.js +2 -1
  36. package/lib/Flow/BasicLayout/Chain.js +3 -3
  37. package/lib/Flow/BasicLayout/util.js +3 -3
  38. package/lib/Form/FormItem.js +3 -1
  39. package/lib/Form/hook/useForm3.js +3 -3
  40. package/lib/Form/index.js +1 -1
  41. package/lib/Formily/FieldList/index.js +43 -0
  42. package/lib/Formily/Form/index.js +2 -0
  43. package/lib/Formily/FormButtonGroup/index.js +2 -0
  44. package/lib/Formily/FormItem/index.js +90 -0
  45. package/lib/Formily/FormItem/items/Checkbox.js +13 -0
  46. package/lib/Formily/FormItem/items/DatePicker.js +121 -0
  47. package/lib/Formily/FormItem/items/Input.js +13 -0
  48. package/lib/Formily/FormItem/items/NumberPicker.js +9 -0
  49. package/lib/Formily/FormItem/items/Password.js +70 -0
  50. package/lib/Formily/FormItem/items/Radio.js +13 -0
  51. package/lib/Formily/FormItem/items/Range.js +82 -0
  52. package/lib/Formily/FormItem/items/Rating.js +8 -0
  53. package/lib/Formily/FormItem/items/Select.js +8 -0
  54. package/lib/Formily/FormItem/items/Switch.js +9 -0
  55. package/lib/Formily/FormItem/items/Tansfer.js +9 -0
  56. package/lib/Formily/FormItem/items/TimePicker.js +44 -0
  57. package/lib/Formily/FormItem/items/Upload.js +260 -0
  58. package/lib/Formily/FormItem/items/formItemWrapper.js +17 -0
  59. package/lib/Formily/FormItem/items/shared.js +140 -0
  60. package/lib/Formily/FormPath/index.js +2 -0
  61. package/lib/Formily/MegaLayout/index.js +24 -0
  62. package/lib/Formily/Reset/index.js +2 -0
  63. package/lib/Formily/Submit/index.js +2 -0
  64. package/lib/Formily/context.js +3 -0
  65. package/lib/Formily/formily/index.js +22 -0
  66. package/lib/Formily/index.js +5 -0
  67. package/lib/Formily/subscribeFields/index.js +46 -0
  68. package/lib/Header/UserSetting/utils.js +5 -4
  69. package/lib/Joyride/List.js +3 -3
  70. package/lib/Joyride/index.js +3 -3
  71. package/lib/Modal/Modal.js +1 -1
  72. package/lib/Modal/index.js +1 -1
  73. package/lib/Pagination/index.js +1 -1
  74. package/lib/QuickTransfer/index.js +5 -5
  75. package/lib/QuickTransfer/utils.js +32 -23
  76. package/lib/RangePicker/components/ExtraQuickSelect.js +51 -0
  77. package/lib/RangePicker/components/ExtraTimeFooter.js +71 -0
  78. package/lib/RangePicker/index.js +469 -2
  79. package/lib/RangePicker/index.style.js +110 -0
  80. package/lib/RangePicker/utils/index.js +171 -0
  81. package/lib/ScrollLoad/index.js +7 -2
  82. package/lib/SiderMenu/index.js +14 -14
  83. package/lib/SingleSpa/system/systemjs-css.js +3 -3
  84. package/lib/ThemeProvider/main.js +1 -0
  85. package/lib/TimeRangeSlider/Refresh/index.js +163 -0
  86. package/lib/TimeRangeSlider/TimeRangeSliderCmp/assets/Limit.js +126 -0
  87. package/lib/TimeRangeSlider/TimeRangeSliderCmp/assets/Limit.svg +50 -0
  88. package/lib/TimeRangeSlider/TimeRangeSliderCmp/assets/LimitAreaSvg.js +110 -0
  89. package/lib/TimeRangeSlider/TimeRangeSliderCmp/components/BottomSlider/BottomPlaceholder.js +99 -0
  90. package/lib/TimeRangeSlider/TimeRangeSliderCmp/components/BottomSlider/BottomTimeDateProcess.js +36 -0
  91. package/lib/TimeRangeSlider/TimeRangeSliderCmp/components/BottomSlider/index.js +56 -0
  92. package/lib/TimeRangeSlider/TimeRangeSliderCmp/components/TopSlider/TopDateProcess.js +32 -0
  93. package/lib/TimeRangeSlider/TimeRangeSliderCmp/components/TopSlider/TopPlaceholder.js +54 -0
  94. package/lib/TimeRangeSlider/TimeRangeSliderCmp/components/TopSlider/index.js +47 -0
  95. package/lib/TimeRangeSlider/TimeRangeSliderCmp/hooks/useHover.js +31 -0
  96. package/lib/TimeRangeSlider/TimeRangeSliderCmp/hooks/useMouse.js +410 -0
  97. package/lib/TimeRangeSlider/TimeRangeSliderCmp/index.js +72 -0
  98. package/lib/TimeRangeSlider/TimeRangeSliderCmp/utils/index.js +255 -0
  99. package/lib/TimeRangeSlider/TimeSpan/index.js +93 -0
  100. package/lib/TimeRangeSlider/assets/Calendar.js +15 -0
  101. package/lib/TimeRangeSlider/assets/Calendar2.js +15 -0
  102. package/lib/TimeRangeSlider/assets/Recover.js +18 -0
  103. package/lib/TimeRangeSlider/assets/Refresh1.js +14 -0
  104. package/lib/TimeRangeSlider/assets/Refresh2.js +14 -0
  105. package/lib/TimeRangeSlider/assets/Refresh3.js +14 -0
  106. package/lib/TimeRangeSlider/assets/live.js +19 -0
  107. package/lib/TimeRangeSlider/assets/more.js +23 -0
  108. package/lib/TimeRangeSlider/index.js +562 -0
  109. package/lib/TimeRangeSlider/locale/en_US.js +31 -0
  110. package/lib/TimeRangeSlider/locale/index.js +11 -0
  111. package/lib/TimeRangeSlider/locale/zh_CN.js +31 -0
  112. package/lib/TimeRangeSlider/locale/zh_TW.js +31 -0
  113. package/lib/TimeRangeSlider/styles/index.style.js +64 -0
  114. package/lib/TimeRangeSlider/styles/refresh.style.js +38 -0
  115. package/lib/TimeRangeSlider/styles/timeRangeSliderBottom.style.js +125 -0
  116. package/lib/TimeRangeSlider/styles/timeRangeSliderTop.style.js +81 -0
  117. package/lib/TimeRangeSlider/styles/timeSpan.style.js +22 -0
  118. package/lib/TimeRangeSlider/utils/index.js +737 -0
  119. package/lib/UniversalLayout/index.js +4 -4
  120. package/lib/antd-style/factories/createThemeProvider/AntdProvider.js +5 -1
  121. package/lib/antd-style/functions/extractStaticStyle.js +1 -1
  122. package/lib/antd-style/hooks/useAntdToken.js +1 -1
  123. package/lib/antd-style/hooks/useResponsive.js +1 -1
  124. package/lib/antd-style/utils/css.js +3 -2
  125. package/lib/locales/en_US.json +1 -1
  126. package/lib/locales/zh_CN.json +1 -1
  127. package/lib/locales/zh_TW.json +1 -1
  128. package/lib/useLocale/index.js +20 -0
  129. package/package.json +5 -1
@@ -0,0 +1,562 @@
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
+ import _Popover from "@chaoswise/ui/lib/Popover";
3
+ import _Input from "@chaoswise/ui/lib/Input";
4
+ import _message from "@chaoswise/ui/lib/message";
5
+ var _excluded = ["timeDomain", "number", "unit", "isRecently", "value"],
6
+ _excluded2 = ["value", "timeDomain", "number", "unit", "isRecently"];
7
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
8
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
9
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }
10
+ 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; }
11
+ 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; }
12
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
13
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
14
+ 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); }
15
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
16
+ 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."); }
17
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
18
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
19
+ 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; } }
20
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
21
+ import React, { forwardRef, useState, useEffect, useMemo, useRef, useImperativeHandle } from "react";
22
+ import { CloseOutlined } from "@ant-design/icons";
23
+ import PropTypes from "prop-types";
24
+ import classnames from "classnames";
25
+ import TimeSpan from "./TimeSpan";
26
+ import TimeRangeSliderCmp from "./TimeRangeSliderCmp";
27
+ import Refresh from "./Refresh";
28
+ import CalendarSvg from "./assets/Calendar";
29
+ import useConfigContext from "../useConfigContext";
30
+ import { echoInputValue, getUnit, judgeType, getChangeUnitDate, isInvalidDate, funcValueChangeArrayValue, getCorrectValue, getFinalDateOption, getTruthDateCount, isLessThanMinTimeSpan, isExceedMaxTimeSpan, isWithinTimeSpan, getYears, computedRecentlyValue } from "./utils";
31
+ import { formatMessage } from "../utils";
32
+ import useStyle from "./styles/index.style";
33
+ import { useIntl } from "../locales";
34
+ var TimeRangeSlider = /*#__PURE__*/forwardRef(function (props, ref) {
35
+ var defaultValue = props.defaultValue,
36
+ value = props.value,
37
+ classNameWrapper = props.classNameWrapper,
38
+ _props$onChange = props.onChange,
39
+ _onChange = _props$onChange === void 0 ? function () {} : _props$onChange,
40
+ _props$onInitChange = props.onInitChange,
41
+ _onInitChange = _props$onInitChange === void 0 ? function () {} : _props$onInitChange,
42
+ _props$refreshOption = props.refreshOption,
43
+ refreshOption = _props$refreshOption === void 0 ? {} : _props$refreshOption,
44
+ _props$timeSpanOption = props.timeSpanOption,
45
+ timeSpanOption = _props$timeSpanOption === void 0 ? {} : _props$timeSpanOption,
46
+ inputPrefixIcon = props.inputPrefixIcon,
47
+ _props$format = props.format,
48
+ format = _props$format === void 0 ? "YYYY/MM/DD HH:mm:ss" : _props$format,
49
+ forceRenderTitle = props.forceRenderTitle,
50
+ _props$timeSliderOpti = props.timeSliderOption,
51
+ timeSliderOption = _props$timeSliderOpti === void 0 ? {} : _props$timeSliderOpti;
52
+ var _refreshOption$onAuto = refreshOption.onAutoRefresh,
53
+ onAutoRefresh = _refreshOption$onAuto === void 0 ? function () {} : _refreshOption$onAuto,
54
+ _refreshOption$onAuto2 = refreshOption.onAutoRefreshChange,
55
+ onAutoRefreshChange = _refreshOption$onAuto2 === void 0 ? function () {} : _refreshOption$onAuto2,
56
+ _refreshOption$delay = refreshOption.delay,
57
+ delay = _refreshOption$delay === void 0 ? 5000 : _refreshOption$delay,
58
+ openAutoRefresh = refreshOption.openAutoRefresh,
59
+ _refreshOption$showAu = refreshOption.showAutoRefresh,
60
+ showAutoRefresh = _refreshOption$showAu === void 0 ? true : _refreshOption$showAu,
61
+ _refreshOption$isRece = refreshOption.isRecentlyOpenRefresh,
62
+ isRecentlyOpenRefresh = _refreshOption$isRece === void 0 ? true : _refreshOption$isRece;
63
+ var _timeSpanOption$timeS = timeSpanOption.timeSpanBoundaryStart,
64
+ timeSpanBoundaryStart = _timeSpanOption$timeS === void 0 ? 10 * 60 : _timeSpanOption$timeS,
65
+ _timeSpanOption$timeS2 = timeSpanOption.timeSpanBoundary,
66
+ timeSpanBoundary = _timeSpanOption$timeS2 === void 0 ? 24 * 60 * 60 : _timeSpanOption$timeS2,
67
+ _timeSpanOption$days = timeSpanOption.days,
68
+ days = _timeSpanOption$days === void 0 ? 30 : _timeSpanOption$days;
69
+ var intl = useIntl();
70
+ var _ref = (intl === null || intl === void 0 ? void 0 : intl.options) || {},
71
+ _ref$currentLocale = _ref.currentLocale,
72
+ locale = _ref$currentLocale === void 0 ? "zh_CN" : _ref$currentLocale;
73
+ var _useConfigContext = useConfigContext(),
74
+ getPrefixCls = _useConfigContext.getPrefixCls;
75
+ var prefixCls = getPrefixCls();
76
+ var _useStyle = useStyle("".concat(prefixCls, "-time-range-slider")),
77
+ _useStyle2 = _slicedToArray(_useStyle, 3),
78
+ wrapCSSVar = _useStyle2[0],
79
+ hashId = _useStyle2[1],
80
+ cssVarCls = _useStyle2[2];
81
+ // 输入框是否获取焦点
82
+ var _useState = useState(false),
83
+ _useState2 = _slicedToArray(_useState, 2),
84
+ isFocus = _useState2[0],
85
+ setIsFocus = _useState2[1];
86
+ // 输入框回填内容
87
+ var _useState3 = useState(""),
88
+ _useState4 = _slicedToArray(_useState3, 2),
89
+ inputValue = _useState4[0],
90
+ setInputValue = _useState4[1];
91
+ // 当前默认时间项
92
+ var _useState5 = useState({}),
93
+ _useState6 = _slicedToArray(_useState5, 2),
94
+ dateValue = _useState6[0],
95
+ setDateValue = _useState6[1];
96
+ // 记录切换之后的时间项
97
+ var _useState7 = useState({}),
98
+ _useState8 = _slicedToArray(_useState7, 2),
99
+ recordDateValue = _useState8[0],
100
+ setRecordDateValue = _useState8[1];
101
+ // 自动刷新状态是否开启
102
+ var _useState9 = useState(false),
103
+ _useState10 = _slicedToArray(_useState9, 2),
104
+ isAutoRefresh = _useState10[0],
105
+ setIsAutoRefresh = _useState10[1];
106
+ // 特殊时间选择器外壳容器
107
+ var calendarRef = useRef(null);
108
+ // 定时器计数
109
+ var timeRef = useRef(null);
110
+ var isInputRef = useRef(false); // 标记,输入框非默认值,输入内容
111
+ var isClickAutoRefresh = useRef(false); // 标记 点击自动刷新按钮
112
+ // 输入框处理聚焦失焦
113
+ var inputRef = useRef(null);
114
+ // 含有刷新组件暴露的方法
115
+ var refreshRef = useRef(null);
116
+ var isHandleClickRef = useRef(true);
117
+ // 组件内部方法抛出
118
+ useImperativeHandle(ref, function () {
119
+ var _refreshRef$current;
120
+ return {
121
+ onStop: onStop,
122
+ onRefresh: (_refreshRef$current = refreshRef.current) === null || _refreshRef$current === void 0 ? void 0 : _refreshRef$current.onRefresh,
123
+ onClickAutoRefresh: onClickAutoRefresh
124
+ };
125
+ });
126
+ // 初始时记录当前时间项
127
+ useEffect(function () {
128
+ var dateValue = {};
129
+ if (value) {
130
+ dateValue = value;
131
+ } else if (defaultValue) {
132
+ dateValue = defaultValue;
133
+ }
134
+ var _dateValue = dateValue,
135
+ values = _dateValue.value;
136
+ var _judgeType = judgeType(dateValue),
137
+ _judgeType2 = _slicedToArray(_judgeType, 2),
138
+ isRule = _judgeType2[0],
139
+ captureUnit = _judgeType2[1];
140
+ if (!isRule && !values) {
141
+ setIsAutoRefresh(true);
142
+ }
143
+ var initValue = dateValue;
144
+ if (isRule) {
145
+ initValue = _objectSpread(_objectSpread({}, initValue), {}, {
146
+ isRecently: true,
147
+ value: getChangeUnitDate(captureUnit[0], captureUnit[1]),
148
+ number: captureUnit[0],
149
+ unit: captureUnit[1] === "mo" ? "M" : captureUnit[1]
150
+ });
151
+ } else if (values) {
152
+ initValue = _objectSpread(_objectSpread({}, initValue), {}, {
153
+ isRecently: false,
154
+ value: funcValueChangeArrayValue(values)
155
+ });
156
+ }
157
+ _onInitChange(initValue);
158
+ setDateValue(dateValue);
159
+ }, []);
160
+ useEffect(function () {
161
+ if (value) {
162
+ setRecordDateValue(value);
163
+ } else if (defaultValue) {
164
+ setRecordDateValue(defaultValue);
165
+ }
166
+ }, [defaultValue, value]);
167
+ var enableAutoRefresh = useMemo(function () {
168
+ return openAutoRefresh !== undefined ? openAutoRefresh : isAutoRefresh;
169
+ }, [openAutoRefresh, isAutoRefresh]);
170
+ // 输入框回显
171
+ useEffect(function () {
172
+ setInputValue(echoInputValue(recordDateValue, isFocus, locale, format, forceRenderTitle, enableAutoRefresh, timeSpanBoundary));
173
+ }, [recordDateValue, isFocus, locale, format, forceRenderTitle, enableAutoRefresh, timeSpanBoundary]);
174
+ useEffect(function () {
175
+ var _judgeType3 = judgeType(recordDateValue),
176
+ _judgeType4 = _slicedToArray(_judgeType3, 1),
177
+ isRule = _judgeType4[0];
178
+ var isHasDate = !isRule && !recordDateValue.value ? false : true;
179
+ var _isAutoRefresh = enableAutoRefresh;
180
+ if (isHasDate) {
181
+ if (!isRecentlyOpenRefresh) {
182
+ if (!isRule) {
183
+ if (enableAutoRefresh) {
184
+ onAutoRefreshChange(false);
185
+ _isAutoRefresh = false;
186
+ }
187
+ } else {
188
+ if (isRule && isClickAutoRefresh.current) {
189
+ if (!enableAutoRefresh) {
190
+ onAutoRefreshChange(true);
191
+ _isAutoRefresh = true;
192
+ }
193
+ }
194
+ }
195
+ isClickAutoRefresh.current = false;
196
+ } else {
197
+ if (isRule) {
198
+ if (!enableAutoRefresh) {
199
+ onAutoRefreshChange(true);
200
+ _isAutoRefresh = true;
201
+ }
202
+ } else {
203
+ if (enableAutoRefresh) {
204
+ onAutoRefreshChange(false);
205
+ _isAutoRefresh = false;
206
+ }
207
+ }
208
+ }
209
+ setIsAutoRefresh(_isAutoRefresh);
210
+ } else {
211
+ isClickAutoRefresh.current = false;
212
+ }
213
+ }, [recordDateValue, isRecentlyOpenRefresh]);
214
+ useEffect(function () {
215
+ var values = recordDateValue.value;
216
+ var _judgeType5 = judgeType(recordDateValue),
217
+ _judgeType6 = _slicedToArray(_judgeType5, 3),
218
+ isRule = _judgeType6[0],
219
+ captureUnit = _judgeType6[1],
220
+ recordUnit = _judgeType6[2];
221
+ if (enableAutoRefresh && isRule && showAutoRefresh) {
222
+ timeRef.current = setInterval(function () {
223
+ var _values = [];
224
+ if (values) {
225
+ _values = computedRecentlyValue(values);
226
+ } else {
227
+ _values = getChangeUnitDate(captureUnit[0], captureUnit[1]);
228
+ }
229
+ var newValue = _objectSpread(_objectSpread({}, recordDateValue), {}, {
230
+ timeDomain: recordUnit,
231
+ number: captureUnit[0],
232
+ unit: captureUnit[1] === "mo" ? "M" : captureUnit[1],
233
+ value: _values,
234
+ isRecently: true
235
+ });
236
+ onAutoRefresh(newValue);
237
+ }, delay);
238
+ }
239
+ if (enableAutoRefresh && !isRule && !values && showAutoRefresh) {
240
+ timeRef.current = setInterval(function () {
241
+ onAutoRefresh(recordDateValue);
242
+ }, delay);
243
+ }
244
+ return function () {
245
+ clearInterval(timeRef.current);
246
+ };
247
+ }, [enableAutoRefresh, recordDateValue, delay, showAutoRefresh]);
248
+ var _recordDateValue = useMemo(function () {
249
+ var values = recordDateValue.value;
250
+ var _judgeType7 = judgeType(recordDateValue),
251
+ _judgeType8 = _slicedToArray(_judgeType7, 2),
252
+ isRule = _judgeType8[0],
253
+ captureUnit = _judgeType8[1];
254
+ var initValue = recordDateValue;
255
+ if (isRule) {
256
+ initValue = _objectSpread(_objectSpread({}, initValue), {}, {
257
+ isRecently: true,
258
+ value: getChangeUnitDate(captureUnit[0], captureUnit[1]),
259
+ number: captureUnit[0],
260
+ unit: captureUnit[1] === "mo" ? "M" : captureUnit[1]
261
+ });
262
+ } else if (values) {
263
+ initValue = _objectSpread(_objectSpread({}, initValue), {}, {
264
+ isRecently: false,
265
+ value: funcValueChangeArrayValue(values)
266
+ });
267
+ }
268
+ return initValue;
269
+ }, [recordDateValue]);
270
+ // 日期是否存在
271
+ var _useMemo = useMemo(function () {
272
+ // 不符合最近时间格式和没有日期数据返回false
273
+ var values = recordDateValue.value;
274
+ var _judgeType9 = judgeType(recordDateValue),
275
+ _judgeType10 = _slicedToArray(_judgeType9, 2),
276
+ isRule = _judgeType10[0],
277
+ captureUnit = _judgeType10[1];
278
+ values = funcValueChangeArrayValue(values);
279
+ var isHasDate = true;
280
+ var isRightDisabled = false;
281
+ var isDisabledEnlargeBtn = false;
282
+ var years = getYears(timeSpanBoundary);
283
+ if (isRule) {
284
+ isRightDisabled = true;
285
+ if (!values) {
286
+ values = getChangeUnitDate(captureUnit[0], captureUnit[1]);
287
+ }
288
+ if (captureUnit[1] === "y" && Number(captureUnit[0]) >= years) {
289
+ isDisabledEnlargeBtn = true;
290
+ }
291
+ }
292
+ if (!isRule && !values) {
293
+ isHasDate = false;
294
+ }
295
+ return [isHasDate, values, isRightDisabled, isDisabledEnlargeBtn];
296
+ }, [recordDateValue, timeSpanBoundary]),
297
+ _useMemo2 = _slicedToArray(_useMemo, 4),
298
+ isHasDate = _useMemo2[0],
299
+ _defaultValue = _useMemo2[1],
300
+ isRightDisabled = _useMemo2[2],
301
+ isDisabledEnlargeBtn = _useMemo2[3];
302
+ // 点击空白处日历切换
303
+ useEffect(function () {
304
+ document.addEventListener("click", clickBody);
305
+ return function () {
306
+ document.removeEventListener("click", clickBody);
307
+ };
308
+ }, [_defaultValue]);
309
+ // 日历模式下点击body
310
+ var clickBody = function clickBody(e) {
311
+ // 点击bodyfasle
312
+ var targetInput = calendarRef.current.querySelector(".".concat(prefixCls, "-time-range-slider-box-wrapper"));
313
+ var customPopoverDom = calendarRef.current.querySelector(".custom-popover-wrapper");
314
+ if (targetInput && customPopoverDom) {
315
+ if (!targetInput.contains(e.target) && !customPopoverDom.contains(e.target) && isHandleClickRef.current) {
316
+ // 点击弹窗和输入框以外的区域触发(非点击不触发move事件)
317
+ setIsFocus(false);
318
+ }
319
+ }
320
+ };
321
+ // 恢复默认配置
322
+ var onRecover = function onRecover() {
323
+ var values = dateValue.value,
324
+ key = dateValue.key;
325
+ var returnValue = _objectSpread(_objectSpread({}, dateValue), {}, {
326
+ value: funcValueChangeArrayValue(values)
327
+ });
328
+ returnValue = getCorrectValue(returnValue, key);
329
+ _onChange(returnValue);
330
+ if (!value) {
331
+ setRecordDateValue(returnValue);
332
+ }
333
+ };
334
+ // 输入框前缀图标,
335
+ var inputPrefix = /*#__PURE__*/React.createElement("div", {
336
+ className: "".concat(prefixCls, "-time-range-slider-prefix-wrapper"),
337
+ onClick: function onClick() {
338
+ setIsFocus(false);
339
+ }
340
+ }, inputPrefixIcon ? inputPrefixIcon : /*#__PURE__*/React.createElement(CalendarSvg, {
341
+ className: "".concat(prefixCls, "-time-range-slider-prefix-icon")
342
+ }));
343
+ var timeDomain = recordDateValue.timeDomain,
344
+ number = recordDateValue.number,
345
+ unit = recordDateValue.unit,
346
+ isRecently = recordDateValue.isRecently,
347
+ values = recordDateValue.value,
348
+ rest = _objectWithoutProperties(recordDateValue, _excluded);
349
+ var _values = dateValue.value,
350
+ _timeDomain = dateValue.timeDomain,
351
+ _number = dateValue.number,
352
+ _unit = dateValue.unit,
353
+ _isRecently = dateValue.isRecently,
354
+ dateValueRest = _objectWithoutProperties(dateValue, _excluded2);
355
+ // 输入框获取焦点
356
+ var onInputFocus = function onInputFocus(e) {
357
+ e.persist();
358
+ setIsFocus(true);
359
+ setTimeout(function () {
360
+ // 全选文本
361
+ e.target.select();
362
+ }, 100);
363
+ };
364
+ // 外部获取ref停止自动刷新
365
+ var onStop = function onStop() {
366
+ if (enableAutoRefresh) {
367
+ var _refreshRef$current2, _refreshRef$current3;
368
+ ((_refreshRef$current2 = refreshRef.current) === null || _refreshRef$current2 === void 0 ? void 0 : _refreshRef$current2.onAutoRefresh) && ((_refreshRef$current3 = refreshRef.current) === null || _refreshRef$current3 === void 0 ? void 0 : _refreshRef$current3.onAutoRefresh());
369
+ }
370
+ };
371
+ var onClickAutoRefresh = function onClickAutoRefresh() {
372
+ var _refreshRef$current4, _refreshRef$current5;
373
+ ((_refreshRef$current4 = refreshRef.current) === null || _refreshRef$current4 === void 0 ? void 0 : _refreshRef$current4.onAutoRefresh) && ((_refreshRef$current5 = refreshRef.current) === null || _refreshRef$current5 === void 0 ? void 0 : _refreshRef$current5.onAutoRefresh());
374
+ };
375
+ // 输入框按下回车
376
+ var onPressEnter = function onPressEnter(e) {
377
+ if (!isInputRef.current) return;
378
+ var _getUnit = getUnit(inputValue),
379
+ isRule = _getUnit.isRule,
380
+ captureUnit = _getUnit.captureUnit;
381
+ var values = getChangeUnitDate(captureUnit[0], captureUnit[1]);
382
+ if (isRule) {
383
+ var returnValue = getCorrectValue({
384
+ value: values
385
+ }, inputValue);
386
+ var isInvalidDate_ = isInvalidDate(returnValue.value);
387
+ if (!isInvalidDate_) {
388
+ var passValue = returnValue.value;
389
+ if (isLessThanMinTimeSpan(passValue, timeSpanBoundaryStart)) {
390
+ _message.error("小于限制的最小时间跨度,请重新输入");
391
+ return;
392
+ }
393
+ if (isExceedMaxTimeSpan(passValue, timeSpanBoundary)) {
394
+ _message.error(intl.get("e8a046c4-4611-47b9-bef0-cb46de7dd733").d("超过了限制的最大时间跨度,请重新输入"));
395
+ return;
396
+ }
397
+ if (!isWithinTimeSpan(passValue, days)) {
398
+ _message.error("不在要求的时间跨度之内,请重新输入");
399
+ return;
400
+ }
401
+ _onChange(returnValue);
402
+ setIsFocus(false);
403
+ if (!value) {
404
+ setRecordDateValue(returnValue);
405
+ }
406
+ } else {
407
+ _message.error(intl.get("e2008629-6fc2-4222-b28c-ada43aa79a74").d("不符合输入格式,请重新输入"));
408
+ }
409
+ } else {
410
+ var finalDateOption = getFinalDateOption(inputValue);
411
+ var _dateValue2 = finalDateOption.dateValue;
412
+ var dateCount = getTruthDateCount(_dateValue2);
413
+ if (dateCount === 2) {
414
+ var _returnValue = getCorrectValue({
415
+ value: _dateValue2
416
+ });
417
+ var _passValue = _returnValue.value;
418
+ if (isLessThanMinTimeSpan(_passValue, timeSpanBoundaryStart)) {
419
+ _message.error("小于限制的最小时间跨度,请重新输入");
420
+ return;
421
+ }
422
+ if (isExceedMaxTimeSpan(_passValue, timeSpanBoundary)) {
423
+ _message.error(intl.get("e8a046c4-4611-47b9-bef0-cb46de7dd733").d("超过了限制的最大时间跨度,请重新输入"));
424
+ return;
425
+ }
426
+ if (!isWithinTimeSpan(_passValue, days)) {
427
+ _message.error("不在要求的时间跨度之内,请重新输入");
428
+ return;
429
+ }
430
+ _onChange(_returnValue);
431
+ setIsFocus(false);
432
+ if (!value) {
433
+ setRecordDateValue(_returnValue);
434
+ }
435
+ } else {
436
+ _message.error(formatMessage(intl.get("e2008629-6fc2-4222-b28c-ada43aa79a74").d("不符合输入格式,请重新输入")));
437
+ }
438
+ }
439
+ isInputRef.current = false;
440
+ };
441
+ var onCancel = function onCancel() {
442
+ setIsFocus(false);
443
+ };
444
+ var _title = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("span", null, timeSliderOption.title), /*#__PURE__*/React.createElement(CloseOutlined, {
445
+ onClick: onCancel,
446
+ className: "time-slider-popover-close-icon"
447
+ }));
448
+ var commonProps = {
449
+ onChange: _onChange,
450
+ recordDateValue: recordDateValue,
451
+ setRecordDateValue: setRecordDateValue,
452
+ value: value,
453
+ isAutoRefresh: isAutoRefresh,
454
+ setIsAutoRefresh: setIsAutoRefresh,
455
+ refreshOption: refreshOption,
456
+ enableAutoRefresh: enableAutoRefresh,
457
+ timeSpanOption: timeSpanOption
458
+ };
459
+ var timeSpanProps = _objectSpread(_objectSpread({}, commonProps), {}, {
460
+ isHasDate: isHasDate,
461
+ onRecover: onRecover,
462
+ isRightDisabled: isRightDisabled,
463
+ isDisabledEnlargeBtn: isDisabledEnlargeBtn
464
+ });
465
+ var refreshProps = _objectSpread(_objectSpread({}, commonProps), {}, {
466
+ isHasDate: isHasDate,
467
+ isClickAutoRefresh: isClickAutoRefresh
468
+ });
469
+ return wrapCSSVar( /*#__PURE__*/React.createElement("div", {
470
+ className: classnames(hashId, cssVarCls, "".concat(prefixCls, "-time-range-slider-wrapper"), classNameWrapper),
471
+ ref: calendarRef
472
+ }, /*#__PURE__*/React.createElement("div", {
473
+ className: "".concat(prefixCls, "-time-range-slider-box-wrapper")
474
+ }, /*#__PURE__*/React.createElement(_Input, {
475
+ prefix: inputPrefix,
476
+ className: "".concat(prefixCls, "-time-range-slider-input-wrapper"),
477
+ onFocus: onInputFocus,
478
+ value: inputValue,
479
+ ref: inputRef,
480
+ onPressEnter: onPressEnter,
481
+ onChange: function onChange(e) {
482
+ if (!isHasDate) return;
483
+ isInputRef.current = true;
484
+ setInputValue(e.target.value);
485
+ }
486
+ })), /*#__PURE__*/React.createElement(TimeSpan, timeSpanProps), /*#__PURE__*/React.createElement(Refresh, _extends({}, refreshProps, {
487
+ ref: refreshRef
488
+ })), /*#__PURE__*/React.createElement(_Popover, {
489
+ title: _title,
490
+ open: isFocus,
491
+ fresh: true,
492
+ arrow: false,
493
+ content: /*#__PURE__*/React.createElement(TimeRangeSliderCmp, {
494
+ value: _recordDateValue.value,
495
+ onChange: _onChange,
496
+ visible: isFocus,
497
+ timeBoundary: {
498
+ min: timeSpanBoundaryStart * 1000,
499
+ max: timeSpanBoundary * 1000,
500
+ days: days
501
+ },
502
+ inputRef: inputRef,
503
+ isHandleClickRef: isHandleClickRef,
504
+ timeSliderOption: timeSliderOption
505
+ }),
506
+ overlayClassName: "custom-popover-wrapper",
507
+ getPopupContainer: function getPopupContainer(triggerNode) {
508
+ return triggerNode;
509
+ }
510
+ }, /*#__PURE__*/React.createElement("div", {
511
+ style: {
512
+ position: "relative",
513
+ height: "100%"
514
+ }
515
+ }))));
516
+ });
517
+ TimeRangeSlider.defaultProps = {
518
+ format: "YYYY/MM/DD HH:mm:ss"
519
+ };
520
+ TimeRangeSlider.propTypes = {
521
+ /**
522
+ * 默认value
523
+ */
524
+ defaultValue: PropTypes.object,
525
+ /**
526
+ * 受控value
527
+ */
528
+ value: PropTypes.object,
529
+ /**
530
+ * 时间变化的回调onChange({value,isRecently?timeDomain?number?unit?})
531
+ */
532
+ onChange: PropTypes.func,
533
+ /**
534
+ * 初始时间数据进入时间返回的回调(*主要针对于最近时间)
535
+ */
536
+ onInitChange: PropTypes.func,
537
+ /**
538
+ * 刷新按钮配置项,详情参考demo中案例注释
539
+ */
540
+ refreshOption: PropTypes.object,
541
+ /**
542
+ * 时间跨度按钮配置项,详情参考demo中案例注释
543
+ */
544
+ timeSpanOption: PropTypes.object,
545
+ /**
546
+ * 时间选择器控件外层容器新增外层容器类名
547
+ */
548
+ classNameWrapper: PropTypes.string,
549
+ /**
550
+ * 非最近日期format展示格式
551
+ */
552
+ format: PropTypes.string,
553
+ /**
554
+ * 输入框中前缀显示的icon,若不添加按照默认的规则,key值不符合规则且没有value值时为亮色图标,否则为暗色
555
+ */
556
+ inputPrefixIcon: PropTypes.node,
557
+ /**
558
+ * 输入框回显内容优先按照title回显
559
+ */
560
+ forceRenderTitle: PropTypes.bool
561
+ };
562
+ export default TimeRangeSlider;
@@ -0,0 +1,31 @@
1
+ export default {
2
+ recover: "Restore default",
3
+ forwardSmooth: "Forward smooth",
4
+ backSmooth: "Back smooth",
5
+ ExpandSpan: "Increase the time span by {span} times",
6
+ refresh: "Refresh",
7
+ autoRefresh: "Auto refresh",
8
+ s: "Second",
9
+ m: "Minute",
10
+ h: "Hour",
11
+ d: "Day",
12
+ mo: "Month",
13
+ y: "Year",
14
+ more: "More",
15
+ "select-calendar": "Select From Calendar",
16
+ recently: "recently",
17
+ relative: "relative",
18
+ absolute: "absolute",
19
+ unixTimestamp: "Unix",
20
+ other: "other",
21
+ history: 'History',
22
+ clear: 'Clear',
23
+ "enter manually": "You can manually enter a query statement in the following format",
24
+ "fit-the-input-format": "Fit the input format",
25
+ "does-not-match-the-input-format": "Does not match the input format",
26
+ "the-selected-time-does-not-meet-the-rule-limit": "If the selected time is the same or exceeds the current time, select another time",
27
+ "the-maximum-time-span-is-exceeded": "The maximum time span is exceeded, please re-enter",
28
+ "the-maximum-time-span-is-less-than": "The maximum time span is less than the minimum time span, please re-enter",
29
+ "not-within-the-required-time-span": "Not within the required time span, please re-enter",
30
+ "unconverted-title": "Unconverted title"
31
+ };
@@ -0,0 +1,11 @@
1
+ import zh_CN from './zh_CN.js';
2
+ import en_US from './en_US.js';
3
+ import zh_TW from './zh_TW.js';
4
+ export default {
5
+ zh_CN: zh_CN,
6
+ en_US: en_US,
7
+ zh_TW: zh_TW,
8
+ // 兼容
9
+ zh: zh_CN,
10
+ en: en_US
11
+ };
@@ -0,0 +1,31 @@
1
+ export default {
2
+ recover: "恢复默认值",
3
+ forwardSmooth: "向前平滑",
4
+ backSmooth: "向后平滑",
5
+ ExpandSpan: "按{span}倍增加时间跨度",
6
+ refresh: "刷新",
7
+ autoRefresh: "自动刷新",
8
+ s: "秒",
9
+ m: "分钟",
10
+ h: "小时",
11
+ d: "天",
12
+ mo: "个月",
13
+ y: "年",
14
+ more: "更多",
15
+ "select-calendar": "日历选择",
16
+ recently: "最近",
17
+ relative: "相对",
18
+ absolute: "绝对",
19
+ unixTimestamp: "Unix",
20
+ other: "其他",
21
+ history: '历史记录',
22
+ clear: '清空',
23
+ "enter manually": "可根据以下类型,按查询语句格式手动输入",
24
+ "fit-the-input-format": "符合输入格式",
25
+ "does-not-match-the-input-format": "不符合输入格式,请重新输入",
26
+ "the-selected-time-does-not-meet-the-rule-limit": "选择的时间二者相同或者某一时间超过当前时间,请重新选择",
27
+ "the-maximum-time-span-is-exceeded": "超过了限制的最大时间跨度,请重新输入",
28
+ "the-maximum-time-span-is-less-than": "小于限制的最小时间跨度,请重新输入",
29
+ "not-within-the-required-time-span": "不在要求的时间跨度之内,请重新输入",
30
+ "unconverted-title": "未转化标题"
31
+ };
@@ -0,0 +1,31 @@
1
+ export default {
2
+ recover: "恢復默認值",
3
+ forwardSmooth: "向前平滑",
4
+ backSmooth: "向後平滑",
5
+ ExpandSpan: "按{span}倍增加時間跨度",
6
+ refresh: "刷新",
7
+ autoRefresh: "自動刷新",
8
+ s: "秒",
9
+ m: "分鐘",
10
+ h: "小時",
11
+ d: "天",
12
+ mo: "個月",
13
+ y: "年",
14
+ more: "更多",
15
+ "select-calendar": "日曆選擇",
16
+ recently: "最近",
17
+ relative: "相對",
18
+ absolute: "絕對",
19
+ unixTimestamp: "Unix",
20
+ other: "其他",
21
+ history: "歷史記錄",
22
+ clear: "清空",
23
+ "enter manually": "可根據以下類型,按查詢語句格式手動輸入",
24
+ "fit-the-input-format": "符合輸入格式",
25
+ "does-not-match-the-input-format": "不符合輸入格式,請重新輸入",
26
+ "the-selected-time-does-not-meet-the-rule-limit": "選擇的時間二者相同或者某一時間超過當前時間,請重新選擇",
27
+ "the-maximum-time-span-is-exceeded": "超過了限制的最大時間跨度,請重新輸入",
28
+ "the-maximum-time-span-is-less-than": "小於限制的最小時間跨度,請重新輸入",
29
+ "not-within-the-required-time-span": "不在要求的時間跨度之內,請重新輸入",
30
+ "unconverted-title": "未轉化標題"
31
+ };