shineout 3.9.2-beta.1 → 3.9.2-beta.2
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/cjs/index.js +1 -1
- package/dist/shineout.js +86 -22
- package/dist/shineout.js.map +1 -1
- package/dist/shineout.min.js +1 -1
- package/dist/shineout.min.js.map +1 -1
- package/esm/index.js +1 -1
- package/package.json +5 -5
package/cjs/index.js
CHANGED
|
@@ -522,5 +522,5 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
522
522
|
// 此文件由脚本自动生成,请勿直接修改。
|
|
523
523
|
// This file was generated automatically by a script. Please do not modify it directly.
|
|
524
524
|
var _default = exports.default = {
|
|
525
|
-
version: '3.9.2-beta.
|
|
525
|
+
version: '3.9.2-beta.2'
|
|
526
526
|
};
|
package/dist/shineout.js
CHANGED
|
@@ -12400,7 +12400,7 @@ var handleStyle = function handleStyle(style) {
|
|
|
12400
12400
|
};
|
|
12401
12401
|
/* harmony default export */ var jss_style_handleStyle = (handleStyle);
|
|
12402
12402
|
;// CONCATENATED MODULE: ../shineout-style/src/version.ts
|
|
12403
|
-
/* harmony default export */ var version = ('3.9.2-beta.
|
|
12403
|
+
/* harmony default export */ var version = ('3.9.2-beta.2');
|
|
12404
12404
|
;// CONCATENATED MODULE: ../shineout-style/src/jss-style/index.tsx
|
|
12405
12405
|
|
|
12406
12406
|
|
|
@@ -21325,17 +21325,21 @@ var menuStyle = {
|
|
|
21325
21325
|
flexDirection: 'row'
|
|
21326
21326
|
},
|
|
21327
21327
|
wrapperHasOpen: {},
|
|
21328
|
+
wrapperInlineAnimate: {},
|
|
21328
21329
|
children: {
|
|
21329
21330
|
padding: '0',
|
|
21330
21331
|
margin: '0',
|
|
21331
|
-
display: 'none',
|
|
21332
21332
|
minWidth: '100%',
|
|
21333
21333
|
whiteSpace: 'nowrap',
|
|
21334
|
-
'$
|
|
21334
|
+
'$childrenShow&': {
|
|
21335
21335
|
display: 'block'
|
|
21336
|
+
},
|
|
21337
|
+
'$childrenHidden&': {
|
|
21338
|
+
display: 'none'
|
|
21336
21339
|
}
|
|
21337
21340
|
},
|
|
21338
21341
|
childrenShow: {},
|
|
21342
|
+
childrenHidden: {},
|
|
21339
21343
|
childrenUp: {},
|
|
21340
21344
|
item: {
|
|
21341
21345
|
listStyle: 'none',
|
|
@@ -21344,6 +21348,7 @@ var menuStyle = {
|
|
|
21344
21348
|
itemActive: {},
|
|
21345
21349
|
itemDisabled: {},
|
|
21346
21350
|
itemOpen: {},
|
|
21351
|
+
itemClosing: {},
|
|
21347
21352
|
itemInPath: {},
|
|
21348
21353
|
itemHasChildren: {},
|
|
21349
21354
|
childrenHasExpand: {},
|
|
@@ -21629,8 +21634,14 @@ var menuStyle = {
|
|
|
21629
21634
|
alignItems: 'center',
|
|
21630
21635
|
display: 'flex',
|
|
21631
21636
|
minHeight: "calc(".concat(src.lineHeightDynamic, " + ").concat(src.menuTitlePaddingY, "*2)"),
|
|
21637
|
+
'$wrapperInlineAnimate$wrapper:not($wrapperVertical) &': {
|
|
21638
|
+
transition: 'transform 240ms cubic-bezier(.2,0,0,1)'
|
|
21639
|
+
},
|
|
21632
21640
|
'$wrapper:not($wrapperVertical) $itemOpen > $itemContent &': {
|
|
21633
21641
|
transform: 'rotate(180deg)'
|
|
21642
|
+
},
|
|
21643
|
+
'$wrapper:not($wrapperVertical) $itemClosing > $itemContent &': {
|
|
21644
|
+
transform: 'rotate(0deg)'
|
|
21634
21645
|
}
|
|
21635
21646
|
}
|
|
21636
21647
|
},
|
|
@@ -50672,7 +50683,7 @@ var method = function method(type, jssStyle) {
|
|
|
50672
50683
|
});
|
|
50673
50684
|
if (!root) return;
|
|
50674
50685
|
var destroyModal = function destroyModal() {
|
|
50675
|
-
innerClose();
|
|
50686
|
+
if (innerClose) innerClose();
|
|
50676
50687
|
setTimeout(function () {
|
|
50677
50688
|
destroy(root);
|
|
50678
50689
|
}, 300);
|
|
@@ -60510,16 +60521,18 @@ var useMenuItem = function useMenuItem(props) {
|
|
|
60510
60521
|
/* harmony default export */ var use_menu_item = (useMenuItem);
|
|
60511
60522
|
;// CONCATENATED MODULE: ../hooks/src/common/use-collapse-animation/use-collapse-animation.ts
|
|
60512
60523
|
|
|
60524
|
+
|
|
60513
60525
|
/**
|
|
60514
60526
|
* 为元素添加折叠/展开动画的 Hook
|
|
60515
60527
|
*
|
|
60516
60528
|
* @example
|
|
60517
60529
|
* ```tsx
|
|
60518
60530
|
* const ref = useRef<HTMLDivElement>(null);
|
|
60519
|
-
* useCollapseAnimation(ref, { isOpen: true });
|
|
60531
|
+
* const { shouldHide, shouldKeepOpen } = useCollapseAnimation(ref, { isOpen: true });
|
|
60520
60532
|
*
|
|
60521
|
-
* return <div ref={ref}>Content</div>;
|
|
60533
|
+
* return <div ref={ref} className={shouldHide ? 'hide' : ''}>Content</div>;
|
|
60522
60534
|
* ```
|
|
60535
|
+
* @returns 动画状态对象
|
|
60523
60536
|
*/
|
|
60524
60537
|
function useCollapseAnimation(elementRef, options) {
|
|
60525
60538
|
var isOpen = options.isOpen,
|
|
@@ -60528,8 +60541,17 @@ function useCollapseAnimation(elementRef, options) {
|
|
|
60528
60541
|
_options$disabled = options.disabled,
|
|
60529
60542
|
disabled = _options$disabled === void 0 ? false : _options$disabled,
|
|
60530
60543
|
_options$timingFuncti = options.timingFunction,
|
|
60531
|
-
timingFunction = _options$timingFuncti === void 0 ? 'cubic-bezier(.2,0,0,1)' : _options$timingFuncti
|
|
60544
|
+
timingFunction = _options$timingFuncti === void 0 ? 'cubic-bezier(.2,0,0,1)' : _options$timingFuncti,
|
|
60545
|
+
parentOpenClassName = options.parentOpenClassName;
|
|
60532
60546
|
var isFirstRenderRef = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useRef)(true);
|
|
60547
|
+
var _useState = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(!isOpen),
|
|
60548
|
+
_useState2 = slicedToArray_default()(_useState, 2),
|
|
60549
|
+
shouldHide = _useState2[0],
|
|
60550
|
+
setShouldHide = _useState2[1];
|
|
60551
|
+
var _useState3 = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(false),
|
|
60552
|
+
_useState4 = slicedToArray_default()(_useState3, 2),
|
|
60553
|
+
isAnimating = _useState4[0],
|
|
60554
|
+
setIsAnimating = _useState4[1];
|
|
60533
60555
|
|
|
60534
60556
|
// 当 disabled 状态变化时,重置首次渲染标记
|
|
60535
60557
|
(0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
|
|
@@ -60537,6 +60559,8 @@ function useCollapseAnimation(elementRef, options) {
|
|
|
60537
60559
|
isFirstRenderRef.current = true;
|
|
60538
60560
|
}
|
|
60539
60561
|
}, [disabled]);
|
|
60562
|
+
|
|
60563
|
+
// 使用 useLayoutEffect 确保动画状态在 DOM 更新前同步设置
|
|
60540
60564
|
(0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
|
|
60541
60565
|
if (!elementRef.current) return;
|
|
60542
60566
|
var el = elementRef.current;
|
|
@@ -60551,9 +60575,6 @@ function useCollapseAnimation(elementRef, options) {
|
|
|
60551
60575
|
}
|
|
60552
60576
|
var timer = null;
|
|
60553
60577
|
|
|
60554
|
-
// 设置 display: block,让元素始终可见,由高度控制折叠
|
|
60555
|
-
el.style.display = 'block';
|
|
60556
|
-
|
|
60557
60578
|
// 首次渲染时,直接设置初始状态,不做动画
|
|
60558
60579
|
if (isFirstRenderRef.current) {
|
|
60559
60580
|
isFirstRenderRef.current = false;
|
|
@@ -60564,9 +60585,13 @@ function useCollapseAnimation(elementRef, options) {
|
|
|
60564
60585
|
return;
|
|
60565
60586
|
}
|
|
60566
60587
|
if (isOpen) {
|
|
60567
|
-
// 展开动画
|
|
60588
|
+
// 展开动画 - 先显示元素
|
|
60589
|
+
setShouldHide(false);
|
|
60590
|
+
setIsAnimating(true);
|
|
60591
|
+
el.style.display = 'block';
|
|
60568
60592
|
el.style.height = '0px';
|
|
60569
60593
|
el.style.overflow = 'hidden';
|
|
60594
|
+
el.style.opacity = '0';
|
|
60570
60595
|
|
|
60571
60596
|
// 强制重绘
|
|
60572
60597
|
void el.offsetHeight;
|
|
@@ -60576,8 +60601,9 @@ function useCollapseAnimation(elementRef, options) {
|
|
|
60576
60601
|
|
|
60577
60602
|
// 启动动画
|
|
60578
60603
|
requestAnimationFrame(function () {
|
|
60579
|
-
el.style.transition = "height ".concat(duration, "ms ").concat(timingFunction);
|
|
60604
|
+
el.style.transition = "height ".concat(duration, "ms ").concat(timingFunction, ", opacity ").concat(duration, "ms ").concat(timingFunction);
|
|
60580
60605
|
el.style.height = "".concat(scrollHeight, "px");
|
|
60606
|
+
el.style.opacity = '1';
|
|
60581
60607
|
|
|
60582
60608
|
// 动画结束后恢复 auto
|
|
60583
60609
|
timer = setTimeout(function () {
|
|
@@ -60585,20 +60611,45 @@ function useCollapseAnimation(elementRef, options) {
|
|
|
60585
60611
|
el.style.height = '';
|
|
60586
60612
|
el.style.overflow = '';
|
|
60587
60613
|
el.style.transition = '';
|
|
60614
|
+
el.style.opacity = '';
|
|
60615
|
+
setIsAnimating(false);
|
|
60588
60616
|
}
|
|
60589
60617
|
}, duration);
|
|
60590
60618
|
});
|
|
60591
60619
|
} else {
|
|
60592
60620
|
// 收起动画
|
|
60621
|
+
setIsAnimating(true);
|
|
60622
|
+
|
|
60623
|
+
// 临时添加父元素的 open class,确保用户依赖此 class 的布局样式在获取高度时生效
|
|
60624
|
+
var parentElement = el.parentElement;
|
|
60625
|
+
var needTempClass = parentOpenClassName && parentElement;
|
|
60626
|
+
if (needTempClass) {
|
|
60627
|
+
parentElement.classList.add(parentOpenClassName);
|
|
60628
|
+
}
|
|
60629
|
+
|
|
60630
|
+
// 强制重绘,确保临时 class 生效
|
|
60631
|
+
void el.offsetHeight;
|
|
60593
60632
|
var _scrollHeight = el.scrollHeight;
|
|
60594
60633
|
el.style.height = "".concat(_scrollHeight, "px");
|
|
60595
60634
|
el.style.overflow = 'hidden';
|
|
60635
|
+
el.style.opacity = '1';
|
|
60596
60636
|
|
|
60597
60637
|
// 强制重绘
|
|
60598
60638
|
void el.offsetHeight;
|
|
60599
60639
|
requestAnimationFrame(function () {
|
|
60600
|
-
el.style.transition = "height ".concat(duration, "ms ").concat(timingFunction);
|
|
60640
|
+
el.style.transition = "height ".concat(duration, "ms ").concat(timingFunction, ", opacity ").concat(duration, "ms ").concat(timingFunction);
|
|
60601
60641
|
el.style.height = '0px';
|
|
60642
|
+
el.style.opacity = '0';
|
|
60643
|
+
|
|
60644
|
+
// 动画结束后隐藏元素
|
|
60645
|
+
timer = setTimeout(function () {
|
|
60646
|
+
// 移除临时 class
|
|
60647
|
+
if (needTempClass) {
|
|
60648
|
+
parentElement.classList.remove(parentOpenClassName);
|
|
60649
|
+
}
|
|
60650
|
+
setShouldHide(true);
|
|
60651
|
+
setIsAnimating(false);
|
|
60652
|
+
}, duration);
|
|
60602
60653
|
});
|
|
60603
60654
|
}
|
|
60604
60655
|
|
|
@@ -60609,6 +60660,16 @@ function useCollapseAnimation(elementRef, options) {
|
|
|
60609
60660
|
}
|
|
60610
60661
|
};
|
|
60611
60662
|
}, [isOpen, disabled, duration, timingFunction]);
|
|
60663
|
+
if (disabled) {
|
|
60664
|
+
return {
|
|
60665
|
+
shouldHide: !isOpen,
|
|
60666
|
+
shouldKeepOpen: false
|
|
60667
|
+
};
|
|
60668
|
+
}
|
|
60669
|
+
return {
|
|
60670
|
+
shouldHide: shouldHide,
|
|
60671
|
+
shouldKeepOpen: isAnimating && !isOpen
|
|
60672
|
+
};
|
|
60612
60673
|
}
|
|
60613
60674
|
;// CONCATENATED MODULE: ../base/src/menu/item.tsx
|
|
60614
60675
|
|
|
@@ -60682,10 +60743,13 @@ var MenuItem = function MenuItem(props) {
|
|
|
60682
60743
|
handleMouseLeave = _useMenuItem.handleMouseLeave;
|
|
60683
60744
|
|
|
60684
60745
|
// 为 inline 模式添加折叠动画(仅当 inlineAnimate 为 true 时启用)
|
|
60685
|
-
useCollapseAnimation(childrenRef, {
|
|
60686
|
-
|
|
60687
|
-
|
|
60688
|
-
|
|
60746
|
+
var _useCollapseAnimation = useCollapseAnimation(childrenRef, {
|
|
60747
|
+
isOpen: isOpen,
|
|
60748
|
+
disabled: !props.inlineAnimate || shoudPop || !children.length,
|
|
60749
|
+
parentOpenClassName: classes === null || classes === void 0 ? void 0 : classes.itemOpen
|
|
60750
|
+
}),
|
|
60751
|
+
shouldHideChildren = _useCollapseAnimation.shouldHide,
|
|
60752
|
+
shouldKeepOpen = _useCollapseAnimation.shouldKeepOpen;
|
|
60689
60753
|
var renderChildren = function renderChildren() {
|
|
60690
60754
|
var _items;
|
|
60691
60755
|
var items = children;
|
|
@@ -60700,8 +60764,8 @@ var MenuItem = function MenuItem(props) {
|
|
|
60700
60764
|
}
|
|
60701
60765
|
var content = function content(close) {
|
|
60702
60766
|
return /*#__PURE__*/(0,jsx_runtime.jsx)("ul", {
|
|
60703
|
-
ref:
|
|
60704
|
-
className: classnames_default()(shoudPop && (classes === null || classes === void 0 ? void 0 : classes.childrenShow), classes === null || classes === void 0 ? void 0 : classes.children, isUp && (classes === null || classes === void 0 ? void 0 : classes.childrenUp), hasExpandAbleChildren && (classes === null || classes === void 0 ? void 0 : classes.childrenHasExpand))
|
|
60767
|
+
ref: childrenRef,
|
|
60768
|
+
className: classnames_default()(shoudPop && (classes === null || classes === void 0 ? void 0 : classes.childrenShow), classes === null || classes === void 0 ? void 0 : classes.children, isUp && (classes === null || classes === void 0 ? void 0 : classes.childrenUp), hasExpandAbleChildren && (classes === null || classes === void 0 ? void 0 : classes.childrenHasExpand), shouldHideChildren && (classes === null || classes === void 0 ? void 0 : classes.childrenHidden))
|
|
60705
60769
|
// 子菜单点击弹出
|
|
60706
60770
|
,
|
|
60707
60771
|
onClick: close,
|
|
@@ -60838,7 +60902,7 @@ var MenuItem = function MenuItem(props) {
|
|
|
60838
60902
|
}
|
|
60839
60903
|
};
|
|
60840
60904
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)("li", {
|
|
60841
|
-
className: classnames_default()(classes === null || classes === void 0 ? void 0 : classes.item, isDisabled && (classes === null || classes === void 0 ? void 0 : classes.itemDisabled), isInPath && (classes === null || classes === void 0 ? void 0 : classes.itemInPath), (isOpen || popOpen) && (classes === null || classes === void 0 ? void 0 : classes.itemOpen), isChecked && (classes === null || classes === void 0 ? void 0 : classes.itemActive), expandAble && (classes === null || classes === void 0 ? void 0 : classes.itemHasChildren)),
|
|
60905
|
+
className: classnames_default()(classes === null || classes === void 0 ? void 0 : classes.item, isDisabled && (classes === null || classes === void 0 ? void 0 : classes.itemDisabled), isInPath && (classes === null || classes === void 0 ? void 0 : classes.itemInPath), (isOpen || popOpen || shouldKeepOpen) && (classes === null || classes === void 0 ? void 0 : classes.itemOpen), shouldKeepOpen && (classes === null || classes === void 0 ? void 0 : classes.itemClosing), isChecked && (classes === null || classes === void 0 ? void 0 : classes.itemActive), expandAble && (classes === null || classes === void 0 ? void 0 : classes.itemHasChildren)),
|
|
60842
60906
|
onMouseEnter: handleMouseEnter,
|
|
60843
60907
|
onMouseLeave: handleMouseLeave,
|
|
60844
60908
|
dir: config.direction,
|
|
@@ -60927,7 +60991,7 @@ var Menu = function Menu(props) {
|
|
|
60927
60991
|
}
|
|
60928
60992
|
}, [data, openKeys]);
|
|
60929
60993
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", objectSpread2_default()(objectSpread2_default()({
|
|
60930
|
-
className: classnames_default()(props.className, classes === null || classes === void 0 ? void 0 : classes.rootClass, classes === null || classes === void 0 ? void 0 : classes.wrapper, mode === 'inline' && (classes === null || classes === void 0 ? void 0 : classes.wrapperInline), (mode === 'vertical' || mode === 'vertical-auto') && (classes === null || classes === void 0 ? void 0 : classes.wrapperVertical), mode === 'horizontal' && (classes === null || classes === void 0 ? void 0 : classes.wrapperHorizontal), hasOpen && (classes === null || classes === void 0 ? void 0 : classes.wrapperHasOpen), theme === 'dark' ? classes === null || classes === void 0 ? void 0 : classes.wrapperDark : classes === null || classes === void 0 ? void 0 : classes.wrapperLight, collapse && (classes === null || classes === void 0 ? void 0 : classes.wrapperCollapse), context.inTransition && (classes === null || classes === void 0 ? void 0 : classes.wrapperInTransition))
|
|
60994
|
+
className: classnames_default()(props.className, classes === null || classes === void 0 ? void 0 : classes.rootClass, classes === null || classes === void 0 ? void 0 : classes.wrapper, mode === 'inline' && (classes === null || classes === void 0 ? void 0 : classes.wrapperInline), (mode === 'vertical' || mode === 'vertical-auto') && (classes === null || classes === void 0 ? void 0 : classes.wrapperVertical), mode === 'horizontal' && (classes === null || classes === void 0 ? void 0 : classes.wrapperHorizontal), hasOpen && (classes === null || classes === void 0 ? void 0 : classes.wrapperHasOpen), theme === 'dark' ? classes === null || classes === void 0 ? void 0 : classes.wrapperDark : classes === null || classes === void 0 ? void 0 : classes.wrapperLight, collapse && (classes === null || classes === void 0 ? void 0 : classes.wrapperCollapse), context.inTransition && (classes === null || classes === void 0 ? void 0 : classes.wrapperInTransition), props.inlineAnimate && (classes === null || classes === void 0 ? void 0 : classes.wrapperInlineAnimate))
|
|
60931
60995
|
}, getDataAttribute({
|
|
60932
60996
|
theme: theme,
|
|
60933
60997
|
mode: isVertical ? 'vertical' : mode
|
|
@@ -74461,7 +74525,7 @@ var upload_interface = __webpack_require__(8821);
|
|
|
74461
74525
|
|
|
74462
74526
|
|
|
74463
74527
|
/* harmony default export */ var src_0 = ({
|
|
74464
|
-
version: '3.9.2-beta.
|
|
74528
|
+
version: '3.9.2-beta.2'
|
|
74465
74529
|
});
|
|
74466
74530
|
}();
|
|
74467
74531
|
/******/ return __webpack_exports__;
|