@ucloud-fe/react-components 1.3.25 → 1.4.0
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 +19 -0
- package/dist/icon.min.js +1 -1
- package/dist/main.min.js +4 -4
- package/lib/components/AutoComplete/AutoComplete.js +7 -4
- package/lib/components/Badge/Bubble.d.ts +2 -0
- package/lib/components/Box/Box.d.ts +1 -0
- package/lib/components/Calendar/Calendar.d.ts +6 -1
- package/lib/components/Calendar/Calendar.js +12 -4
- package/lib/components/Calendar/Cell.d.ts +8 -0
- package/lib/components/Calendar/Cell.js +55 -0
- package/lib/components/Calendar/HeaderButton.d.ts +8 -0
- package/lib/components/Calendar/HeaderButton.js +75 -0
- package/lib/components/Calendar/HeaderSwitcher.d.ts +2 -1
- package/lib/components/Calendar/Month.js +10 -4
- package/lib/components/Calendar/TwoSide.d.ts +4 -0
- package/lib/components/Calendar/TwoSide.js +155 -0
- package/lib/components/Calendar/index.d.ts +3 -0
- package/lib/components/Calendar/index.js +9 -0
- package/lib/components/Calendar/locale/en_US.js +2 -1
- package/lib/components/Calendar/locale/zh_CN.d.ts +1 -0
- package/lib/components/Calendar/locale/zh_CN.js +3 -2
- package/lib/components/Calendar/style/index.d.ts +13 -0
- package/lib/components/Calendar/style/index.js +29 -7
- package/lib/components/Calendar/utils.d.ts +1 -1
- package/lib/components/Calendar/utils.js +5 -5
- package/lib/components/DatePicker/DatePicker.d.ts +1 -1
- package/lib/components/DatePicker/DatePicker.js +5 -7
- package/lib/components/DatePicker/Footer.d.ts +5 -3
- package/lib/components/DatePicker/Footer.js +33 -57
- package/lib/components/DatePicker/Month.js +4 -6
- package/lib/components/DatePicker/Range.d.ts +2 -2
- package/lib/components/DatePicker/Range.js +179 -71
- package/lib/components/DatePicker/locale/en_US.js +2 -1
- package/lib/components/DatePicker/locale/zh_CN.d.ts +1 -0
- package/lib/components/DatePicker/locale/zh_CN.js +2 -1
- package/lib/components/DatePicker/style/index.d.ts +24 -5
- package/lib/components/DatePicker/style/index.js +102 -34
- package/lib/components/DatePicker/usePicker.js +90 -31
- package/lib/components/DatePicker/useRangePicker.d.ts +16 -0
- package/lib/components/DatePicker/{RangePicker.js → useRangePicker.js} +44 -80
- package/lib/components/DatePicker/utils.d.ts +1 -1
- package/lib/components/Form/ControllerContext.d.ts +1 -1
- package/lib/components/Input/Input.js +4 -2
- package/lib/components/Input/Search.js +1 -1
- package/lib/components/Input/style/index.d.ts +2 -1
- package/lib/components/Input/style/index.js +6 -4
- package/lib/components/Loading/Loading.d.ts +1 -0
- package/lib/components/NumberInput/NumberInput.d.ts +12 -0
- package/lib/components/NumberInput/NumberInput.js +1 -1
- package/lib/components/Pagination/Options.js +1 -1
- package/lib/components/Popover/Popover.d.ts +17 -13
- package/lib/components/Popover/Popover.js +1 -3
- package/lib/components/Popover/style/index.d.ts +1 -0
- package/lib/components/Popover/style/index.js +1 -1
- package/lib/components/Select/style/index.d.ts +6 -6
- package/lib/components/SvgIcon/SvgIcon.d.ts +1 -0
- package/lib/components/SvgIcon/SvgIcon.js +6 -0
- package/lib/components/SvgIcon/SvgIconWrap.d.ts +1 -0
- package/lib/components/SvgIcon/icons/DoubleArrowLeft.d.ts +3 -0
- package/lib/components/SvgIcon/icons/DoubleArrowLeft.js +27 -0
- package/lib/components/SvgIcon/icons/DoubleArrowRight.d.ts +3 -0
- package/lib/components/SvgIcon/icons/DoubleArrowRight.js +26 -0
- package/lib/components/Switch/style/index.js +2 -2
- package/lib/components/Tabs/Tabs.js +1 -1
- package/lib/components/Tabs/style/index.d.ts +1 -1
- package/lib/components/Tag/Group.d.ts +1 -0
- package/lib/components/Tag/Icon.d.ts +1 -0
- package/lib/components/Tag/Tag.d.ts +1 -0
- package/lib/components/Textarea/Textarea.d.ts +1 -0
- package/lib/components/ThemeProvider/ThemeProvider.d.ts +6 -0
- package/lib/components/ThemeProvider/dark.js +6 -249
- package/lib/components/ThemeProvider/designTokens.d.ts +267 -258
- package/lib/components/ThemeProvider/designTokens.js +460 -185
- package/lib/components/ThemeProvider/designTokensDark.d.ts +267 -0
- package/lib/components/ThemeProvider/designTokensDark.js +540 -0
- package/lib/components/ThemeProvider/theme.d.ts +1 -1
- package/lib/components/ThemeProvider/theme.js +3 -3
- package/lib/components/TimePicker/TimePicker.d.ts +1 -1
- package/lib/components/TimePicker/TimePicker.js +11 -13
- package/lib/components/TimePicker/style/index.d.ts +3 -1
- package/lib/components/TimePicker/style/index.js +11 -21
- package/lib/hooks/usePopoverConfig.d.ts +4 -4
- package/lib/libs/dom-align/adjustForViewport.js +55 -0
- package/lib/libs/dom-align/align/align.js +244 -0
- package/lib/libs/dom-align/align/alignElement.js +34 -0
- package/lib/libs/dom-align/align/alignPoint.js +67 -0
- package/lib/libs/dom-align/getAlignOffset.js +38 -0
- package/lib/libs/dom-align/getElFuturePos.js +23 -0
- package/lib/libs/dom-align/getOffsetParent.js +63 -0
- package/lib/libs/dom-align/getRegion.js +38 -0
- package/lib/libs/dom-align/getVisibleRectForElement.js +118 -0
- package/lib/libs/dom-align/index.js +27 -0
- package/lib/libs/dom-align/isAncestorFixed.js +34 -0
- package/lib/libs/dom-align/propertyUtils.js +138 -0
- package/lib/libs/dom-align/utils.js +657 -0
- package/lib/libs/rc-align/index.d.ts +4 -0
- package/lib/libs/rc-align/index.js +15 -3
- package/lib/libs/rc-table/Table.d.ts +5 -0
- package/lib/libs/rc-table/TableCell.d.ts +1 -0
- package/lib/libs/rc-trigger/index.js +14 -0
- package/lib/libs/rc-trigger/src/LazyRenderBox.js +82 -0
- package/lib/libs/rc-trigger/src/Popup.js +383 -0
- package/lib/libs/rc-trigger/src/PopupInner.js +85 -0
- package/lib/libs/rc-trigger/src/index.js +867 -0
- package/lib/libs/rc-trigger/src/mock.js +33 -0
- package/lib/libs/rc-trigger/src/utils.js +48 -0
- package/lib/utils/KeyCode.d.ts +15 -0
- package/lib/{interfaces → utils}/KeyCode.js +0 -0
- package/lib/utils/isSafari.js +2 -1
- package/package.json +4 -6
- package/lib/components/DatePicker/RangePicker.d.ts +0 -17
- package/lib/interfaces/KeyCode.d.ts +0 -15
- package/lib/style/color.js +0 -23
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
|
|
12
|
+
var _utils = _interopRequireDefault(require("../utils"));
|
|
13
|
+
|
|
14
|
+
var _align = _interopRequireDefault(require("./align"));
|
|
15
|
+
|
|
16
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
17
|
+
|
|
18
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* `tgtPoint`: { pageX, pageY } or { clientX, clientY }.
|
|
22
|
+
* If client position provided, will internal convert to page position.
|
|
23
|
+
*/
|
|
24
|
+
function alignPoint(el, tgtPoint, align) {
|
|
25
|
+
var pageX;
|
|
26
|
+
var pageY;
|
|
27
|
+
|
|
28
|
+
var doc = _utils.default.getDocument(el);
|
|
29
|
+
|
|
30
|
+
var win = doc.defaultView || doc.parentWindow;
|
|
31
|
+
|
|
32
|
+
var scrollX = _utils.default.getWindowScrollLeft(win);
|
|
33
|
+
|
|
34
|
+
var scrollY = _utils.default.getWindowScrollTop(win);
|
|
35
|
+
|
|
36
|
+
var viewportWidth = _utils.default.viewportWidth(win);
|
|
37
|
+
|
|
38
|
+
var viewportHeight = _utils.default.viewportHeight(win);
|
|
39
|
+
|
|
40
|
+
if ('pageX' in tgtPoint) {
|
|
41
|
+
pageX = tgtPoint.pageX;
|
|
42
|
+
} else {
|
|
43
|
+
pageX = scrollX + tgtPoint.clientX;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
if ('pageY' in tgtPoint) {
|
|
47
|
+
pageY = tgtPoint.pageY;
|
|
48
|
+
} else {
|
|
49
|
+
pageY = scrollY + tgtPoint.clientY;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
var tgtRegion = {
|
|
53
|
+
left: pageX,
|
|
54
|
+
top: pageY,
|
|
55
|
+
width: 0,
|
|
56
|
+
height: 0
|
|
57
|
+
};
|
|
58
|
+
var pointInView = pageX >= 0 && pageX <= scrollX + viewportWidth && pageY >= 0 && pageY <= scrollY + viewportHeight; // Provide default target point
|
|
59
|
+
|
|
60
|
+
var points = [align.points[0], 'cc'];
|
|
61
|
+
return (0, _align.default)(el, tgtRegion, _objectSpread(_objectSpread({}, align), {}, {
|
|
62
|
+
points: points
|
|
63
|
+
}), pointInView);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
var _default = alignPoint;
|
|
67
|
+
exports.default = _default;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* 获取 node 上的 align 对齐点 相对于页面的坐标
|
|
10
|
+
*/
|
|
11
|
+
function getAlignOffset(region, align) {
|
|
12
|
+
var V = align.charAt(0);
|
|
13
|
+
var H = align.charAt(1);
|
|
14
|
+
var w = region.width;
|
|
15
|
+
var h = region.height;
|
|
16
|
+
var x = region.left;
|
|
17
|
+
var y = region.top;
|
|
18
|
+
|
|
19
|
+
if (V === 'c') {
|
|
20
|
+
y += h / 2;
|
|
21
|
+
} else if (V === 'b') {
|
|
22
|
+
y += h;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
if (H === 'c') {
|
|
26
|
+
x += w / 2;
|
|
27
|
+
} else if (H === 'r') {
|
|
28
|
+
x += w;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
return {
|
|
32
|
+
left: x,
|
|
33
|
+
top: y
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
var _default = getAlignOffset;
|
|
38
|
+
exports.default = _default;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _getAlignOffset = _interopRequireDefault(require("./getAlignOffset"));
|
|
11
|
+
|
|
12
|
+
function getElFuturePos(elRegion, refNodeRegion, points, offset, targetOffset) {
|
|
13
|
+
var p1 = (0, _getAlignOffset.default)(refNodeRegion, points[1]);
|
|
14
|
+
var p2 = (0, _getAlignOffset.default)(elRegion, points[0]);
|
|
15
|
+
var diff = [p2.left - p1.left, p2.top - p1.top];
|
|
16
|
+
return {
|
|
17
|
+
left: Math.round(elRegion.left - diff[0] + offset[0] - targetOffset[0]),
|
|
18
|
+
top: Math.round(elRegion.top - diff[1] + offset[1] - targetOffset[1])
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
var _default = getElFuturePos;
|
|
23
|
+
exports.default = _default;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _utils = _interopRequireDefault(require("./utils"));
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* 得到会导致元素显示不全的祖先元素
|
|
14
|
+
*/
|
|
15
|
+
var getParent = _utils.default.getParent;
|
|
16
|
+
|
|
17
|
+
function getOffsetParent(element) {
|
|
18
|
+
if (_utils.default.isWindow(element) || element.nodeType === 9) {
|
|
19
|
+
return null;
|
|
20
|
+
} // ie 这个也不是完全可行
|
|
21
|
+
|
|
22
|
+
/*
|
|
23
|
+
<div style="width: 50px;height: 100px;overflow: hidden">
|
|
24
|
+
<div style="width: 50px;height: 100px;position: relative;" id="d6">
|
|
25
|
+
元素 6 高 100px 宽 50px<br/>
|
|
26
|
+
</div>
|
|
27
|
+
</div>
|
|
28
|
+
*/
|
|
29
|
+
// element.offsetParent does the right thing in ie7 and below. Return parent with layout!
|
|
30
|
+
// In other browsers it only includes elements with position absolute, relative or
|
|
31
|
+
// fixed, not elements with overflow set to auto or scroll.
|
|
32
|
+
// if (UA.ie && ieMode < 8) {
|
|
33
|
+
// return element.offsetParent;
|
|
34
|
+
// }
|
|
35
|
+
// 统一的 offsetParent 方法
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
var doc = _utils.default.getDocument(element);
|
|
39
|
+
|
|
40
|
+
var body = doc.body;
|
|
41
|
+
var parent;
|
|
42
|
+
|
|
43
|
+
var positionStyle = _utils.default.css(element, 'position');
|
|
44
|
+
|
|
45
|
+
var skipStatic = positionStyle === 'fixed' || positionStyle === 'absolute';
|
|
46
|
+
|
|
47
|
+
if (!skipStatic) {
|
|
48
|
+
return element.nodeName.toLowerCase() === 'html' ? null : getParent(element);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
for (parent = getParent(element); parent && parent !== body && parent.nodeType !== 9; parent = getParent(parent)) {
|
|
52
|
+
positionStyle = _utils.default.css(parent, 'position');
|
|
53
|
+
|
|
54
|
+
if (positionStyle !== 'static') {
|
|
55
|
+
return parent;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
var _default = getOffsetParent;
|
|
63
|
+
exports.default = _default;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _utils = _interopRequireDefault(require("./utils"));
|
|
11
|
+
|
|
12
|
+
function getRegion(node) {
|
|
13
|
+
var offset;
|
|
14
|
+
var w;
|
|
15
|
+
var h;
|
|
16
|
+
|
|
17
|
+
if (!_utils.default.isWindow(node) && node.nodeType !== 9) {
|
|
18
|
+
offset = _utils.default.offset(node);
|
|
19
|
+
w = _utils.default.outerWidth(node);
|
|
20
|
+
h = _utils.default.outerHeight(node);
|
|
21
|
+
} else {
|
|
22
|
+
var win = _utils.default.getWindow(node);
|
|
23
|
+
|
|
24
|
+
offset = {
|
|
25
|
+
left: _utils.default.getWindowScrollLeft(win),
|
|
26
|
+
top: _utils.default.getWindowScrollTop(win)
|
|
27
|
+
};
|
|
28
|
+
w = _utils.default.viewportWidth(win);
|
|
29
|
+
h = _utils.default.viewportHeight(win);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
offset.width = w;
|
|
33
|
+
offset.height = h;
|
|
34
|
+
return offset;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
var _default = getRegion;
|
|
38
|
+
exports.default = _default;
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _utils = _interopRequireDefault(require("./utils"));
|
|
11
|
+
|
|
12
|
+
var _getOffsetParent = _interopRequireDefault(require("./getOffsetParent"));
|
|
13
|
+
|
|
14
|
+
var _isAncestorFixed = _interopRequireDefault(require("./isAncestorFixed"));
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* 获得元素的显示部分的区域
|
|
18
|
+
*/
|
|
19
|
+
function getVisibleRectForElement(element, alwaysByViewport) {
|
|
20
|
+
var visibleRect = {
|
|
21
|
+
left: 0,
|
|
22
|
+
right: Infinity,
|
|
23
|
+
top: 0,
|
|
24
|
+
bottom: Infinity
|
|
25
|
+
};
|
|
26
|
+
var el = (0, _getOffsetParent.default)(element);
|
|
27
|
+
|
|
28
|
+
var doc = _utils.default.getDocument(element);
|
|
29
|
+
|
|
30
|
+
var win = doc.defaultView || doc.parentWindow;
|
|
31
|
+
var body = doc.body;
|
|
32
|
+
var documentElement = doc.documentElement; // Determine the size of the visible rect by climbing the dom accounting for
|
|
33
|
+
// all scrollable containers.
|
|
34
|
+
|
|
35
|
+
while (el) {
|
|
36
|
+
// clientWidth is zero for inline block elements in ie.
|
|
37
|
+
if ((navigator.userAgent.indexOf('MSIE') === -1 || el.clientWidth !== 0) && // body may have overflow set on it, yet we still get the entire
|
|
38
|
+
// viewport. In some browsers, el.offsetParent may be
|
|
39
|
+
// document.documentElement, so check for that too.
|
|
40
|
+
el !== body && el !== documentElement && _utils.default.css(el, 'overflow') !== 'visible') {
|
|
41
|
+
var pos = _utils.default.offset(el); // add border
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
pos.left += el.clientLeft;
|
|
45
|
+
pos.top += el.clientTop;
|
|
46
|
+
visibleRect.top = Math.max(visibleRect.top, pos.top);
|
|
47
|
+
visibleRect.right = Math.min(visibleRect.right, // consider area without scrollBar
|
|
48
|
+
pos.left + el.clientWidth);
|
|
49
|
+
visibleRect.bottom = Math.min(visibleRect.bottom, pos.top + el.clientHeight);
|
|
50
|
+
visibleRect.left = Math.max(visibleRect.left, pos.left);
|
|
51
|
+
} else if (el === body || el === documentElement) {
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
el = (0, _getOffsetParent.default)(el);
|
|
56
|
+
} // Set element position to fixed
|
|
57
|
+
// make sure absolute element itself don't affect it's visible area
|
|
58
|
+
// https://github.com/ant-design/ant-design/issues/7601
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
var originalPosition = null;
|
|
62
|
+
|
|
63
|
+
if (!_utils.default.isWindow(element) && element.nodeType !== 9) {
|
|
64
|
+
originalPosition = element.style.position;
|
|
65
|
+
|
|
66
|
+
var position = _utils.default.css(element, 'position');
|
|
67
|
+
|
|
68
|
+
if (position === 'absolute') {
|
|
69
|
+
element.style.position = 'fixed';
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
var scrollX = _utils.default.getWindowScrollLeft(win);
|
|
74
|
+
|
|
75
|
+
var scrollY = _utils.default.getWindowScrollTop(win);
|
|
76
|
+
|
|
77
|
+
var viewportWidth = _utils.default.viewportWidth(win);
|
|
78
|
+
|
|
79
|
+
var viewportHeight = _utils.default.viewportHeight(win);
|
|
80
|
+
|
|
81
|
+
var documentWidth = documentElement.scrollWidth;
|
|
82
|
+
var documentHeight = documentElement.scrollHeight; // scrollXXX on html is sync with body which means overflow: hidden on body gets wrong scrollXXX.
|
|
83
|
+
// We should cut this ourself.
|
|
84
|
+
|
|
85
|
+
var bodyStyle = window.getComputedStyle(body);
|
|
86
|
+
|
|
87
|
+
if (bodyStyle.overflowX === 'hidden') {
|
|
88
|
+
documentWidth = win.innerWidth;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
if (bodyStyle.overflowY === 'hidden') {
|
|
92
|
+
documentHeight = win.innerHeight;
|
|
93
|
+
} // Reset element position after calculate the visible area
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
if (element.style) {
|
|
97
|
+
element.style.position = originalPosition;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
if (alwaysByViewport || (0, _isAncestorFixed.default)(element)) {
|
|
101
|
+
// Clip by viewport's size.
|
|
102
|
+
visibleRect.left = Math.max(visibleRect.left, scrollX);
|
|
103
|
+
visibleRect.top = Math.max(visibleRect.top, scrollY);
|
|
104
|
+
visibleRect.right = Math.min(visibleRect.right, scrollX + viewportWidth);
|
|
105
|
+
visibleRect.bottom = Math.min(visibleRect.bottom, scrollY + viewportHeight);
|
|
106
|
+
} else {
|
|
107
|
+
// Clip by document's size.
|
|
108
|
+
var maxVisibleWidth = Math.max(documentWidth, scrollX + viewportWidth);
|
|
109
|
+
visibleRect.right = Math.min(visibleRect.right, maxVisibleWidth);
|
|
110
|
+
var maxVisibleHeight = Math.max(documentHeight, scrollY + viewportHeight);
|
|
111
|
+
visibleRect.bottom = Math.min(visibleRect.bottom, maxVisibleHeight);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
return visibleRect.top >= 0 && visibleRect.left >= 0 && visibleRect.bottom > visibleRect.top && visibleRect.right > visibleRect.left ? visibleRect : null;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
var _default = getVisibleRectForElement;
|
|
118
|
+
exports.default = _default;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
Object.defineProperty(exports, "alignElement", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function get() {
|
|
11
|
+
return _alignElement.default;
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
Object.defineProperty(exports, "alignPoint", {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: function get() {
|
|
17
|
+
return _alignPoint.default;
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
exports.default = void 0;
|
|
21
|
+
|
|
22
|
+
var _alignElement = _interopRequireDefault(require("./align/alignElement"));
|
|
23
|
+
|
|
24
|
+
var _alignPoint = _interopRequireDefault(require("./align/alignPoint"));
|
|
25
|
+
|
|
26
|
+
var _default = _alignElement.default;
|
|
27
|
+
exports.default = _default;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = isAncestorFixed;
|
|
9
|
+
|
|
10
|
+
var _utils = _interopRequireDefault(require("./utils"));
|
|
11
|
+
|
|
12
|
+
var getParent = _utils.default.getParent;
|
|
13
|
+
|
|
14
|
+
function isAncestorFixed(element) {
|
|
15
|
+
if (_utils.default.isWindow(element) || element.nodeType === 9) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
var doc = _utils.default.getDocument(element);
|
|
20
|
+
|
|
21
|
+
var body = doc.body;
|
|
22
|
+
var parent = null;
|
|
23
|
+
|
|
24
|
+
for (parent = getParent(element); // 修复元素位于 document.documentElement 下导致崩溃问题
|
|
25
|
+
parent && parent !== body && parent !== doc; parent = getParent(parent)) {
|
|
26
|
+
var positionStyle = _utils.default.css(parent, 'position');
|
|
27
|
+
|
|
28
|
+
if (positionStyle === 'fixed') {
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.getTransformName = getTransformName;
|
|
9
|
+
exports.setTransitionProperty = setTransitionProperty;
|
|
10
|
+
exports.getTransitionProperty = getTransitionProperty;
|
|
11
|
+
exports.getTransformXY = getTransformXY;
|
|
12
|
+
exports.setTransformXY = setTransformXY;
|
|
13
|
+
|
|
14
|
+
var _newArrowCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/newArrowCheck"));
|
|
15
|
+
|
|
16
|
+
var vendorPrefix;
|
|
17
|
+
var jsCssMap = {
|
|
18
|
+
Webkit: '-webkit-',
|
|
19
|
+
Moz: '-moz-',
|
|
20
|
+
// IE did it wrong again ...
|
|
21
|
+
ms: '-ms-',
|
|
22
|
+
O: '-o-'
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
function getVendorPrefix() {
|
|
26
|
+
if (vendorPrefix !== undefined) {
|
|
27
|
+
return vendorPrefix;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
vendorPrefix = '';
|
|
31
|
+
var style = document.createElement('p').style;
|
|
32
|
+
var testProp = 'Transform';
|
|
33
|
+
|
|
34
|
+
for (var key in jsCssMap) {
|
|
35
|
+
if (key + testProp in style) {
|
|
36
|
+
vendorPrefix = key;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return vendorPrefix;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function getTransitionName() {
|
|
44
|
+
return getVendorPrefix() ? "".concat(getVendorPrefix(), "TransitionProperty") : 'transitionProperty';
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
function getTransformName() {
|
|
48
|
+
return getVendorPrefix() ? "".concat(getVendorPrefix(), "Transform") : 'transform';
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function setTransitionProperty(node, value) {
|
|
52
|
+
var name = getTransitionName();
|
|
53
|
+
|
|
54
|
+
if (name) {
|
|
55
|
+
node.style[name] = value;
|
|
56
|
+
|
|
57
|
+
if (name !== 'transitionProperty') {
|
|
58
|
+
node.style.transitionProperty = value;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function setTransform(node, value) {
|
|
64
|
+
var name = getTransformName();
|
|
65
|
+
|
|
66
|
+
if (name) {
|
|
67
|
+
node.style[name] = value;
|
|
68
|
+
|
|
69
|
+
if (name !== 'transform') {
|
|
70
|
+
node.style.transform = value;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
function getTransitionProperty(node) {
|
|
76
|
+
return node.style.transitionProperty || node.style[getTransitionName()];
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
function getTransformXY(node) {
|
|
80
|
+
var style = window.getComputedStyle(node, null);
|
|
81
|
+
var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName());
|
|
82
|
+
|
|
83
|
+
if (transform && transform !== 'none') {
|
|
84
|
+
var matrix = transform.replace(/[^0-9\-.,]/g, '').split(',');
|
|
85
|
+
return {
|
|
86
|
+
x: parseFloat(matrix[12] || matrix[4], 0),
|
|
87
|
+
y: parseFloat(matrix[13] || matrix[5], 0)
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
return {
|
|
92
|
+
x: 0,
|
|
93
|
+
y: 0
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
var matrix2d = /matrix\((.*)\)/;
|
|
98
|
+
var matrix3d = /matrix3d\((.*)\)/;
|
|
99
|
+
|
|
100
|
+
function setTransformXY(node, xy) {
|
|
101
|
+
var _this = this;
|
|
102
|
+
|
|
103
|
+
var style = window.getComputedStyle(node, null);
|
|
104
|
+
var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName());
|
|
105
|
+
|
|
106
|
+
if (transform && transform !== 'none') {
|
|
107
|
+
var arr;
|
|
108
|
+
var match2d = transform.match(matrix2d);
|
|
109
|
+
|
|
110
|
+
if (match2d) {
|
|
111
|
+
match2d = match2d[1];
|
|
112
|
+
arr = match2d.split(',').map(function (item) {
|
|
113
|
+
(0, _newArrowCheck2.default)(this, _this);
|
|
114
|
+
return parseFloat(item, 10);
|
|
115
|
+
}.bind(this));
|
|
116
|
+
arr[4] = xy.x;
|
|
117
|
+
arr[5] = xy.y;
|
|
118
|
+
setTransform(node, "matrix(".concat(arr.join(','), ")"));
|
|
119
|
+
} else {
|
|
120
|
+
var match3d = transform.match(matrix3d);
|
|
121
|
+
|
|
122
|
+
if (match3d) {
|
|
123
|
+
match3d = match3d[1];
|
|
124
|
+
arr = match3d.split(',').map(function (item) {
|
|
125
|
+
(0, _newArrowCheck2.default)(this, _this);
|
|
126
|
+
return parseFloat(item, 10);
|
|
127
|
+
}.bind(this));
|
|
128
|
+
arr[12] = xy.x;
|
|
129
|
+
arr[13] = xy.y;
|
|
130
|
+
setTransform(node, "matrix3d(".concat(arr.join(','), ")"));
|
|
131
|
+
} else {
|
|
132
|
+
setTransform(node, "translateX(".concat(xy.x || 0, "px) translateY(").concat(xy.y || 0, "px) translateZ(0)"));
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
} else {
|
|
136
|
+
setTransform(node, "translateX(".concat(xy.x, "px) translateY(").concat(xy.y, "px) translateZ(0)"));
|
|
137
|
+
}
|
|
138
|
+
}
|