@kdcloudjs/kdesign 1.7.68-stable.8 → 1.7.68-stable.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +33 -0
- package/dist/kdesign-complete.less +110 -0
- package/dist/kdesign.css +365 -1
- package/dist/kdesign.css.map +1 -1
- package/dist/kdesign.js +3876 -167
- package/dist/kdesign.js.map +1 -1
- package/dist/kdesign.min.css +3 -3
- package/dist/kdesign.min.js +12 -12
- package/dist/kdesign.min.js.map +1 -1
- package/es/_utils/useId.d.ts +2 -0
- package/es/_utils/useId.js +30 -0
- package/es/city-picker/city-picker.js +16 -28
- package/es/city-picker/option.js +1 -5
- package/es/city-picker/style/index.css +8 -0
- package/es/city-picker/style/index.less +10 -0
- package/es/config-provider/compDefaultProps.d.ts +0 -1
- package/es/config-provider/compDefaultProps.js +0 -1
- package/es/locale/locale.d.ts +1 -0
- package/es/locale/zh-CN.d.ts +1 -0
- package/es/locale/zh-CN.js +1 -0
- package/es/popper/index.d.ts +61 -0
- package/es/popper/index.js +550 -0
- package/es/popper/style/css.js +2 -0
- package/es/popper/style/index.css +355 -0
- package/es/popper/style/index.d.ts +2 -0
- package/es/popper/style/index.js +2 -0
- package/es/popper/style/index.less +99 -0
- package/lib/_utils/useId.d.ts +2 -0
- package/lib/_utils/useId.js +43 -0
- package/lib/city-picker/city-picker.js +16 -28
- package/lib/city-picker/option.js +1 -5
- package/lib/city-picker/style/index.css +8 -0
- package/lib/city-picker/style/index.less +10 -0
- package/lib/config-provider/compDefaultProps.d.ts +0 -1
- package/lib/config-provider/compDefaultProps.js +0 -1
- package/lib/locale/locale.d.ts +1 -0
- package/lib/locale/zh-CN.d.ts +1 -0
- package/lib/locale/zh-CN.js +1 -0
- package/lib/popper/index.d.ts +61 -0
- package/lib/popper/index.js +567 -0
- package/lib/popper/style/css.js +4 -0
- package/lib/popper/style/index.css +355 -0
- package/lib/popper/style/index.d.ts +2 -0
- package/lib/popper/style/index.js +4 -0
- package/lib/popper/style/index.less +99 -0
- package/lib/style/components.less +1 -0
- package/package.json +1 -1
package/lib/locale/locale.d.ts
CHANGED
|
@@ -69,6 +69,7 @@ declare class LocaleCache {
|
|
|
69
69
|
'CityPicker.commonEmptyText': string;
|
|
70
70
|
'CityPicker.tabsDomestic': string;
|
|
71
71
|
'CityPicker.tabsInternation': string;
|
|
72
|
+
'CityPicker.title': string;
|
|
72
73
|
'ColorPicker.followFunctionalColor': string;
|
|
73
74
|
'Search.placeholder': string;
|
|
74
75
|
'Search.desc': string[];
|
package/lib/locale/zh-CN.d.ts
CHANGED
|
@@ -41,6 +41,7 @@ declare const locale: {
|
|
|
41
41
|
'CityPicker.commonEmptyText': string;
|
|
42
42
|
'CityPicker.tabsDomestic': string;
|
|
43
43
|
'CityPicker.tabsInternation': string;
|
|
44
|
+
'CityPicker.title': string;
|
|
44
45
|
'ColorPicker.followFunctionalColor': string;
|
|
45
46
|
'Search.placeholder': string;
|
|
46
47
|
'Search.desc': string[];
|
package/lib/locale/zh-CN.js
CHANGED
|
@@ -52,6 +52,7 @@ var locale = (0, _extends2.default)((0, _extends2.default)({
|
|
|
52
52
|
'CityPicker.commonEmptyText': '无常用城市',
|
|
53
53
|
'CityPicker.tabsDomestic': '国内',
|
|
54
54
|
'CityPicker.tabsInternation': '国际/中国港澳台',
|
|
55
|
+
'CityPicker.title': '城市',
|
|
55
56
|
'ColorPicker.followFunctionalColor': '跟随功能色',
|
|
56
57
|
'Search.placeholder': '请输入需要搜索的内容',
|
|
57
58
|
'Search.desc': ['空格代表"或",回车代表"且"'],
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Modifier, Placement } from '@popperjs/core';
|
|
3
|
+
export declare const Placements: ["top", "left", "right", "bottom", "topLeft", "topRight", "bottomLeft", "bottomRight", "leftTop", "leftBottom", "rightTop", "rightBottom"];
|
|
4
|
+
export declare type PlacementType = typeof Placements[number];
|
|
5
|
+
export declare const Triggers: ["hover", "focus", "click", "contextMenu"];
|
|
6
|
+
export declare type TriggerType = typeof Triggers[number];
|
|
7
|
+
export declare type Reason = TriggerType | 'scroll' | 'clickOutside' | 'clickToClose' | 'parentHidden' | 'unknown';
|
|
8
|
+
export declare type RenderFunction = () => React.ReactNode;
|
|
9
|
+
export declare type PopperProps = {
|
|
10
|
+
gap?: number;
|
|
11
|
+
arrow?: boolean;
|
|
12
|
+
visible?: boolean;
|
|
13
|
+
prefixCls?: string;
|
|
14
|
+
arrowSize?: number;
|
|
15
|
+
disabled?: boolean;
|
|
16
|
+
arrowOffset?: number;
|
|
17
|
+
scrollHidden?: boolean;
|
|
18
|
+
mouseEnterDelay?: number;
|
|
19
|
+
mouseLeaveDelay?: number;
|
|
20
|
+
defaultVisible?: boolean;
|
|
21
|
+
autoPlacement?: boolean;
|
|
22
|
+
autoPlacementList?: Placement[];
|
|
23
|
+
className?: string;
|
|
24
|
+
style?: React.CSSProperties;
|
|
25
|
+
popperClassName?: string;
|
|
26
|
+
popperStyle?: React.CSSProperties;
|
|
27
|
+
popperOuterClassName?: string;
|
|
28
|
+
popperOuterStyle?: React.CSSProperties;
|
|
29
|
+
placement?: PlacementType;
|
|
30
|
+
tip?: any;
|
|
31
|
+
trigger?: TriggerType | Array<TriggerType>;
|
|
32
|
+
strategy?: 'fixed' | 'absolute';
|
|
33
|
+
clickToClose?: boolean;
|
|
34
|
+
onTrigger?: (trigger: TriggerType) => void;
|
|
35
|
+
onVisibleChange?: (visible: boolean, reason?: Reason) => void;
|
|
36
|
+
getTriggerElement?: (locatorNode: HTMLElement) => HTMLElement;
|
|
37
|
+
getPopupContainer?: (locatorNode: HTMLElement) => HTMLElement;
|
|
38
|
+
onTransitionEnd?: (e: React.TransitionEvent) => void;
|
|
39
|
+
onAnimationEnd?: (e: React.AnimationEvent) => void;
|
|
40
|
+
children?: React.ReactNode;
|
|
41
|
+
customerModifiers?: (modifiers: Partial<Modifier<any, any>>[]) => Partial<Modifier<any, any>>[];
|
|
42
|
+
};
|
|
43
|
+
export interface TriggerContextProps {
|
|
44
|
+
registerSubPopup: (id: string, node: any) => void;
|
|
45
|
+
}
|
|
46
|
+
export declare const popperPlacementMap: {
|
|
47
|
+
top: string;
|
|
48
|
+
left: string;
|
|
49
|
+
right: string;
|
|
50
|
+
bottom: string;
|
|
51
|
+
topLeft: string;
|
|
52
|
+
topRight: string;
|
|
53
|
+
bottomLeft: string;
|
|
54
|
+
bottomRight: string;
|
|
55
|
+
leftTop: string;
|
|
56
|
+
leftBottom: string;
|
|
57
|
+
rightTop: string;
|
|
58
|
+
rightBottom: string;
|
|
59
|
+
};
|
|
60
|
+
export declare const Popper: React.ForwardRefExoticComponent<PopperProps & React.RefAttributes<unknown>>;
|
|
61
|
+
export default Popper;
|
|
@@ -0,0 +1,567 @@
|
|
|
1
|
+
"use strict";
|
|
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");
|
|
6
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.popperPlacementMap = exports.default = exports.Triggers = exports.Popper = exports.Placements = void 0;
|
|
11
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
|
12
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
|
13
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
|
|
14
|
+
var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
|
|
15
|
+
var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
|
|
16
|
+
var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
|
|
17
|
+
var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/keys"));
|
|
18
|
+
var _values = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/values"));
|
|
19
|
+
var _startsWith = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/starts-with"));
|
|
20
|
+
var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
|
|
21
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
22
|
+
var _core = require("@popperjs/core");
|
|
23
|
+
var _type = require("../_utils/type");
|
|
24
|
+
var _classnames3 = _interopRequireDefault(require("classnames"));
|
|
25
|
+
var _debounce = _interopRequireDefault(require("lodash/debounce"));
|
|
26
|
+
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
27
|
+
var _reactNode = require("../_utils/reactNode");
|
|
28
|
+
var _configProvider = require("../config-provider");
|
|
29
|
+
var _hooks = require("../_utils/hooks");
|
|
30
|
+
var _useId = _interopRequireDefault(require("../_utils/useId"));
|
|
31
|
+
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); }
|
|
32
|
+
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; }
|
|
33
|
+
var Placements = (0, _type.tuple)('top', 'left', 'right', 'bottom', 'topLeft', 'topRight', 'bottomLeft', 'bottomRight', 'leftTop', 'leftBottom', 'rightTop', 'rightBottom');
|
|
34
|
+
exports.Placements = Placements;
|
|
35
|
+
var Triggers = (0, _type.tuple)('hover', 'focus', 'click', 'contextMenu');
|
|
36
|
+
exports.Triggers = Triggers;
|
|
37
|
+
var useEnhancedEffect = typeof window !== 'undefined' ? _react.default.useLayoutEffect : _react.default.useEffect;
|
|
38
|
+
var TriggerContext = /*#__PURE__*/_react.default.createContext(null);
|
|
39
|
+
var generateGetBoundingClientRect = function generateGetBoundingClientRect() {
|
|
40
|
+
var x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
41
|
+
var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
42
|
+
var width = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
|
43
|
+
var height = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
|
|
44
|
+
return function () {
|
|
45
|
+
return {
|
|
46
|
+
width: width,
|
|
47
|
+
height: height,
|
|
48
|
+
top: y,
|
|
49
|
+
right: x,
|
|
50
|
+
bottom: y,
|
|
51
|
+
left: x
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
var virtualElement = {
|
|
56
|
+
getBoundingClientRect: generateGetBoundingClientRect()
|
|
57
|
+
};
|
|
58
|
+
var triggerTypeArray = ['hover', 'focus', 'click', 'contextMenu'];
|
|
59
|
+
var popperPlacementMap = {
|
|
60
|
+
top: 'top',
|
|
61
|
+
left: 'left',
|
|
62
|
+
right: 'right',
|
|
63
|
+
bottom: 'bottom',
|
|
64
|
+
topLeft: 'top-start',
|
|
65
|
+
topRight: 'top-end',
|
|
66
|
+
bottomLeft: 'bottom-start',
|
|
67
|
+
bottomRight: 'bottom-end',
|
|
68
|
+
leftTop: 'left-start',
|
|
69
|
+
leftBottom: 'left-end',
|
|
70
|
+
rightTop: 'right-start',
|
|
71
|
+
rightBottom: 'right-end'
|
|
72
|
+
};
|
|
73
|
+
exports.popperPlacementMap = popperPlacementMap;
|
|
74
|
+
var getRealPlacement = function getRealPlacement(key) {
|
|
75
|
+
return popperPlacementMap[key] ? popperPlacementMap[key] : 'top';
|
|
76
|
+
};
|
|
77
|
+
var getFallbackPlacementList = function getFallbackPlacementList(arr) {
|
|
78
|
+
var _context;
|
|
79
|
+
return (0, _filter.default)(_context = (0, _map.default)(arr).call(arr, function (d) {
|
|
80
|
+
return popperPlacementMap[d] ? popperPlacementMap[d] : '';
|
|
81
|
+
})).call(_context, function (d) {
|
|
82
|
+
return d;
|
|
83
|
+
});
|
|
84
|
+
};
|
|
85
|
+
var getRealDom = function getRealDom(locatorRef) {
|
|
86
|
+
var locatorElement = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
|
|
87
|
+
var _a;
|
|
88
|
+
if (!locatorRef.current) return locatorRef.current;
|
|
89
|
+
if (locatorRef.current.tagName) return locatorRef.current;
|
|
90
|
+
if (locatorElement) {
|
|
91
|
+
var REF_NAME_OBJ = {
|
|
92
|
+
Input: 'input',
|
|
93
|
+
InputNumber: 'input',
|
|
94
|
+
Select: 'select',
|
|
95
|
+
Upload: 'input'
|
|
96
|
+
};
|
|
97
|
+
var name = REF_NAME_OBJ === null || REF_NAME_OBJ === void 0 ? void 0 : REF_NAME_OBJ[(_a = locatorElement === null || locatorElement === void 0 ? void 0 : locatorElement.type) === null || _a === void 0 ? void 0 : _a.displayName];
|
|
98
|
+
return locatorRef === null || locatorRef === void 0 ? void 0 : locatorRef.current[name];
|
|
99
|
+
}
|
|
100
|
+
return locatorElement;
|
|
101
|
+
};
|
|
102
|
+
var getElement = function getElement(element) {
|
|
103
|
+
return typeof element === 'function' ? element() : element;
|
|
104
|
+
};
|
|
105
|
+
var Popper = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
106
|
+
var _context4, _context5, _context6;
|
|
107
|
+
var _a;
|
|
108
|
+
var _React$useContext = _react.default.useContext(_configProvider.ConfigContext),
|
|
109
|
+
getPrefixCls = _React$useContext.getPrefixCls,
|
|
110
|
+
pkgPrefixCls = _React$useContext.prefixCls;
|
|
111
|
+
var prefixCls = props.prefixCls,
|
|
112
|
+
onTrigger = props.onTrigger,
|
|
113
|
+
style = props.style,
|
|
114
|
+
popperStyle = props.popperStyle,
|
|
115
|
+
_props$arrow = props.arrow,
|
|
116
|
+
arrow = _props$arrow === void 0 ? false : _props$arrow,
|
|
117
|
+
onVisibleChange = props.onVisibleChange,
|
|
118
|
+
className = props.className,
|
|
119
|
+
popperClassName = props.popperClassName,
|
|
120
|
+
popperOuterClassName = props.popperOuterClassName,
|
|
121
|
+
popperOuterStyle = props.popperOuterStyle,
|
|
122
|
+
tip = props.tip,
|
|
123
|
+
_props$disabled = props.disabled,
|
|
124
|
+
disabled = _props$disabled === void 0 ? false : _props$disabled,
|
|
125
|
+
_props$trigger = props.trigger,
|
|
126
|
+
trigger = _props$trigger === void 0 ? 'click' : _props$trigger,
|
|
127
|
+
_props$placement = props.placement,
|
|
128
|
+
placement = _props$placement === void 0 ? 'top' : _props$placement,
|
|
129
|
+
_props$strategy = props.strategy,
|
|
130
|
+
strategy = _props$strategy === void 0 ? 'absolute' : _props$strategy,
|
|
131
|
+
visible = props.visible,
|
|
132
|
+
_props$arrowSize = props.arrowSize,
|
|
133
|
+
arrowSize = _props$arrowSize === void 0 ? 4.25 : _props$arrowSize,
|
|
134
|
+
_props$arrowOffset = props.arrowOffset,
|
|
135
|
+
arrowOffset = _props$arrowOffset === void 0 ? 12 : _props$arrowOffset,
|
|
136
|
+
_props$gap = props.gap,
|
|
137
|
+
defaultGap = _props$gap === void 0 ? 8 : _props$gap,
|
|
138
|
+
_props$scrollHidden = props.scrollHidden,
|
|
139
|
+
scrollHidden = _props$scrollHidden === void 0 ? false : _props$scrollHidden,
|
|
140
|
+
_props$mouseEnterDela = props.mouseEnterDelay,
|
|
141
|
+
mouseEnterDelay = _props$mouseEnterDela === void 0 ? 0.1 : _props$mouseEnterDela,
|
|
142
|
+
_props$mouseLeaveDela = props.mouseLeaveDelay,
|
|
143
|
+
mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,
|
|
144
|
+
_props$defaultVisible = props.defaultVisible,
|
|
145
|
+
defaultVisible = _props$defaultVisible === void 0 ? false : _props$defaultVisible,
|
|
146
|
+
_props$autoPlacement = props.autoPlacement,
|
|
147
|
+
autoPlacement = _props$autoPlacement === void 0 ? true : _props$autoPlacement,
|
|
148
|
+
autoPlacementList = props.autoPlacementList,
|
|
149
|
+
_props$clickToClose = props.clickToClose,
|
|
150
|
+
clickToClose = _props$clickToClose === void 0 ? true : _props$clickToClose,
|
|
151
|
+
_props$getTriggerElem = props.getTriggerElement,
|
|
152
|
+
getTriggerElement = _props$getTriggerElem === void 0 ? function (locatorNode) {
|
|
153
|
+
return locatorNode;
|
|
154
|
+
} : _props$getTriggerElem,
|
|
155
|
+
_props$getPopupContai = props.getPopupContainer,
|
|
156
|
+
getPopupContainer = _props$getPopupContai === void 0 ? function () {
|
|
157
|
+
return document.body;
|
|
158
|
+
} : _props$getPopupContai,
|
|
159
|
+
onTransitionEnd = props.onTransitionEnd,
|
|
160
|
+
onAnimationEnd = props.onAnimationEnd,
|
|
161
|
+
children = props.children,
|
|
162
|
+
customerModifiers = props.customerModifiers;
|
|
163
|
+
var popperPrefixCls = getPrefixCls(pkgPrefixCls, 'popper');
|
|
164
|
+
var referencePrefixCls = "".concat(popperPrefixCls, "-reference");
|
|
165
|
+
var child = getElement(children);
|
|
166
|
+
var childrenInner = /*#__PURE__*/(0, _react.isValidElement)(child) && !(0, _reactNode.isFragment)(child) ? child : /*#__PURE__*/_react.default.createElement("span", null, child);
|
|
167
|
+
var popperElement = getElement(tip);
|
|
168
|
+
var referenceElement = _react.Children.only(childrenInner);
|
|
169
|
+
var arrowOffsetInner = arrowSize + arrowOffset;
|
|
170
|
+
var getArrowOffset = function getArrowOffset(popperSize, referenceSize, arr) {
|
|
171
|
+
var boundary = arrowOffsetInner * 2;
|
|
172
|
+
var offset;
|
|
173
|
+
if (referenceSize < boundary || popperSize < boundary) {
|
|
174
|
+
var o = Math.min(referenceSize, popperSize) / 2;
|
|
175
|
+
if (arr[1] === 'start') {
|
|
176
|
+
offset = o;
|
|
177
|
+
} else {
|
|
178
|
+
offset = Math.max(popperSize - o, 0);
|
|
179
|
+
}
|
|
180
|
+
} else {
|
|
181
|
+
if (arr[1] === 'start') {
|
|
182
|
+
offset = arrowOffsetInner;
|
|
183
|
+
} else {
|
|
184
|
+
offset = popperSize - arrowOffsetInner;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return offset;
|
|
188
|
+
};
|
|
189
|
+
var id = (0, _useId.default)();
|
|
190
|
+
var parentContext = (0, _react.useContext)(TriggerContext);
|
|
191
|
+
var subPopupRefs = (0, _react.useRef)({});
|
|
192
|
+
var context = _react.default.useMemo(function () {
|
|
193
|
+
return {
|
|
194
|
+
registerSubPopup: function registerSubPopup(id, subPopupEle) {
|
|
195
|
+
subPopupRefs.current[id] = subPopupEle;
|
|
196
|
+
parentContext === null || parentContext === void 0 ? void 0 : parentContext.registerSubPopup(id, subPopupEle);
|
|
197
|
+
}
|
|
198
|
+
};
|
|
199
|
+
}, [parentContext]);
|
|
200
|
+
var popperRefDom = (0, _react.useRef)(null);
|
|
201
|
+
var popperRefInner = (0, _react.useRef)(null);
|
|
202
|
+
var popperRef = ref || popperRefInner;
|
|
203
|
+
var popperInstance = (0, _react.useRef)(null);
|
|
204
|
+
var referenceRefInner = (0, _react.useRef)(null);
|
|
205
|
+
var onVisibleChangeRef = (0, _react.useRef)(onVisibleChange);
|
|
206
|
+
var referenceRef = (referenceElement === null || referenceElement === void 0 ? void 0 : referenceElement.ref) || referenceRefInner;
|
|
207
|
+
var container = getPopupContainer(getRealDom(referenceRef, referenceElement) || document.body) || document.body;
|
|
208
|
+
var _useMergedState = (0, _hooks.useMergedState)(false, {
|
|
209
|
+
value: visible,
|
|
210
|
+
defaultValue: defaultVisible
|
|
211
|
+
}),
|
|
212
|
+
_useMergedState2 = (0, _slicedToArray2.default)(_useMergedState, 2),
|
|
213
|
+
visibleInner = _useMergedState2[0],
|
|
214
|
+
setVisibleInner = _useMergedState2[1];
|
|
215
|
+
var _useState = (0, _react.useState)(visibleInner),
|
|
216
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
217
|
+
exist = _useState2[0],
|
|
218
|
+
setExist = _useState2[1];
|
|
219
|
+
var _useState3 = (0, _react.useState)(getRealPlacement(placement)),
|
|
220
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
221
|
+
placementInner = _useState4[0],
|
|
222
|
+
setPlacementInner = _useState4[1];
|
|
223
|
+
var delayRef = (0, _react.useRef)();
|
|
224
|
+
var clearDelay = function clearDelay() {
|
|
225
|
+
if (typeof delayRef.current !== 'undefined') {
|
|
226
|
+
clearTimeout(delayRef.current);
|
|
227
|
+
delayRef.current = null;
|
|
228
|
+
}
|
|
229
|
+
};
|
|
230
|
+
var changeVisible = function changeVisible(nextOpen) {
|
|
231
|
+
var triggerType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'unknown';
|
|
232
|
+
var _a;
|
|
233
|
+
if (visibleInner !== nextOpen) {
|
|
234
|
+
if (nextOpen && (0, _includes.default)(triggerTypeArray).call(triggerTypeArray, triggerType)) {
|
|
235
|
+
onTrigger === null || onTrigger === void 0 ? void 0 : onTrigger(triggerType);
|
|
236
|
+
}
|
|
237
|
+
if (typeof visible === 'undefined') {
|
|
238
|
+
setVisibleInner(nextOpen);
|
|
239
|
+
}
|
|
240
|
+
(_a = onVisibleChangeRef.current) === null || _a === void 0 ? void 0 : _a.call(onVisibleChangeRef, nextOpen, triggerType);
|
|
241
|
+
}
|
|
242
|
+
if (!nextOpen && (0, _keys.default)(subPopupRefs.current || {}).length) {
|
|
243
|
+
(0, _values.default)(subPopupRefs.current).forEach(function (d) {
|
|
244
|
+
if (typeof (d === null || d === void 0 ? void 0 : d.triggerOpen) === 'function' && (d === null || d === void 0 ? void 0 : d.visible)) {
|
|
245
|
+
d === null || d === void 0 ? void 0 : d.triggerOpen(false, 'parentHidden');
|
|
246
|
+
}
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
};
|
|
250
|
+
var triggerOpen = function triggerOpen(nextOpen) {
|
|
251
|
+
var triggerType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'unknown';
|
|
252
|
+
var delay = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
|
253
|
+
clearDelay();
|
|
254
|
+
if (!disabled) {
|
|
255
|
+
if (delay === 0) {
|
|
256
|
+
changeVisible(nextOpen, triggerType);
|
|
257
|
+
} else {
|
|
258
|
+
if (visibleInner !== nextOpen) {
|
|
259
|
+
delayRef.current = setTimeout(function () {
|
|
260
|
+
changeVisible(nextOpen, triggerType);
|
|
261
|
+
}, delay * 1000);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
};
|
|
266
|
+
var isSubPopper = function isSubPopper(event) {
|
|
267
|
+
if (!event || !(event === null || event === void 0 ? void 0 : event.target)) {
|
|
268
|
+
return false;
|
|
269
|
+
}
|
|
270
|
+
// let targetElement: HTMLElement = event.target as HTMLElement
|
|
271
|
+
// const POP_ATTR_NAME = 'data-popper-placement'
|
|
272
|
+
// while (targetElement && targetElement !== document.documentElement) {
|
|
273
|
+
// if (targetElement?.getAttribute(POP_ATTR_NAME) && targetElement?.className.includes(popperPrefixCls)) {
|
|
274
|
+
// return true
|
|
275
|
+
// }
|
|
276
|
+
// targetElement = targetElement?.parentNode as HTMLElement
|
|
277
|
+
// }
|
|
278
|
+
var target = event.target;
|
|
279
|
+
if (subPopupRefs.current) {
|
|
280
|
+
for (var key in subPopupRefs.current) {
|
|
281
|
+
var dom = subPopupRefs.current[key].dom;
|
|
282
|
+
if (dom && ((dom === null || dom === void 0 ? void 0 : dom.contains(target)) || dom === target)) {
|
|
283
|
+
return true;
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
return false;
|
|
288
|
+
};
|
|
289
|
+
var onTriggerInner = function onTriggerInner(nextOpen, triggerType) {
|
|
290
|
+
var delay = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
|
|
291
|
+
triggerOpen(nextOpen, triggerType, delay);
|
|
292
|
+
};
|
|
293
|
+
var onClick = function onClick() {
|
|
294
|
+
if (clickToClose || !visibleInner) {
|
|
295
|
+
onTriggerInner(!visibleInner, 'click');
|
|
296
|
+
}
|
|
297
|
+
};
|
|
298
|
+
var onFocus = function onFocus() {
|
|
299
|
+
onTriggerInner(true, 'focus');
|
|
300
|
+
};
|
|
301
|
+
var onBlur = function onBlur() {
|
|
302
|
+
onTriggerInner(false, 'focus');
|
|
303
|
+
};
|
|
304
|
+
var onContextMenu = function onContextMenu(e) {
|
|
305
|
+
e.preventDefault();
|
|
306
|
+
var clientWidth = 0;
|
|
307
|
+
var clientHeight = 0;
|
|
308
|
+
if (arrow) {
|
|
309
|
+
if ((0, _startsWith.default)(placementInner).call(placementInner, 'top') || (0, _startsWith.default)(placementInner).call(placementInner, 'bottom')) {
|
|
310
|
+
var _context2;
|
|
311
|
+
if (!(0, _includes.default)(_context2 = ['top', 'bottom']).call(_context2, placementInner)) {
|
|
312
|
+
clientWidth = 6 * arrowSize;
|
|
313
|
+
}
|
|
314
|
+
} else {
|
|
315
|
+
var _context3;
|
|
316
|
+
if (!(0, _includes.default)(_context3 = ['right', 'left']).call(_context3, placementInner)) {
|
|
317
|
+
clientHeight = 6 * arrowSize;
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
virtualElement.getBoundingClientRect = generateGetBoundingClientRect(e.clientX, e.clientY, clientWidth, clientHeight);
|
|
322
|
+
onTriggerInner(!visibleInner, 'contextMenu');
|
|
323
|
+
};
|
|
324
|
+
var onMouseOver = function onMouseOver() {
|
|
325
|
+
onTriggerInner(true, 'hover', mouseEnterDelay);
|
|
326
|
+
};
|
|
327
|
+
var onMouseLeave = function onMouseLeave() {
|
|
328
|
+
onTriggerInner(false, 'hover', mouseLeaveDelay);
|
|
329
|
+
};
|
|
330
|
+
var onPopperAnimationEnd = function onPopperAnimationEnd(e) {
|
|
331
|
+
onAnimationEnd === null || onAnimationEnd === void 0 ? void 0 : onAnimationEnd(e);
|
|
332
|
+
onTransitionEnd === null || onTransitionEnd === void 0 ? void 0 : onTransitionEnd(e);
|
|
333
|
+
};
|
|
334
|
+
var isTrigger = function isTrigger(triggerValue) {
|
|
335
|
+
return trigger === triggerValue || Array.isArray(trigger) && (0, _includes.default)(trigger).call(trigger, triggerValue);
|
|
336
|
+
};
|
|
337
|
+
var triggerEventHandle = function triggerEventHandle(triggerNode) {
|
|
338
|
+
var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'addEventListener';
|
|
339
|
+
if (isTrigger('click')) {
|
|
340
|
+
triggerNode === null || triggerNode === void 0 ? void 0 : triggerNode[type]('click', onClick);
|
|
341
|
+
}
|
|
342
|
+
if (isTrigger('focus')) {
|
|
343
|
+
triggerNode === null || triggerNode === void 0 ? void 0 : triggerNode[type]('focus', onFocus);
|
|
344
|
+
triggerNode === null || triggerNode === void 0 ? void 0 : triggerNode[type]('blur', onBlur);
|
|
345
|
+
}
|
|
346
|
+
if (isTrigger('contextMenu')) {
|
|
347
|
+
triggerNode === null || triggerNode === void 0 ? void 0 : triggerNode[type]('contextmenu', onContextMenu);
|
|
348
|
+
}
|
|
349
|
+
if (isTrigger('hover')) {
|
|
350
|
+
triggerNode === null || triggerNode === void 0 ? void 0 : triggerNode[type]('mouseover', onMouseOver);
|
|
351
|
+
triggerNode === null || triggerNode === void 0 ? void 0 : triggerNode[type]('mouseleave', onMouseLeave);
|
|
352
|
+
}
|
|
353
|
+
};
|
|
354
|
+
(0, _react.useEffect)(function () {
|
|
355
|
+
onVisibleChangeRef.current = onVisibleChange;
|
|
356
|
+
}, [onVisibleChange]);
|
|
357
|
+
(0, _react.useEffect)(function () {
|
|
358
|
+
setPlacementInner(getRealPlacement(placement));
|
|
359
|
+
}, [placement]);
|
|
360
|
+
(0, _react.useEffect)(function () {
|
|
361
|
+
var scrollHandle = (0, _debounce.default)(function (e) {
|
|
362
|
+
var _a, _b;
|
|
363
|
+
if (visibleInner) {
|
|
364
|
+
var isPopper = e.target === popperRefDom.current || ((_b = (_a = popperRefDom.current) === null || _a === void 0 ? void 0 : _a.contains) === null || _b === void 0 ? void 0 : _b.call(_a, e.target));
|
|
365
|
+
if (scrollHidden && !isPopper) {
|
|
366
|
+
triggerOpen(false, 'scroll');
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
}, 10);
|
|
370
|
+
if (visibleInner) {
|
|
371
|
+
document.addEventListener('scroll', scrollHandle, true);
|
|
372
|
+
}
|
|
373
|
+
return function () {
|
|
374
|
+
document.removeEventListener('scroll', scrollHandle, true);
|
|
375
|
+
};
|
|
376
|
+
}, [visibleInner, scrollHidden, popperRefDom]);
|
|
377
|
+
(0, _react.useEffect)(function () {
|
|
378
|
+
var clickHandle = (0, _debounce.default)(function (e) {
|
|
379
|
+
var _a, _b, _c;
|
|
380
|
+
if (visibleInner) {
|
|
381
|
+
var isPopper = popperRefDom.current ? popperRefDom.current === e.target || ((_b = (_a = popperRefDom.current).contains) === null || _b === void 0 ? void 0 : _b.call(_a, e.target)) : false;
|
|
382
|
+
var domReference = getRealDom(referenceRef, referenceElement);
|
|
383
|
+
var isReference = domReference ? domReference === e.target || ((_c = domReference === null || domReference === void 0 ? void 0 : domReference.contains) === null || _c === void 0 ? void 0 : _c.call(domReference, e.target)) : false;
|
|
384
|
+
var isTarget = isPopper || isReference;
|
|
385
|
+
if (!isTarget && !isSubPopper(e)) {
|
|
386
|
+
triggerOpen(false, 'clickOutside', 0);
|
|
387
|
+
}
|
|
388
|
+
if (clickToClose && isReference && trigger !== 'focus') {
|
|
389
|
+
triggerOpen(false, 'clickToClose', 0);
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
}, 10, {
|
|
393
|
+
leading: true
|
|
394
|
+
});
|
|
395
|
+
if (visibleInner) {
|
|
396
|
+
document.addEventListener('click', clickHandle, true);
|
|
397
|
+
}
|
|
398
|
+
return function () {
|
|
399
|
+
document.removeEventListener('click', clickHandle, true);
|
|
400
|
+
};
|
|
401
|
+
}, [visibleInner, clickToClose, referenceRef, popperRefDom]);
|
|
402
|
+
(0, _react.useEffect)(function () {
|
|
403
|
+
var realDom = getRealDom(referenceRef, referenceElement);
|
|
404
|
+
var triggerNode = getTriggerElement(realDom);
|
|
405
|
+
triggerEventHandle(triggerNode);
|
|
406
|
+
return function () {
|
|
407
|
+
triggerEventHandle(triggerNode, 'removeEventListener');
|
|
408
|
+
};
|
|
409
|
+
}, [getTriggerElement, visibleInner, referenceElement, referenceRef, trigger]);
|
|
410
|
+
(0, _react.useImperativeHandle)(popperRef, function () {
|
|
411
|
+
return {
|
|
412
|
+
dom: popperRefDom.current,
|
|
413
|
+
triggerOpen: triggerOpen,
|
|
414
|
+
visible: visibleInner
|
|
415
|
+
};
|
|
416
|
+
});
|
|
417
|
+
var defaultModifiers = [{
|
|
418
|
+
name: 'offset',
|
|
419
|
+
options: {
|
|
420
|
+
offset: [0, defaultGap + (arrow ? 5 : 0)]
|
|
421
|
+
}
|
|
422
|
+
}, {
|
|
423
|
+
name: 'preventOverflow',
|
|
424
|
+
enabled: autoPlacement && !(0, _includes.default)(placementInner).call(placementInner, '-'),
|
|
425
|
+
options: {
|
|
426
|
+
mainAxis: true
|
|
427
|
+
}
|
|
428
|
+
}, {
|
|
429
|
+
name: 'flip',
|
|
430
|
+
enabled: autoPlacement,
|
|
431
|
+
options: {
|
|
432
|
+
fallbackPlacements: Array.isArray(autoPlacementList) ? getFallbackPlacementList(autoPlacementList) : undefined
|
|
433
|
+
}
|
|
434
|
+
}, {
|
|
435
|
+
name: 'applyArrowOffset',
|
|
436
|
+
enabled: true,
|
|
437
|
+
phase: 'write',
|
|
438
|
+
fn: function fn(data) {
|
|
439
|
+
var _data$state = data.state,
|
|
440
|
+
arrow = _data$state.elements.arrow,
|
|
441
|
+
placement = _data$state.placement,
|
|
442
|
+
_data$state$rects = _data$state.rects,
|
|
443
|
+
popper = _data$state$rects.popper,
|
|
444
|
+
reference = _data$state$rects.reference;
|
|
445
|
+
if (arrow) {
|
|
446
|
+
var arr = placement.split('-');
|
|
447
|
+
var offset;
|
|
448
|
+
if (arr.length === 2) {
|
|
449
|
+
switch (arr[0]) {
|
|
450
|
+
case 'bottom':
|
|
451
|
+
offset = getArrowOffset(popper.width, reference.width, arr);
|
|
452
|
+
if (offset) {
|
|
453
|
+
arrow.style.transform = "translate(".concat(offset, "px, 0px)");
|
|
454
|
+
}
|
|
455
|
+
break;
|
|
456
|
+
case 'left':
|
|
457
|
+
offset = getArrowOffset(popper.height, reference.height, arr);
|
|
458
|
+
if (offset) {
|
|
459
|
+
arrow.style.transform = "translate(0px, ".concat(offset, "px)");
|
|
460
|
+
}
|
|
461
|
+
break;
|
|
462
|
+
case 'right':
|
|
463
|
+
offset = getArrowOffset(popper.height, reference.height, arr);
|
|
464
|
+
if (offset) {
|
|
465
|
+
arrow.style.transform = "translate(0px, ".concat(offset, "px)");
|
|
466
|
+
}
|
|
467
|
+
break;
|
|
468
|
+
default:
|
|
469
|
+
offset = getArrowOffset(popper.width, reference.width, arr);
|
|
470
|
+
if (offset) {
|
|
471
|
+
arrow.style.transform = "translate(".concat(offset, "px, 0px)");
|
|
472
|
+
}
|
|
473
|
+
break;
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
}, {
|
|
479
|
+
name: 'onUpdate',
|
|
480
|
+
enabled: true,
|
|
481
|
+
phase: 'afterWrite',
|
|
482
|
+
fn: function fn(d) {
|
|
483
|
+
var _ref = d === null || d === void 0 ? void 0 : d.state,
|
|
484
|
+
p = _ref.placement;
|
|
485
|
+
if (p !== placementInner) {
|
|
486
|
+
setPlacementInner(p);
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
}];
|
|
490
|
+
var popperModifiers = typeof customerModifiers === 'function' ? customerModifiers(defaultModifiers) : defaultModifiers;
|
|
491
|
+
var popperOptionsInner = {
|
|
492
|
+
placement: placementInner,
|
|
493
|
+
modifiers: popperModifiers,
|
|
494
|
+
strategy: strategy
|
|
495
|
+
};
|
|
496
|
+
useEnhancedEffect(function () {
|
|
497
|
+
var _a, _b;
|
|
498
|
+
if (visibleInner) {
|
|
499
|
+
if (!exist) {
|
|
500
|
+
setExist(true);
|
|
501
|
+
} else {
|
|
502
|
+
if (popperInstance.current) {
|
|
503
|
+
(_a = popperInstance.current) === null || _a === void 0 ? void 0 : _a.setOptions(function (options) {
|
|
504
|
+
return (0, _extends2.default)((0, _extends2.default)({}, options), popperOptionsInner);
|
|
505
|
+
});
|
|
506
|
+
(_b = popperInstance.current) === null || _b === void 0 ? void 0 : _b.forceUpdate();
|
|
507
|
+
}
|
|
508
|
+
setTimeout(function () {
|
|
509
|
+
parentContext === null || parentContext === void 0 ? void 0 : parentContext.registerSubPopup(id, popperRef.current);
|
|
510
|
+
}, 10);
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
}, [visibleInner, placementInner, arrow]);
|
|
514
|
+
useEnhancedEffect(function () {
|
|
515
|
+
if (!exist) {
|
|
516
|
+
return undefined;
|
|
517
|
+
}
|
|
518
|
+
var current = getRealDom(referenceRef, referenceElement);
|
|
519
|
+
if (current) {
|
|
520
|
+
popperInstance.current = (0, _core.createPopper)(trigger === 'contextMenu' ? virtualElement : (current === null || current === void 0 ? void 0 : current.closest(".".concat(referencePrefixCls))) || current, popperRefDom.current, popperOptionsInner);
|
|
521
|
+
setTimeout(function () {
|
|
522
|
+
parentContext === null || parentContext === void 0 ? void 0 : parentContext.registerSubPopup(id, popperRef.current);
|
|
523
|
+
}, 10);
|
|
524
|
+
}
|
|
525
|
+
return function () {
|
|
526
|
+
var _a;
|
|
527
|
+
(_a = popperInstance.current) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
528
|
+
};
|
|
529
|
+
}, [exist]);
|
|
530
|
+
if (children === null || typeof children === 'undefined') {
|
|
531
|
+
return null;
|
|
532
|
+
}
|
|
533
|
+
var arrowStyle = (0, _defineProperty2.default)({}, "--arrowSize", arrowSize + 'px');
|
|
534
|
+
var popperContainerProps = {
|
|
535
|
+
ref: popperRefDom,
|
|
536
|
+
style: (0, _extends2.default)((0, _extends2.default)({}, arrow ? arrowStyle : {}), popperOuterStyle),
|
|
537
|
+
className: (0, _classnames3.default)(popperPrefixCls, {
|
|
538
|
+
hidden: !visibleInner
|
|
539
|
+
}, popperOuterClassName)
|
|
540
|
+
};
|
|
541
|
+
var popperProps = {
|
|
542
|
+
className: (0, _classnames3.default)([(0, _concat.default)(_context4 = "".concat(popperPrefixCls, "-")).call(_context4, placementInner)], (0, _defineProperty2.default)({}, (0, _concat.default)(_context5 = "".concat(popperPrefixCls, "-")).call(_context5, placementInner, "-out"), !visibleInner), (0, _defineProperty2.default)({}, (0, _concat.default)(_context6 = "".concat(popperPrefixCls, "-")).call(_context6, placementInner, "-in"), visibleInner), prefixCls, popperClassName, className),
|
|
543
|
+
style: (0, _extends2.default)((0, _extends2.default)({}, popperStyle), style),
|
|
544
|
+
onMouseOver: trigger === 'hover' ? function () {
|
|
545
|
+
return onTriggerInner(true, 'hover', mouseEnterDelay);
|
|
546
|
+
} : undefined,
|
|
547
|
+
onMouseLeave: trigger === 'hover' ? function () {
|
|
548
|
+
return onTriggerInner(false, 'hover', mouseLeaveDelay);
|
|
549
|
+
} : undefined,
|
|
550
|
+
onAnimationEnd: onPopperAnimationEnd,
|
|
551
|
+
onTransitionEnd: onPopperAnimationEnd
|
|
552
|
+
};
|
|
553
|
+
var referenceProps = {
|
|
554
|
+
ref: referenceRef,
|
|
555
|
+
className: (0, _classnames3.default)((_a = referenceElement === null || referenceElement === void 0 ? void 0 : referenceElement.props) === null || _a === void 0 ? void 0 : _a.className, referencePrefixCls)
|
|
556
|
+
};
|
|
557
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.cloneElement(referenceElement, referenceProps), exist && container && /*#__PURE__*/_reactDom.default.createPortal( /*#__PURE__*/_react.default.createElement(TriggerContext.Provider, {
|
|
558
|
+
value: context
|
|
559
|
+
}, /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, popperContainerProps), /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, popperProps), popperElement, arrow && /*#__PURE__*/_react.default.createElement("div", {
|
|
560
|
+
className: "arrow",
|
|
561
|
+
"data-popper-arrow": ""
|
|
562
|
+
})))), container));
|
|
563
|
+
});
|
|
564
|
+
exports.Popper = Popper;
|
|
565
|
+
Popper.displayName = 'Popper';
|
|
566
|
+
var _default = Popper;
|
|
567
|
+
exports.default = _default;
|