@ucloud-fe/react-components 1.5.1 → 1.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.
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { TabsProps } from '../Tabs';
3
3
  export declare const prefixCls: string;
4
- export declare const SWrap: import("react").ForwardRefExoticComponent<Required<Pick<TabsProps, "styleType" | "size" | "tabBarPosition">> & import("react").HTMLAttributes<HTMLElement> & {
4
+ export declare const SWrap: import("react").ForwardRefExoticComponent<Required<Pick<TabsProps, "size" | "styleType" | "tabBarPosition">> & import("react").HTMLAttributes<HTMLElement> & {
5
5
  theme?: import("../../../style").Theme | undefined;
6
6
  } & import("react").RefAttributes<HTMLElement>>;
@@ -52,11 +52,17 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
52
52
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
53
53
 
54
54
  var FooterWithoutMemo = function FooterWithoutMemo(_ref) {
55
+ var _this2 = this;
56
+
55
57
  (0, _newArrowCheck2.default)(this, _this);
56
58
  var onConfirm = _ref.onConfirm,
57
59
  disabled = _ref.disabled,
58
60
  _locale = _ref.locale;
59
61
  var locale = (0, _useLocale.default)(_zh_CN.default, 'DatePicker', _locale);
62
+ var handleConfirm = (0, _react.useCallback)(function () {
63
+ (0, _newArrowCheck2.default)(this, _this2);
64
+ onConfirm();
65
+ }.bind(this), [onConfirm]);
60
66
  return /*#__PURE__*/_react.default.createElement(_Box.default, {
61
67
  className: _style.footerCls,
62
68
  container: true,
@@ -65,7 +71,7 @@ var FooterWithoutMemo = function FooterWithoutMemo(_ref) {
65
71
  }, /*#__PURE__*/_react.default.createElement("span", null), /*#__PURE__*/_react.default.createElement(_Button.default, {
66
72
  styleType: "primary",
67
73
  size: "sm",
68
- onClick: onConfirm,
74
+ onClick: handleConfirm,
69
75
  disabled: disabled
70
76
  }, locale.confirm));
71
77
  }.bind(void 0);
@@ -97,7 +103,7 @@ var formatToTimeMode = function formatToTimeMode(format) {
97
103
  var DefaultFormat = 'HH:mm:ss';
98
104
 
99
105
  var TimePicker = function TimePicker(_ref2) {
100
- var _this2 = this;
106
+ var _this3 = this;
101
107
 
102
108
  (0, _newArrowCheck2.default)(this, _this);
103
109
 
@@ -138,19 +144,24 @@ var TimePicker = function TimePicker(_ref2) {
138
144
  setActive = _useState8[1];
139
145
 
140
146
  var defaultTime = (0, _react.useMemo)(function () {
141
- (0, _newArrowCheck2.default)(this, _this2);
147
+ (0, _newArrowCheck2.default)(this, _this3);
142
148
  return (0, _moment.default)().startOf('date');
143
149
  }.bind(this), []);
144
150
  var avoidBlur = (0, _react.useCallback)(function (e) {
145
- (0, _newArrowCheck2.default)(this, _this2);
151
+ (0, _newArrowCheck2.default)(this, _this3);
146
152
  return e.preventDefault();
147
153
  }.bind(this), []);
148
154
  var format = _format || DefaultFormat;
149
- var handleConfirm = (0, _react.useCallback)(function () {
150
- (0, _newArrowCheck2.default)(this, _this2);
155
+ var handleConfirm = (0, _react.useCallback)(function (value) {
156
+ (0, _newArrowCheck2.default)(this, _this3);
151
157
  setActive(false);
152
158
  var finalValue = timeValue;
153
159
 
160
+ if (value !== undefined) {
161
+ onChange(value === null ? null : (0, _moment.default)(+value));
162
+ return;
163
+ }
164
+
154
165
  if (useInputValue) {
155
166
  var inputTime = inputToTime(inputValue, format);
156
167
 
@@ -166,7 +177,7 @@ var TimePicker = function TimePicker(_ref2) {
166
177
  onChange(finalValue == null ? null : (0, _moment.default)(+finalValue));
167
178
  }.bind(this), [format, inputValue, nullable, onChange, timeValue, useInputValue]);
168
179
  var handleInputChange = (0, _react.useCallback)(function (e) {
169
- (0, _newArrowCheck2.default)(this, _this2);
180
+ (0, _newArrowCheck2.default)(this, _this3);
170
181
  var s = e.target.value;
171
182
  setInputValue(s);
172
183
  var inputTime = inputToTime(s, format);
@@ -174,25 +185,29 @@ var TimePicker = function TimePicker(_ref2) {
174
185
  setUseInputValue(true);
175
186
  }.bind(this), [format]);
176
187
  var handleTimeChange = (0, _react.useCallback)(function (v) {
177
- (0, _newArrowCheck2.default)(this, _this2);
188
+ (0, _newArrowCheck2.default)(this, _this3);
178
189
  setTimeValue(v);
179
190
  setInputValue(timeToInput(v, format));
180
191
  setUseInputValue(false);
181
192
  }.bind(this), [format]);
182
193
  var handleInputFocus = (0, _react.useCallback)(function () {
183
- (0, _newArrowCheck2.default)(this, _this2);
194
+ (0, _newArrowCheck2.default)(this, _this3);
184
195
  return setActive(true);
185
196
  }.bind(this), []);
186
197
  var handleInputBlur = (0, _react.useCallback)(function () {
187
- (0, _newArrowCheck2.default)(this, _this2);
198
+ (0, _newArrowCheck2.default)(this, _this3);
188
199
  return setActive(false);
189
200
  }.bind(this), []);
201
+ var handleInputClear = (0, _react.useCallback)(function () {
202
+ (0, _newArrowCheck2.default)(this, _this3);
203
+ nullable && handleConfirm(null);
204
+ }.bind(this), [handleConfirm, nullable]);
190
205
  var formatTimeValue = (0, _react.useMemo)(function () {
191
- (0, _newArrowCheck2.default)(this, _this2);
206
+ (0, _newArrowCheck2.default)(this, _this3);
192
207
  return new Date(+(timeValue == null ? defaultTime : timeValue));
193
208
  }.bind(this), [defaultTime, timeValue]);
194
209
  var isValid = (0, _react.useMemo)(function () {
195
- (0, _newArrowCheck2.default)(this, _this2);
210
+ (0, _newArrowCheck2.default)(this, _this3);
196
211
 
197
212
  if (useInputValue) {
198
213
  var inputTime = inputToTime(inputValue, format);
@@ -203,12 +218,12 @@ var TimePicker = function TimePicker(_ref2) {
203
218
  return true;
204
219
  }.bind(this), [format, inputValue, nullable, useInputValue]);
205
220
  var timeMode = (0, _react.useMemo)(function () {
206
- (0, _newArrowCheck2.default)(this, _this2);
221
+ (0, _newArrowCheck2.default)(this, _this3);
207
222
  return formatToTimeMode(format);
208
223
  }.bind(this), [format]);
209
224
  var popoverConfigProps = (0, _usePopoverConfig.default)();
210
225
  (0, _react.useEffect)(function () {
211
- (0, _newArrowCheck2.default)(this, _this2);
226
+ (0, _newArrowCheck2.default)(this, _this3);
212
227
 
213
228
  if (!active) {
214
229
  setTimeValue(value);
@@ -240,9 +255,13 @@ var TimePicker = function TimePicker(_ref2) {
240
255
  onBlur: handleInputBlur,
241
256
  onFocus: handleInputFocus,
242
257
  onClick: handleInputFocus,
258
+ onClear: handleInputClear,
243
259
  size: size,
244
260
  disabled: disabled,
245
- clearable: nullable,
261
+ clearable: nullable ? {
262
+ autoFocus: false,
263
+ callOnChange: false
264
+ } : false,
246
265
  prefix: /*#__PURE__*/_react.default.createElement(_SvgIcon.default, {
247
266
  type: "clock"
248
267
  })
package/lib/config.d.ts CHANGED
@@ -1,4 +1,6 @@
1
- declare namespace _default {
1
+ export default config;
2
+ export function setConfig(_config: any): void;
3
+ declare namespace config {
2
4
  const prefixCls: string;
5
+ const actionListAutoAdjustment: boolean;
3
6
  }
4
- export default _default;
package/lib/config.js CHANGED
@@ -1,10 +1,28 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
- exports.default = void 0;
7
- var _default = {
8
- prefixCls: 'uc-fe'
8
+ exports.setConfig = exports.default = void 0;
9
+
10
+ var _newArrowCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/newArrowCheck"));
11
+
12
+ var _this = void 0;
13
+
14
+ var config = {
15
+ prefixCls: 'uc-fe',
16
+ actionListAutoAdjustment: false
9
17
  };
10
- exports.default = _default;
18
+ var _default = config;
19
+ /** 只能在组件初始化时使用,否则会导致意外的问题 */
20
+
21
+ exports.default = _default;
22
+
23
+ var setConfig = function setConfig(_config) {
24
+ (0, _newArrowCheck2.default)(this, _this);
25
+ Object.assign(config, _config);
26
+ }.bind(void 0);
27
+
28
+ exports.setConfig = setConfig;
@@ -0,0 +1,2 @@
1
+ declare const useConfig: () => import("../components/ConfigProvider/ConfigContext").ConfigContextType;
2
+ export default useConfig;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = void 0;
11
+
12
+ var _newArrowCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/newArrowCheck"));
13
+
14
+ var _react = _interopRequireWildcard(require("react"));
15
+
16
+ var _ConfigContext = _interopRequireDefault(require("../components/ConfigProvider/ConfigContext"));
17
+
18
+ var _this = void 0;
19
+
20
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
+
22
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
+
24
+ var useConfig = function useConfig() {
25
+ (0, _newArrowCheck2.default)(this, _this);
26
+ return (0, _react.useContext)(_ConfigContext.default);
27
+ }.bind(void 0);
28
+
29
+ var _default = useConfig;
30
+ exports.default = _default;
@@ -0,0 +1,24 @@
1
+ /// <reference types="react" />
2
+ /**
3
+ * 计算容器内的元素最大展示数量
4
+ * @returns {[number, number, boolean]} [当前测试的展示数, 最终确定的展示数, 是否在测试过程中]
5
+ */
6
+ declare const useOverflow: ({ containerRef, defaultCount, maxCount, minCount }: {
7
+ /**
8
+ * 容器元素的 ref
9
+ */
10
+ containerRef?: import("react").MutableRefObject<HTMLElement | null> | undefined;
11
+ /**
12
+ * 默认的初始展示数量
13
+ */
14
+ defaultCount?: number | undefined;
15
+ /**
16
+ * 最大展示数量,一般传入元素数量即可
17
+ */
18
+ maxCount: number;
19
+ /**
20
+ * 最小展示数量
21
+ */
22
+ minCount?: number | undefined;
23
+ }, deps?: any[]) => [number, number, boolean];
24
+ export default useOverflow;
@@ -0,0 +1,159 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = void 0;
11
+
12
+ var _newArrowCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/newArrowCheck"));
13
+
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
+
16
+ var _react = _interopRequireWildcard(require("react"));
17
+
18
+ var _resizeObserverPolyfill = _interopRequireDefault(require("resize-observer-polyfill"));
19
+
20
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
+
22
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
+
24
+ // https://github.com/que-etc/resize-observer-polyfill/issues/80
25
+ // 由于 ts 官方增加了 contentRect 的类型定义,导致和 resize-observer-polyfill 内部的定义冲突,目前先以 "skipLibCheck" 解决
26
+ var DEFAULT_DEP = [];
27
+ /**
28
+ * 计算容器内的元素最大展示数量
29
+ * @returns {[number, number, boolean]} [当前测试的展示数, 最终确定的展示数, 是否在测试过程中]
30
+ */
31
+
32
+ var useOverflow = function useOverflow(_ref) {
33
+ var _this = this;
34
+
35
+ var containerRef = _ref.containerRef,
36
+ _ref$defaultCount = _ref.defaultCount,
37
+ defaultCount = _ref$defaultCount === void 0 ? 0 : _ref$defaultCount,
38
+ maxCount = _ref.maxCount,
39
+ _ref$minCount = _ref.minCount,
40
+ minCount = _ref$minCount === void 0 ? 0 : _ref$minCount;
41
+ var deps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_DEP;
42
+
43
+ // the count of trying to show
44
+ var _useState = (0, _react.useState)(function () {
45
+ (0, _newArrowCheck2.default)(this, _this);
46
+ return Math.min(defaultCount, maxCount);
47
+ }.bind(this)),
48
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
49
+ count = _useState2[0],
50
+ setCount = _useState2[1]; // the count valid to show
51
+
52
+
53
+ var _useState3 = (0, _react.useState)(count),
54
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
55
+ measureCount = _useState4[0],
56
+ setMeasureCount = _useState4[1]; // latest valid count
57
+
58
+
59
+ var _useState5 = (0, _react.useState)(null),
60
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
61
+ latestValidCount = _useState6[0],
62
+ setLatestValidCount = _useState6[1]; // the container element
63
+
64
+
65
+ var _useState7 = (0, _react.useState)(true),
66
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
67
+ measuring = _useState8[0],
68
+ setMeasuring = _useState8[1]; // save to ref for use in resize observer to avoid frequently create new observer
69
+
70
+
71
+ var measuringRef = (0, _react.useRef)(measuring);
72
+ (0, _react.useEffect)(function () {
73
+ (0, _newArrowCheck2.default)(this, _this);
74
+ measuringRef.current = measuring;
75
+ }.bind(this), [measuring]); // start to measure
76
+
77
+ var startMeasuring = (0, _react.useCallback)(function () {
78
+ (0, _newArrowCheck2.default)(this, _this);
79
+ if (measuringRef.current) return;
80
+ setMeasuring(true);
81
+ setLatestValidCount(null);
82
+ }.bind(this), []); // stop measuring
83
+
84
+ var endMeasuring = (0, _react.useCallback)(function (measureCount) {
85
+ (0, _newArrowCheck2.default)(this, _this);
86
+ setMeasuring(false);
87
+ setMeasureCount(measureCount);
88
+ }.bind(this), []);
89
+ (0, _react.useEffect)(function () {
90
+ (0, _newArrowCheck2.default)(this, _this);
91
+ // console.log('reset when deps changed');
92
+ startMeasuring(); // eslint-disable-next-line react-hooks/exhaustive-deps
93
+ }.bind(this), deps);
94
+ (0, _react.useEffect)(function () {
95
+ (0, _newArrowCheck2.default)(this, _this);
96
+ // reset when config changed
97
+ startMeasuring();
98
+ }.bind(this), [minCount, maxCount, startMeasuring]);
99
+ (0, _react.useEffect)(function () {
100
+ var _this2 = this;
101
+
102
+ (0, _newArrowCheck2.default)(this, _this);
103
+ var containerDOM = containerRef === null || containerRef === void 0 ? void 0 : containerRef.current;
104
+ var resizeObserver = null;
105
+
106
+ if (containerDOM) {
107
+ resizeObserver = new _resizeObserverPolyfill.default(function () {
108
+ (0, _newArrowCheck2.default)(this, _this2);
109
+
110
+ if (!measuringRef.current) {
111
+ startMeasuring(); // console.log('reset when width changed');
112
+ } // else {
113
+ // console.log('lock when width changed');
114
+ // }
115
+
116
+ }.bind(this));
117
+ resizeObserver.observe(containerDOM);
118
+ }
119
+
120
+ return function () {
121
+ (0, _newArrowCheck2.default)(this, _this2);
122
+
123
+ if (resizeObserver) {
124
+ resizeObserver.disconnect();
125
+ }
126
+ }.bind(this);
127
+ }.bind(this), [containerRef, startMeasuring]); // console.log({ count, latestValidCount, maxCount, minCount, measuring });
128
+ // use layout effect to measure can avoid most shaking
129
+
130
+ (0, _react.useLayoutEffect)(function () {
131
+ (0, _newArrowCheck2.default)(this, _this);
132
+ var containerDOM = containerRef === null || containerRef === void 0 ? void 0 : containerRef.current;
133
+ if (!containerDOM) return; // measure end
134
+
135
+ if (count === latestValidCount) {
136
+ endMeasuring(latestValidCount);
137
+ return;
138
+ }
139
+
140
+ var newCount = count;
141
+
142
+ if (containerDOM.offsetWidth >= containerDOM.scrollWidth) {
143
+ setLatestValidCount(count); // try to show more
144
+
145
+ newCount = Math.min(count + 1, maxCount);
146
+ } else if (containerDOM.offsetWidth < containerDOM.scrollWidth) {
147
+ // if container with not enough space event when count is 0, it will be set to 0
148
+ if (count === 0) setLatestValidCount(count); // try to show less
149
+
150
+ newCount = Math.max(0, minCount, count - 1);
151
+ }
152
+
153
+ setCount(newCount);
154
+ }.bind(this), [containerRef, count, endMeasuring, latestValidCount, maxCount, minCount]);
155
+ return [count, measureCount, measuring];
156
+ };
157
+
158
+ var _default = useOverflow;
159
+ exports.default = _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ucloud-fe/react-components",
3
- "version": "1.5.1",
3
+ "version": "1.5.4",
4
4
  "title": "UCloud react components",
5
5
  "description": "UCloud react components",
6
6
  "keywords": [