@kdcloudjs/kdesign 1.7.48-usePopper.1 → 1.7.49

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.
@@ -179,6 +179,7 @@ var InternalAnchor = function InternalAnchor(props, ref) {
179
179
  var normalRef = React.useRef(null);
180
180
  var anchorRef = ref || normalRef;
181
181
  var linksWidthRef = React.useRef([]);
182
+ var animating = React.useRef(false);
182
183
  var wrapperClass = classNames(className, _defineProperty({}, "".concat(anchorPrefixCls, "-wrapper"), true));
183
184
  // classes
184
185
  var anchorMenuClass = classNames(_defineProperty({}, "".concat(anchorPrefixCls, "-menu"), true));
@@ -298,8 +299,12 @@ var InternalAnchor = function InternalAnchor(props, ref) {
298
299
  var eleOffsetTop = getOffsetTop(targetElement, container);
299
300
  var y = scrollTop + eleOffsetTop;
300
301
  y -= targetOffset !== undefined ? targetOffset : offsetTop || 0;
302
+ animating.current = true;
301
303
  scrollTo(y, {
302
- getContainer: getScrollContainer
304
+ getContainer: getScrollContainer,
305
+ callback: function callback() {
306
+ animating.current = false;
307
+ }
303
308
  });
304
309
  };
305
310
  var setCurrentActiveLink = useCallback(function (link) {
@@ -320,6 +325,9 @@ var InternalAnchor = function InternalAnchor(props, ref) {
320
325
  setFixedTop(false);
321
326
  }
322
327
  }
328
+ if (animating.current) {
329
+ return;
330
+ }
323
331
  var currentActiveLink = getAnchor(targetOffset !== undefined ? targetOffset : offsetTop || 0, bounds);
324
332
  currentActiveLink && setCurrentActiveLink(currentActiveLink);
325
333
  }, [affix, setFixedTop, offsetTop, bounds, getAnchor, setCurrentActiveLink, type, getScrollContainer, anchorRef, targetOffset]);
