shineout 3.9.2-beta.1 → 3.9.2-beta.3
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 +90 -25
- 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.3'
|
|
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.3');
|
|
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
|
},
|
|
@@ -30747,9 +30758,10 @@ var usePopup = function usePopup(props) {
|
|
|
30747
30758
|
var changeOpen = function changeOpen(openIn, delay) {
|
|
30748
30759
|
if (context.triggerTimer) clearTimeout(context.triggerTimer);
|
|
30749
30760
|
context.triggerTimer = setTimeout(function () {
|
|
30750
|
-
|
|
30751
|
-
|
|
30752
|
-
|
|
30761
|
+
if (open !== openIn) {
|
|
30762
|
+
var _props$onCollapse;
|
|
30763
|
+
(_props$onCollapse = props.onCollapse) === null || _props$onCollapse === void 0 || _props$onCollapse.call(props, openIn);
|
|
30764
|
+
}
|
|
30753
30765
|
if (props.open === undefined) {
|
|
30754
30766
|
setOpenState(openIn);
|
|
30755
30767
|
}
|
|
@@ -50672,7 +50684,7 @@ var method = function method(type, jssStyle) {
|
|
|
50672
50684
|
});
|
|
50673
50685
|
if (!root) return;
|
|
50674
50686
|
var destroyModal = function destroyModal() {
|
|
50675
|
-
innerClose();
|
|
50687
|
+
if (innerClose) innerClose();
|
|
50676
50688
|
setTimeout(function () {
|
|
50677
50689
|
destroy(root);
|
|
50678
50690
|
}, 300);
|
|
@@ -60510,16 +60522,18 @@ var useMenuItem = function useMenuItem(props) {
|
|
|
60510
60522
|
/* harmony default export */ var use_menu_item = (useMenuItem);
|
|
60511
60523
|
;// CONCATENATED MODULE: ../hooks/src/common/use-collapse-animation/use-collapse-animation.ts
|
|
60512
60524
|
|
|
60525
|
+
|
|
60513
60526
|
/**
|
|
60514
60527
|
* 为元素添加折叠/展开动画的 Hook
|
|
60515
60528
|
*
|
|
60516
60529
|
* @example
|
|
60517
60530
|
* ```tsx
|
|
60518
60531
|
* const ref = useRef<HTMLDivElement>(null);
|
|
60519
|
-
* useCollapseAnimation(ref, { isOpen: true });
|
|
60532
|
+
* const { shouldHide, shouldKeepOpen } = useCollapseAnimation(ref, { isOpen: true });
|
|
60520
60533
|
*
|
|
60521
|
-
* return <div ref={ref}>Content</div>;
|
|
60534
|
+
* return <div ref={ref} className={shouldHide ? 'hide' : ''}>Content</div>;
|
|
60522
60535
|
* ```
|
|
60536
|
+
* @returns 动画状态对象
|
|
60523
60537
|
*/
|
|
60524
60538
|
function useCollapseAnimation(elementRef, options) {
|
|
60525
60539
|
var isOpen = options.isOpen,
|
|
@@ -60528,8 +60542,17 @@ function useCollapseAnimation(elementRef, options) {
|
|
|
60528
60542
|
_options$disabled = options.disabled,
|
|
60529
60543
|
disabled = _options$disabled === void 0 ? false : _options$disabled,
|
|
60530
60544
|
_options$timingFuncti = options.timingFunction,
|
|
60531
|
-
timingFunction = _options$timingFuncti === void 0 ? 'cubic-bezier(.2,0,0,1)' : _options$timingFuncti
|
|
60545
|
+
timingFunction = _options$timingFuncti === void 0 ? 'cubic-bezier(.2,0,0,1)' : _options$timingFuncti,
|
|
60546
|
+
parentOpenClassName = options.parentOpenClassName;
|
|
60532
60547
|
var isFirstRenderRef = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useRef)(true);
|
|
60548
|
+
var _useState = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(!isOpen),
|
|
60549
|
+
_useState2 = slicedToArray_default()(_useState, 2),
|
|
60550
|
+
shouldHide = _useState2[0],
|
|
60551
|
+
setShouldHide = _useState2[1];
|
|
60552
|
+
var _useState3 = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(false),
|
|
60553
|
+
_useState4 = slicedToArray_default()(_useState3, 2),
|
|
60554
|
+
isAnimating = _useState4[0],
|
|
60555
|
+
setIsAnimating = _useState4[1];
|
|
60533
60556
|
|
|
60534
60557
|
// 当 disabled 状态变化时,重置首次渲染标记
|
|
60535
60558
|
(0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
|
|
@@ -60537,6 +60560,8 @@ function useCollapseAnimation(elementRef, options) {
|
|
|
60537
60560
|
isFirstRenderRef.current = true;
|
|
60538
60561
|
}
|
|
60539
60562
|
}, [disabled]);
|
|
60563
|
+
|
|
60564
|
+
// 使用 useLayoutEffect 确保动画状态在 DOM 更新前同步设置
|
|
60540
60565
|
(0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
|
|
60541
60566
|
if (!elementRef.current) return;
|
|
60542
60567
|
var el = elementRef.current;
|
|
@@ -60551,9 +60576,6 @@ function useCollapseAnimation(elementRef, options) {
|
|
|
60551
60576
|
}
|
|
60552
60577
|
var timer = null;
|
|
60553
60578
|
|
|
60554
|
-
// 设置 display: block,让元素始终可见,由高度控制折叠
|
|
60555
|
-
el.style.display = 'block';
|
|
60556
|
-
|
|
60557
60579
|
// 首次渲染时,直接设置初始状态,不做动画
|
|
60558
60580
|
if (isFirstRenderRef.current) {
|
|
60559
60581
|
isFirstRenderRef.current = false;
|
|
@@ -60564,9 +60586,13 @@ function useCollapseAnimation(elementRef, options) {
|
|
|
60564
60586
|
return;
|
|
60565
60587
|
}
|
|
60566
60588
|
if (isOpen) {
|
|
60567
|
-
// 展开动画
|
|
60589
|
+
// 展开动画 - 先显示元素
|
|
60590
|
+
setShouldHide(false);
|
|
60591
|
+
setIsAnimating(true);
|
|
60592
|
+
el.style.display = 'block';
|
|
60568
60593
|
el.style.height = '0px';
|
|
60569
60594
|
el.style.overflow = 'hidden';
|
|
60595
|
+
el.style.opacity = '0';
|
|
60570
60596
|
|
|
60571
60597
|
// 强制重绘
|
|
60572
60598
|
void el.offsetHeight;
|
|
@@ -60576,8 +60602,9 @@ function useCollapseAnimation(elementRef, options) {
|
|
|
60576
60602
|
|
|
60577
60603
|
// 启动动画
|
|
60578
60604
|
requestAnimationFrame(function () {
|
|
60579
|
-
el.style.transition = "height ".concat(duration, "ms ").concat(timingFunction);
|
|
60605
|
+
el.style.transition = "height ".concat(duration, "ms ").concat(timingFunction, ", opacity ").concat(duration, "ms ").concat(timingFunction);
|
|
60580
60606
|
el.style.height = "".concat(scrollHeight, "px");
|
|
60607
|
+
el.style.opacity = '1';
|
|
60581
60608
|
|
|
60582
60609
|
// 动画结束后恢复 auto
|
|
60583
60610
|
timer = setTimeout(function () {
|
|
@@ -60585,20 +60612,45 @@ function useCollapseAnimation(elementRef, options) {
|
|
|
60585
60612
|
el.style.height = '';
|
|
60586
60613
|
el.style.overflow = '';
|
|
60587
60614
|
el.style.transition = '';
|
|
60615
|
+
el.style.opacity = '';
|
|
60616
|
+
setIsAnimating(false);
|
|
60588
60617
|
}
|
|
60589
60618
|
}, duration);
|
|
60590
60619
|
});
|
|
60591
60620
|
} else {
|
|
60592
60621
|
// 收起动画
|
|
60622
|
+
setIsAnimating(true);
|
|
60623
|
+
|
|
60624
|
+
// 临时添加父元素的 open class,确保用户依赖此 class 的布局样式在获取高度时生效
|
|
60625
|
+
var parentElement = el.parentElement;
|
|
60626
|
+
var needTempClass = parentOpenClassName && parentElement;
|
|
60627
|
+
if (needTempClass) {
|
|
60628
|
+
parentElement.classList.add(parentOpenClassName);
|
|
60629
|
+
}
|
|
60630
|
+
|
|
60631
|
+
// 强制重绘,确保临时 class 生效
|
|
60632
|
+
void el.offsetHeight;
|
|
60593
60633
|
var _scrollHeight = el.scrollHeight;
|
|
60594
60634
|
el.style.height = "".concat(_scrollHeight, "px");
|
|
60595
60635
|
el.style.overflow = 'hidden';
|
|
60636
|
+
el.style.opacity = '1';
|
|
60596
60637
|
|
|
60597
60638
|
// 强制重绘
|
|
60598
60639
|
void el.offsetHeight;
|
|
60599
60640
|
requestAnimationFrame(function () {
|
|
60600
|
-
el.style.transition = "height ".concat(duration, "ms ").concat(timingFunction);
|
|
60641
|
+
el.style.transition = "height ".concat(duration, "ms ").concat(timingFunction, ", opacity ").concat(duration, "ms ").concat(timingFunction);
|
|
60601
60642
|
el.style.height = '0px';
|
|
60643
|
+
el.style.opacity = '0';
|
|
60644
|
+
|
|
60645
|
+
// 动画结束后隐藏元素
|
|
60646
|
+
timer = setTimeout(function () {
|
|
60647
|
+
// 移除临时 class
|
|
60648
|
+
if (needTempClass) {
|
|
60649
|
+
parentElement.classList.remove(parentOpenClassName);
|
|
60650
|
+
}
|
|
60651
|
+
setShouldHide(true);
|
|
60652
|
+
setIsAnimating(false);
|
|
60653
|
+
}, duration);
|
|
60602
60654
|
});
|
|
60603
60655
|
}
|
|
60604
60656
|
|
|
@@ -60609,6 +60661,16 @@ function useCollapseAnimation(elementRef, options) {
|
|
|
60609
60661
|
}
|
|
60610
60662
|
};
|
|
60611
60663
|
}, [isOpen, disabled, duration, timingFunction]);
|
|
60664
|
+
if (disabled) {
|
|
60665
|
+
return {
|
|
60666
|
+
shouldHide: !isOpen,
|
|
60667
|
+
shouldKeepOpen: false
|
|
60668
|
+
};
|
|
60669
|
+
}
|
|
60670
|
+
return {
|
|
60671
|
+
shouldHide: shouldHide,
|
|
60672
|
+
shouldKeepOpen: isAnimating && !isOpen
|
|
60673
|
+
};
|
|
60612
60674
|
}
|
|
60613
60675
|
;// CONCATENATED MODULE: ../base/src/menu/item.tsx
|
|
60614
60676
|
|
|
@@ -60682,10 +60744,13 @@ var MenuItem = function MenuItem(props) {
|
|
|
60682
60744
|
handleMouseLeave = _useMenuItem.handleMouseLeave;
|
|
60683
60745
|
|
|
60684
60746
|
// 为 inline 模式添加折叠动画(仅当 inlineAnimate 为 true 时启用)
|
|
60685
|
-
useCollapseAnimation(childrenRef, {
|
|
60686
|
-
|
|
60687
|
-
|
|
60688
|
-
|
|
60747
|
+
var _useCollapseAnimation = useCollapseAnimation(childrenRef, {
|
|
60748
|
+
isOpen: isOpen,
|
|
60749
|
+
disabled: !props.inlineAnimate || shoudPop || !children.length,
|
|
60750
|
+
parentOpenClassName: classes === null || classes === void 0 ? void 0 : classes.itemOpen
|
|
60751
|
+
}),
|
|
60752
|
+
shouldHideChildren = _useCollapseAnimation.shouldHide,
|
|
60753
|
+
shouldKeepOpen = _useCollapseAnimation.shouldKeepOpen;
|
|
60689
60754
|
var renderChildren = function renderChildren() {
|
|
60690
60755
|
var _items;
|
|
60691
60756
|
var items = children;
|
|
@@ -60700,8 +60765,8 @@ var MenuItem = function MenuItem(props) {
|
|
|
60700
60765
|
}
|
|
60701
60766
|
var content = function content(close) {
|
|
60702
60767
|
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))
|
|
60768
|
+
ref: childrenRef,
|
|
60769
|
+
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
60770
|
// 子菜单点击弹出
|
|
60706
60771
|
,
|
|
60707
60772
|
onClick: close,
|
|
@@ -60838,7 +60903,7 @@ var MenuItem = function MenuItem(props) {
|
|
|
60838
60903
|
}
|
|
60839
60904
|
};
|
|
60840
60905
|
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)),
|
|
60906
|
+
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
60907
|
onMouseEnter: handleMouseEnter,
|
|
60843
60908
|
onMouseLeave: handleMouseLeave,
|
|
60844
60909
|
dir: config.direction,
|
|
@@ -60927,7 +60992,7 @@ var Menu = function Menu(props) {
|
|
|
60927
60992
|
}
|
|
60928
60993
|
}, [data, openKeys]);
|
|
60929
60994
|
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))
|
|
60995
|
+
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
60996
|
}, getDataAttribute({
|
|
60932
60997
|
theme: theme,
|
|
60933
60998
|
mode: isVertical ? 'vertical' : mode
|
|
@@ -74461,7 +74526,7 @@ var upload_interface = __webpack_require__(8821);
|
|
|
74461
74526
|
|
|
74462
74527
|
|
|
74463
74528
|
/* harmony default export */ var src_0 = ({
|
|
74464
|
-
version: '3.9.2-beta.
|
|
74529
|
+
version: '3.9.2-beta.3'
|
|
74465
74530
|
});
|
|
74466
74531
|
}();
|
|
74467
74532
|
/******/ return __webpack_exports__;
|