@@ -62,6 +62,10 @@ var InternalInputNumber = function InternalInputNumber(props, ref) {
62
62
  _useState4 = _slicedToArray(_useState3, 2),
63
63
  forceUpdate = _useState4[0],
64
64
  setForceUpdate = _useState4[1];
65
+ var _useState5 = useState(''),
66
+ _useState6 = _slicedToArray(_useState5, 2),
67
+ compositionValue = _useState6[0],
68
+ setCompositionValue = _useState6[1];
65
69
  var inputStatus = useRef({
66
70
  isHandleChange: false,
67
71
  inputFocused: false
@@ -71,6 +75,7 @@ var InternalInputNumber = function InternalInputNumber(props, ref) {
71
75
  var inputNumberRef = ref || thisInputNumberRef;
72
76
  var stepMouseDownDelayTimer = useRef(null);
73
77
  var stepMouseDownIntervalTimer = useRef(null);
78
+ var refIszComposition = useRef(false);
74
79
  var isScopeValid = function isScopeValid(value) {
75
80
  if (value === '') return true;
76
81
  var numberValue = parseFloat(value) || 0;
@@ -112,14 +117,20 @@ var InternalInputNumber = function InternalInputNumber(props, ref) {
112
117
  };
113
118
  var handleChange = function handleChange(event) {
114
119
  inputStatus.current.isHandleChange = true;
115
- var legalNumber = verifiValue(event.target.value);
116
- updateSelectionRangePosition(event);
117
- if (legalNumber === false) {
118
- setForceUpdate(forceUpdate + 1);
119
- return false;
120
+ var newValue = event.target.value;
121
+ if (!refIszComposition.current) {
122
+ compositionValue && setCompositionValue('');
123
+ var legalNumber = verifiValue(newValue);
124
+ if (legalNumber === false) {
125
+ setForceUpdate(forceUpdate + 1);
126
+ return false;
127
+ }
128
+ value === undefined && setInputValue(legalNumber);
129
+ onChange && onChange(handleEventAttachValue(event, numberMode ? Number(legalNumber) : legalNumber));
130
+ updateSelectionRangePosition(event);
131
+ } else {
132
+ setCompositionValue(newValue);
120
133
  }
121
- value === undefined && setInputValue(legalNumber);
122
- onChange && onChange(handleEventAttachValue(event, numberMode ? Number(legalNumber) : legalNumber));
123
134
  };
124
135
  var handleFocus = function handleFocus(event) {
125
136
  inputStatus.current.inputFocused = true;
@@ -318,9 +329,19 @@ var InternalInputNumber = function InternalInputNumber(props, ref) {
318
329
  inputValue: displayedInputValue,
319
330
  forceUpdate: forceUpdate
320
331
  });
332
+ var handleComposition = function handleComposition(e) {
333
+ refIszComposition.current = e.type !== 'compositionend';
334
+ if (!refIszComposition.current) {
335
+ setCompositionValue('');
336
+ handleChange(e);
337
+ }
338
+ };
321
339
  return /*#__PURE__*/React.createElement(Input, _extends({}, others, {
340
+ onCompositionStart: handleComposition,
341
+ onCompositionUpdate: handleComposition,
342
+ onCompositionEnd: handleComposition,
322
343
  ref: inputNumberRef,
323
- value: displayedInputValue,
344
+ value: compositionValue || displayedInputValue,
324
345
  prefix: prefix,
325
346
  suffix: suffix,
326
347
  onChange: handleChange,
@@ -124,7 +124,68 @@
124
124
  background-color: var(--kd-c-tooltip-color-background, var(--kd-g-color-background, #fff));
125
125
  -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.2);
126
126
  box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.2);
127
+ opacity: 1;
128
+ z-index: var(--kd-g-z-index-popper, 1050);
129
+ visibility: visible;
127
130
  }
128
- .kd-tooltip .arrow::before {
129
- border-color: var(--kd-c-tooltip-color-background, var(--kd-g-color-background, #fff));
131
+ .kd-tooltip.hidden {
132
+ opacity: 0;
133
+ visibility: hidden;
134
+ }
135
+ .kd-tooltip.arrow::before {
136
+ position: absolute;
137
+ z-index: -2;
138
+ background: var(--kd-c-tooltip-color-background, var(--kd-g-color-background, #fff));
139
+ border-style: solid;
140
+ border-width: var(--arrowSize);
141
+ -webkit-transform: rotate(45deg);
142
+ transform: rotate(45deg);
143
+ content: '';
144
+ }
145
+ .kd-tooltip.arrow::after {
146
+ position: absolute;
147
+ z-index: -1;
148
+ top: 0;
149
+ right: 0;
150
+ bottom: 0;
151
+ left: 0;
152
+ content: '';
153
+ background: var(--kd-c-tooltip-color-background, var(--kd-g-color-background, #fff));
154
+ border-radius: var(--kd-g-radius-border, 2px);
155
+ }
156
+ .kd-tooltip.arrow.bottomLeft::before,
157
+ .kd-tooltip.arrow.bottom::before,
158
+ .kd-tooltip.arrow.bottomRight::before {
159
+ left: var(--arrowLeft);
160
+ top: var(--arrowSpill);
161
+ -webkit-box-shadow: -2px -2px calc(6px - 1px) rgba(0, 0, 0, 0.1);
162
+ box-shadow: -2px -2px calc(6px - 1px) rgba(0, 0, 0, 0.1);
163
+ border-color: var(--kd-c-tooltip-color-background, var(--kd-g-color-background, #fff)) transparent transparent var(--kd-c-tooltip-color-background, var(--kd-g-color-background, #fff));
164
+ }
165
+ .kd-tooltip.arrow.topLeft::before,
166
+ .kd-tooltip.arrow.top::before,
167
+ .kd-tooltip.arrow.topRight::before {
168
+ left: var(--arrowLeft);
169
+ bottom: var(--arrowSpill);
170
+ -webkit-box-shadow: 3px 3px calc(6px + 1px) rgba(0, 0, 0, 0.15);
171
+ box-shadow: 3px 3px calc(6px + 1px) rgba(0, 0, 0, 0.15);
172
+ border-color: transparent var(--kd-c-tooltip-color-background, var(--kd-g-color-background, #fff)) var(--kd-c-tooltip-color-background, var(--kd-g-color-background, #fff)) transparent;
173
+ }
174
+ .kd-tooltip.arrow.leftTop::before,
175
+ .kd-tooltip.arrow.left::before,
176
+ .kd-tooltip.arrow.leftBottom::before {
177
+ top: var(--arrowTop);
178
+ right: var(--arrowSpill);
179
+ -webkit-box-shadow: 3px 0 6px rgba(0, 0, 0, 0.12), 0 -2px 6px rgba(204, 149, 149, 0.12);
180
+ box-shadow: 3px 0 6px rgba(0, 0, 0, 0.12), 0 -2px 6px rgba(204, 149, 149, 0.12);
181
+ border-color: var(--kd-c-tooltip-color-background, var(--kd-g-color-background, #fff)) var(--kd-c-tooltip-color-background, var(--kd-g-color-background, #fff)) transparent transparent;
182
+ }
183
+ .kd-tooltip.arrow.rightTop::before,
184
+ .kd-tooltip.arrow.right::before,
185
+ .kd-tooltip.arrow.rightBottom::before {
186
+ top: var(--arrowTop);
187
+ left: var(--arrowSpill);
188
+ -webkit-box-shadow: 0 3px 6px rgba(0, 0, 0, 0.1), -2px 0 6px rgba(0, 0, 0, 0.1);
189
+ box-shadow: 0 3px 6px rgba(0, 0, 0, 0.1), -2px 0 6px rgba(0, 0, 0, 0.1);
190
+ border-color: transparent transparent var(--kd-c-tooltip-color-background, var(--kd-g-color-background, #fff)) var(--kd-c-tooltip-color-background, var(--kd-g-color-background, #fff));
130
191
  }
@@ -14,8 +14,15 @@
14
14
  line-height: 1.5;
15
15
  background-color: @tooltip-background-color;
16
16
  box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.2);
17
+ opacity: 1;
18
+ z-index: @z-index-popper;
19
+ visibility: visible;
17
20
 
18
- .arrow::before {
19
- border-color: @tooltip-background-color;
21
+ &.hidden {
22
+ opacity: 0;
23
+ visibility: hidden;
20
24
  }
25
+
26
+ // 箭头样式
27
+ .popperArrow(@tooltip-background-color, @tooltip-horizontal-gap, @tooltip-box-shadow-blur);
21
28
  }
@@ -1,5 +1,9 @@
1
1
  import React from 'react';
2
- import { PopperProps } from '../popper';
3
- export declare type TooltipProps = PopperProps;
4
- declare const Tooltip: React.ForwardRefExoticComponent<PopperProps & React.RefAttributes<unknown>>;
2
+ import { PopperProps } from '../_utils/usePopper';
3
+ export declare type RenderFunction = () => React.ReactNode;
4
+ export interface TooltipProps extends PopperProps {
5
+ children?: React.ReactNode;
6
+ tip?: React.ReactNode | RenderFunction;
7
+ }
8
+ declare const Tooltip: React.ForwardRefExoticComponent<TooltipProps & React.RefAttributes<unknown>>;
5
9
  export default Tooltip;
@@ -1,20 +1,36 @@
1
1
  import _extends from "@babel/runtime-corejs3/helpers/extends";
2
- import React from 'react';
2
+ import React, { useRef } from 'react';
3
3
  import { getCompProps } from '../_utils';
4
+ import { isFragment } from '../_utils/reactNode';
4
5
  import { ConfigContext } from '../config-provider';
5
- import Popper from '../popper';
6
+ import usePopper from '../_utils/usePopper';
6
7
  var Tooltip = /*#__PURE__*/React.forwardRef(function (props, ref) {
7
8
  var _React$useContext = React.useContext(ConfigContext),
8
9
  getPrefixCls = _React$useContext.getPrefixCls,
9
10
  pkgPrefixCls = _React$useContext.prefixCls,
10
- compDefaultProps = _React$useContext.compDefaultProps;
11
- var allProps = getCompProps('ToolTip', compDefaultProps, props);
12
- var prefixCls = getPrefixCls(pkgPrefixCls, 'tooltip', allProps === null || allProps === void 0 ? void 0 : allProps.prefixCls);
13
- var popperProps = _extends({
14
- ref: ref,
15
- prefixCls: prefixCls
16
- }, allProps);
17
- return /*#__PURE__*/React.createElement(Popper, _extends({}, popperProps));
11
+ userDefaultProps = _React$useContext.compDefaultProps;
12
+ // 属性需要合并一遍用户定义的默认属性
13
+ var allProps = getCompProps('ToolTip', userDefaultProps, props);
14
+ var status = useRef();
15
+ var tip = allProps.tip,
16
+ children = allProps.children,
17
+ customPrefixcls = allProps.prefixCls;
18
+ // className前缀
19
+ var prefixCls = getPrefixCls(pkgPrefixCls, 'tooltip', customPrefixcls);
20
+ var tiplocator = /*#__PURE__*/React.cloneElement( /*#__PURE__*/React.isValidElement(children) && !isFragment(children) ? children : /*#__PURE__*/React.createElement("span", null, children), {
21
+ ref: /*#__PURE__*/React.isValidElement(children) && !isFragment(children) && children.ref ? children.ref : ref
22
+ });
23
+ var onVisibleChange = function onVisibleChange(v) {
24
+ if (status.current === v && allProps.visible === undefined) return;
25
+ status.current = v;
26
+ props.onVisibleChange && props.onVisibleChange(v);
27
+ };
28
+ var popperProps = _extends(_extends({}, allProps), {
29
+ prefixCls: prefixCls,
30
+ onVisibleChange: onVisibleChange
31
+ });
32
+ var tipPopper = typeof tip === 'function' ? tip() : tip;
33
+ return usePopper(tiplocator, tipPopper, popperProps);
18
34
  });
19
35
  Tooltip.displayName = 'Tooltip';
20
36
  export default Tooltip;
@@ -192,6 +192,7 @@ var InternalAnchor = function InternalAnchor(props, ref) {
192
192
  var normalRef = _react.default.useRef(null);
193
193
  var anchorRef = ref || normalRef;
194
194
  var linksWidthRef = _react.default.useRef([]);
195
+ var animating = _react.default.useRef(false);
195
196
  var wrapperClass = (0, _classnames.default)(className, (0, _defineProperty2.default)({}, "".concat(anchorPrefixCls, "-wrapper"), true));
196
197
  // classes
197
198
  var anchorMenuClass = (0, _classnames.default)((0, _defineProperty2.default)({}, "".concat(anchorPrefixCls, "-menu"), true));
@@ -311,8 +312,12 @@ var InternalAnchor = function InternalAnchor(props, ref) {
311
312
  var eleOffsetTop = getOffsetTop(targetElement, container);
312
313
  var y = scrollTop + eleOffsetTop;
313
314
  y -= targetOffset !== undefined ? targetOffset : offsetTop || 0;
315
+ animating.current = true;
314
316
  scrollTo(y, {
315
- getContainer: getScrollContainer
317
+ getContainer: getScrollContainer,
318
+ callback: function callback() {
319
+ animating.current = false;
320
+ }
316
321
  });
317
322
  };
318
323
  var setCurrentActiveLink = (0, _react.useCallback)(function (link) {
@@ -333,6 +338,9 @@ var InternalAnchor = function InternalAnchor(props, ref) {
333
338
  setFixedTop(false);
334
339
  }
335
340
  }
341
+ if (animating.current) {
342
+ return;
343
+ }
336
344
  var currentActiveLink = getAnchor(targetOffset !== undefined ? targetOffset : offsetTop || 0, bounds);
337
345
  currentActiveLink && setCurrentActiveLink(currentActiveLink);
338
346
  }, [affix, setFixedTop, offsetTop, bounds, getAnchor, setCurrentActiveLink, type, getScrollContainer, anchorRef, targetOffset]);
@@ -74,6 +74,10 @@ var InternalInputNumber = function InternalInputNumber(props, ref) {
74
74
  _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
75
75
  forceUpdate = _useState4[0],
76
76
  setForceUpdate = _useState4[1];
77
+ var _useState5 = (0, _react.useState)(''),
78
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
79
+ compositionValue = _useState6[0],
80
+ setCompositionValue = _useState6[1];
77
81
  var inputStatus = (0, _react.useRef)({
78
82
  isHandleChange: false,
79
83
  inputFocused: false
@@ -83,6 +87,7 @@ var InternalInputNumber = function InternalInputNumber(props, ref) {
83
87
  var inputNumberRef = ref || thisInputNumberRef;
84
88
  var stepMouseDownDelayTimer = (0, _react.useRef)(null);
85
89
  var stepMouseDownIntervalTimer = (0, _react.useRef)(null);
90
+ var refIszComposition = (0, _react.useRef)(false);
86
91
  var isScopeValid = function isScopeValid(value) {
87
92
  if (value === '') return true;
88
93
  var numberValue = parseFloat(value) || 0;
@@ -124,14 +129,20 @@ var InternalInputNumber = function InternalInputNumber(props, ref) {
124
129
  };
125
130
  var handleChange = function handleChange(event) {
126
131
  inputStatus.current.isHandleChange = true;
127
- var legalNumber = verifiValue(event.target.value);
128
- updateSelectionRangePosition(event);
129
- if (legalNumber === false) {
130
- setForceUpdate(forceUpdate + 1);
131
- return false;
132
+ var newValue = event.target.value;
133
+ if (!refIszComposition.current) {
134
+ compositionValue && setCompositionValue('');
135
+ var legalNumber = verifiValue(newValue);
136
+ if (legalNumber === false) {
137
+ setForceUpdate(forceUpdate + 1);
138
+ return false;
139
+ }
140
+ value === undefined && setInputValue(legalNumber);
141
+ onChange && onChange(handleEventAttachValue(event, numberMode ? Number(legalNumber) : legalNumber));
142
+ updateSelectionRangePosition(event);
143
+ } else {
144
+ setCompositionValue(newValue);
132
145
  }
133
- value === undefined && setInputValue(legalNumber);
134
- onChange && onChange(handleEventAttachValue(event, numberMode ? Number(legalNumber) : legalNumber));
135
146
  };
136
147
  var handleFocus = function handleFocus(event) {
137
148
  inputStatus.current.inputFocused = true;
@@ -330,9 +341,19 @@ var InternalInputNumber = function InternalInputNumber(props, ref) {
330
341
  inputValue: displayedInputValue,
331
342
  forceUpdate: forceUpdate
332
343
  });
344
+ var handleComposition = function handleComposition(e) {
345
+ refIszComposition.current = e.type !== 'compositionend';
346
+ if (!refIszComposition.current) {
347
+ setCompositionValue('');
348
+ handleChange(e);
349
+ }
350
+ };
333
351
  return /*#__PURE__*/_react.default.createElement(_input.default, (0, _extends2.default)({}, others, {
352
+ onCompositionStart: handleComposition,
353
+ onCompositionUpdate: handleComposition,
354
+ onCompositionEnd: handleComposition,
334
355
  ref: inputNumberRef,
335
- value: displayedInputValue,
356
+ value: compositionValue || displayedInputValue,
336
357
  prefix: prefix,
337
358
  suffix: suffix,
338
359
  onChange: handleChange,
@@ -34,7 +34,6 @@
34
34
  @import "../notification/style/index.less";
35
35
  @import "../pagination/style/index.less";
36
36
  @import "../popconfirm/style/index.less";
37
- @import "../popper/style/index.less";
38
37
  @import "../progress/style/index.less";
39
38
  @import "../qr-code/style/index.less";
40
39
  @import "../radio/style/index.less";
@@ -124,7 +124,68 @@
124
124
  background-color: var(--kd-c-tooltip-color-background, var(--kd-g-color-background, #fff));
125
125
  -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.2);
126
126
  box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.2);
127
+ opacity: 1;
128
+ z-index: var(--kd-g-z-index-popper, 1050);
129
+ visibility: visible;
127
130
  }
128
- .kd-tooltip .arrow::before {
129
- border-color: var(--kd-c-tooltip-color-background, var(--kd-g-color-background, #fff));
131
+ .kd-tooltip.hidden {
132
+ opacity: 0;
133
+ visibility: hidden;
134
+ }
135
+ .kd-tooltip.arrow::before {
136
+ position: absolute;
137
+ z-index: -2;
138
+ background: var(--kd-c-tooltip-color-background, var(--kd-g-color-background, #fff));
139
+ border-style: solid;
140
+ border-width: var(--arrowSize);
141
+ -webkit-transform: rotate(45deg);
142
+ transform: rotate(45deg);
143
+ content: '';
144
+ }
145
+ .kd-tooltip.arrow::after {
146
+ position: absolute;
147
+ z-index: -1;
148
+ top: 0;
149
+ right: 0;
150
+ bottom: 0;
151
+ left: 0;
152
+ content: '';
153
+ background: var(--kd-c-tooltip-color-background, var(--kd-g-color-background, #fff));
154
+ border-radius: var(--kd-g-radius-border, 2px);
155
+ }
156
+ .kd-tooltip.arrow.bottomLeft::before,
157
+ .kd-tooltip.arrow.bottom::before,
158
+ .kd-tooltip.arrow.bottomRight::before {
159
+ left: var(--arrowLeft);
160
+ top: var(--arrowSpill);
161
+ -webkit-box-shadow: -2px -2px calc(6px - 1px) rgba(0, 0, 0, 0.1);
162
+ box-shadow: -2px -2px calc(6px - 1px) rgba(0, 0, 0, 0.1);
163
+ border-color: var(--kd-c-tooltip-color-background, var(--kd-g-color-background, #fff)) transparent transparent var(--kd-c-tooltip-color-background, var(--kd-g-color-background, #fff));
164
+ }
165
+ .kd-tooltip.arrow.topLeft::before,
166
+ .kd-tooltip.arrow.top::before,
167
+ .kd-tooltip.arrow.topRight::before {
168
+ left: var(--arrowLeft);
169
+ bottom: var(--arrowSpill);
170
+ -webkit-box-shadow: 3px 3px calc(6px + 1px) rgba(0, 0, 0, 0.15);
171
+ box-shadow: 3px 3px calc(6px + 1px) rgba(0, 0, 0, 0.15);
172
+ border-color: transparent var(--kd-c-tooltip-color-background, var(--kd-g-color-background, #fff)) var(--kd-c-tooltip-color-background, var(--kd-g-color-background, #fff)) transparent;
173
+ }
174
+ .kd-tooltip.arrow.leftTop::before,
175
+ .kd-tooltip.arrow.left::before,
176
+ .kd-tooltip.arrow.leftBottom::before {
177
+ top: var(--arrowTop);
178
+ right: var(--arrowSpill);
179
+ -webkit-box-shadow: 3px 0 6px rgba(0, 0, 0, 0.12), 0 -2px 6px rgba(204, 149, 149, 0.12);
180
+ box-shadow: 3px 0 6px rgba(0, 0, 0, 0.12), 0 -2px 6px rgba(204, 149, 149, 0.12);
181
+ border-color: var(--kd-c-tooltip-color-background, var(--kd-g-color-background, #fff)) var(--kd-c-tooltip-color-background, var(--kd-g-color-background, #fff)) transparent transparent;
182
+ }
183
+ .kd-tooltip.arrow.rightTop::before,
184
+ .kd-tooltip.arrow.right::before,
185
+ .kd-tooltip.arrow.rightBottom::before {
186
+ top: var(--arrowTop);
187
+ left: var(--arrowSpill);
188
+ -webkit-box-shadow: 0 3px 6px rgba(0, 0, 0, 0.1), -2px 0 6px rgba(0, 0, 0, 0.1);
189
+ box-shadow: 0 3px 6px rgba(0, 0, 0, 0.1), -2px 0 6px rgba(0, 0, 0, 0.1);
190
+ border-color: transparent transparent var(--kd-c-tooltip-color-background, var(--kd-g-color-background, #fff)) var(--kd-c-tooltip-color-background, var(--kd-g-color-background, #fff));
130
191
  }
@@ -14,8 +14,15 @@
14
14
  line-height: 1.5;
15
15
  background-color: @tooltip-background-color;
16
16
  box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.2);
17
+ opacity: 1;
18
+ z-index: @z-index-popper;
19
+ visibility: visible;
17
20
 
18
- .arrow::before {
19
- border-color: @tooltip-background-color;
21
+ &.hidden {
22
+ opacity: 0;
23
+ visibility: hidden;
20
24
  }
25
+
26
+ // 箭头样式
27
+ .popperArrow(@tooltip-background-color, @tooltip-horizontal-gap, @tooltip-box-shadow-blur);
21
28
  }
@@ -1,5 +1,9 @@
1
1
  import React from 'react';
2
- import { PopperProps } from '../popper';
3
- export declare type TooltipProps = PopperProps;
4
- declare const Tooltip: React.ForwardRefExoticComponent<PopperProps & React.RefAttributes<unknown>>;
2
+ import { PopperProps } from '../_utils/usePopper';
3
+ export declare type RenderFunction = () => React.ReactNode;
4
+ export interface TooltipProps extends PopperProps {
5
+ children?: React.ReactNode;
6
+ tip?: React.ReactNode | RenderFunction;
7
+ }
8
+ declare const Tooltip: React.ForwardRefExoticComponent<TooltipProps & React.RefAttributes<unknown>>;
5
9
  export default Tooltip;
@@ -1,27 +1,48 @@
1
1
  "use strict";
2
2
 
3
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
4
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
5
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
3
6
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
7
  Object.defineProperty(exports, "__esModule", {
5
8
  value: true
6
9
  });
7
10
  exports.default = void 0;
8
11
  var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
9
- var _react = _interopRequireDefault(require("react"));
12
+ var _react = _interopRequireWildcard(require("react"));
10
13
  var _utils = require("../_utils");
14
+ var _reactNode = require("../_utils/reactNode");
11
15
  var _configProvider = require("../config-provider");
12
- var _popper = _interopRequireDefault(require("../popper"));
16
+ var _usePopper = _interopRequireDefault(require("../_utils/usePopper"));
17
+ 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); }
18
+ 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; }
13
19
  var Tooltip = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
14
20
  var _React$useContext = _react.default.useContext(_configProvider.ConfigContext),
15
21
  getPrefixCls = _React$useContext.getPrefixCls,
16
22
  pkgPrefixCls = _React$useContext.prefixCls,
17
- compDefaultProps = _React$useContext.compDefaultProps;
18
- var allProps = (0, _utils.getCompProps)('ToolTip', compDefaultProps, props);
19
- var prefixCls = getPrefixCls(pkgPrefixCls, 'tooltip', allProps === null || allProps === void 0 ? void 0 : allProps.prefixCls);
20
- var popperProps = (0, _extends2.default)({
21
- ref: ref,
22
- prefixCls: prefixCls
23
- }, allProps);
24
- return /*#__PURE__*/_react.default.createElement(_popper.default, (0, _extends2.default)({}, popperProps));
23
+ userDefaultProps = _React$useContext.compDefaultProps;
24
+ // 属性需要合并一遍用户定义的默认属性
25
+ var allProps = (0, _utils.getCompProps)('ToolTip', userDefaultProps, props);
26
+ var status = (0, _react.useRef)();
27
+ var tip = allProps.tip,
28
+ children = allProps.children,
29
+ customPrefixcls = allProps.prefixCls;
30
+ // className前缀
31
+ var prefixCls = getPrefixCls(pkgPrefixCls, 'tooltip', customPrefixcls);
32
+ var tiplocator = /*#__PURE__*/_react.default.cloneElement( /*#__PURE__*/_react.default.isValidElement(children) && !(0, _reactNode.isFragment)(children) ? children : /*#__PURE__*/_react.default.createElement("span", null, children), {
33
+ ref: /*#__PURE__*/_react.default.isValidElement(children) && !(0, _reactNode.isFragment)(children) && children.ref ? children.ref : ref
34
+ });
35
+ var onVisibleChange = function onVisibleChange(v) {
36
+ if (status.current === v && allProps.visible === undefined) return;
37
+ status.current = v;
38
+ props.onVisibleChange && props.onVisibleChange(v);
39
+ };
40
+ var popperProps = (0, _extends2.default)((0, _extends2.default)({}, allProps), {
41
+ prefixCls: prefixCls,
42
+ onVisibleChange: onVisibleChange
43
+ });
44
+ var tipPopper = typeof tip === 'function' ? tip() : tip;
45
+ return (0, _usePopper.default)(tiplocator, tipPopper, popperProps);
25
46
  });
26
47
  Tooltip.displayName = 'Tooltip';
27
48
  var _default = Tooltip;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kdcloudjs/kdesign",
3
- "version": "1.7.48-usePopper.1",
3
+ "version": "1.7.49",
4
4
  "description": "KDesign 金蝶前端react 组件库",
5
5
  "title": "kdesign",
6
6
  "keywords": [
@@ -61,7 +61,6 @@
61
61
  "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0 && node scripts/filter-changelog.js",
62
62
  "pub": "npm run test:all && npm run build && cross-env PUB_ENV=pub np --no-cleanup --no-tests",
63
63
  "pub:beta": "npm run test:all && npm run build && cross-env PUB_ENV=pub np --no-cleanup --anyBranch --no-tests --tag=beta",
64
- "pub:usePopper": "npm run test:all && npm run build && cross-env PUB_ENV=pub np --no-cleanup --anyBranch --no-tests --tag=usePopper",
65
64
  "prepublishOnly": "node scripts/guard.js",
66
65
  "new": "node scripts/create-component.js",
67
66
  "token": "node scripts/generate-token.js",
@@ -79,8 +78,8 @@
79
78
  "@babel/runtime-corejs3": "^7.11.2",
80
79
  "@babel/standalone": "^7.14.3",
81
80
  "@kdcloudjs/kdesign-icons": "^1.0.0",
82
- "@kdcloudjs/table": "1.2.0-canary.12",
83
- "@popperjs/core": "^2.11.8",
81
+ "@kdcloudjs/table": "1.2.0-canary.16",
82
+ "@popperjs/core": "^2.5.4",
84
83
  "@types/js-cookie": "^3.0.3",
85
84
  "async-validator": "^3.5.1",
86
85
  "axios": "^0.21.1",
@@ -96,7 +95,7 @@
96
95
  "qrcode.react": "^3.1.0",
97
96
  "react-color": "^2.19.3",
98
97
  "react-draggable": "^4.4.3",
99
- "react-popper": "^2.3.0",
98
+ "react-popper": "^2.2.3",
100
99
  "resize-observer-polyfill": "^1.5.1",
101
100
  "styled-components": "^5.2.1"
102
101
  },
@@ -1,51 +0,0 @@
1
- import React from 'react';
2
- export declare const Placements: ["top", "left", "right", "bottom", "topLeft", "topRight", "bottomLeft", "bottomRight", "leftTop", "leftBottom", "rightTop", "rightBottom"];
3
- export declare type PlacementType = typeof Placements[number];
4
- export declare const Triggers: ["hover", "focus", "click", "contextMenu"];
5
- export declare type TriggerType = typeof Triggers[number];
6
- export declare type RenderFunction = () => React.ReactNode;
7
- export interface PopperProps {
8
- gap?: number;
9
- arrow?: boolean;
10
- visible?: boolean;
11
- prefixCls?: string;
12
- arrowSize?: number;
13
- disabled?: boolean;
14
- arrowOffset?: number;
15
- scrollHidden?: boolean;
16
- mouseEnterDelay?: number;
17
- mouseLeaveDelay?: number;
18
- defaultVisible?: boolean;
19
- autoPlacement?: boolean;
20
- className?: string;
21
- style?: React.CSSProperties;
22
- popperClassName?: string;
23
- popperStyle?: React.CSSProperties;
24
- placement?: PlacementType;
25
- tip?: any;
26
- trigger?: TriggerType | Array<TriggerType>;
27
- clickToClose?: boolean;
28
- onTrigger?: (trigger: TriggerType) => void;
29
- onVisibleChange?: (visible: boolean) => void;
30
- getTriggerElement?: (locatorNode: HTMLElement) => HTMLElement;
31
- getPopupContainer?: (locatorNode: HTMLElement) => HTMLElement;
32
- onTransitionEnd?: (e: React.TransitionEvent) => void;
33
- onAnimationEnd?: (e: React.AnimationEvent) => void;
34
- children?: React.ReactNode;
35
- }
36
- export declare const popperPlacementMap: {
37
- top: string;
38
- left: string;
39
- right: string;
40
- bottom: string;
41
- topLeft: string;
42
- topRight: string;
43
- bottomLeft: string;
44
- bottomRight: string;
45
- leftTop: string;
46
- leftBottom: string;
47
- rightTop: string;
48
- rightBottom: string;
49
- };
50
- export declare const Popper: React.ForwardRefExoticComponent<PopperProps & React.RefAttributes<unknown>>;
51
- export default Popper;