x-ui-design 0.7.54 → 0.7.56
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/dist/index.esm.js +6 -26
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +6 -26
- package/dist/index.js.map +1 -1
- package/lib/components/DatePicker/TimePicker/TimePicker.tsx +4 -28
- package/lib/components/DatePicker/TimePicker/style.css +0 -6
- package/package.json +1 -1
- package/src/app/page.tsx +14 -10
package/dist/index.esm.js
CHANGED
|
@@ -2609,7 +2609,7 @@ const ConditionalWrapper = ({
|
|
|
2609
2609
|
children
|
|
2610
2610
|
}) => condition ? wrapper(children) : children;
|
|
2611
2611
|
|
|
2612
|
-
var css_248z$d = ".xUi-timepicker-wrapper{display:inline-block;font-size:14px;position:relative}.xUi-timepicker-input-wrapper{position:relative;width:100%}.xUi-timepicker-input{border:1px solid var(--xui-border-color);border-radius:6px;box-sizing:border-box;font-size:14px;height:32px;line-height:32px;padding:4px 11px;transition:all .3s;width:100%}.xUi-timepicker-input:focus,.xUi-timepicker-input:hover{border-color:var(--xui-primary-color-light)}.xUi-timepicker-input:focus{outline:none}.xUi-timepicker-input::placeholder{opacity:.6}.xUi-timepicker-clear{color:rgba(0,0,0,.45);cursor:pointer;font-size:12px;position:absolute;right:8px;top:50%;transform:translateY(-50%);z-index:2}.xUi-timepicker-clear:hover{color:rgba(0,0,0,.75)}.xUi-timepicker-popup{background:#fff;border:1px solid var(--xui-border-color);border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.15);display:flex;left:0;padding:8px 0;z-index:1}.xUi-timepicker-panel{display:flex;width:100%}.xUi-timepicker-column{align-items:center;display:flex;flex:1;flex-direction:column;margin-bottom:5px;max-height:169px;overflow-y:auto;padding-left:4px;width:52px}.xUi-timepicker-column::-webkit-scrollbar,.xUi-timepicker-column::-webkit-scrollbar-thumb{width:4px}.xUi-timepicker-column:nth-child(2){border-left:1px solid var(--xui-border-color);border-right:1px solid var(--xui-border-color)}.xUi-timepicker-cell{align-items:center;border-radius:4px;cursor:pointer;display:flex;font-size:14px;justify-content:center;margin-bottom:2px;padding:6px 0;text-align:center;transition:background .3s;width:44px}.xUi-timepicker-cell:hover{background-color:#e6f4ff}.xUi-timepicker-cell-selected{background-color:#e6f4ff;font-weight:500}.xUi-timepicker-cell-disabled{color:rgba(0,0,0,.25);pointer-events:none;user-select:none}.xUi-timepicker-now-btn{color:#4096ff;cursor:pointer;font-weight:500;margin-top:10px;padding:0 0 4px;text-align:center;transition:background .3s}.xUi-timepicker-icons{align-items:center;display:flex;gap:4px;position:absolute;right:8px;top:50%;transform:translateY(-50%)}.xUi-timepicker-suffix{align-items:center;cursor:pointer;display:flex;justify-content:center}.xUi-timepicker-suffix svg{color:#999;height:14px;width:14px}.xUi-timepicker-clear{right:0;top:1px}.xUi-timepicker-actions{align-items:center;border-top:1px solid var(--xui-border-color);display:flex;justify-content:space-between;padding:0 4px}.xUi-timepicker-ok-btn{background-color:var(--xui-primary-color);border:none;border-radius:4px;color:#fff;cursor:pointer;margin-top:7px;outline:none;padding:4px 8px;transition:.3s ease}.xUi-timepicker-ok-btn:disabled{background-color:var(--xui-color-disabled);color:grey;font-size:13px}.xUi-timepicker-ok-btn:not(:disabled):hover{background-color:var(--xui-primary-color-light)}.xUi-timepicker-popup{margin-top:4px;position:absolute;top:100%}
|
|
2612
|
+
var css_248z$d = ".xUi-timepicker-wrapper{display:inline-block;font-size:14px;position:relative}.xUi-timepicker-input-wrapper{position:relative;width:100%}.xUi-timepicker-input{border:1px solid var(--xui-border-color);border-radius:6px;box-sizing:border-box;font-size:14px;height:32px;line-height:32px;padding:4px 11px;transition:all .3s;width:100%}.xUi-timepicker-input:focus,.xUi-timepicker-input:hover{border-color:var(--xui-primary-color-light)}.xUi-timepicker-input:focus{outline:none}.xUi-timepicker-input::placeholder{opacity:.6}.xUi-timepicker-clear{color:rgba(0,0,0,.45);cursor:pointer;font-size:12px;position:absolute;right:8px;top:50%;transform:translateY(-50%);z-index:2}.xUi-timepicker-clear:hover{color:rgba(0,0,0,.75)}.xUi-timepicker-popup{background:#fff;border:1px solid var(--xui-border-color);border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.15);display:flex;left:0;padding:8px 0;z-index:1}.xUi-timepicker-panel{display:flex;width:100%}.xUi-timepicker-column{align-items:center;display:flex;flex:1;flex-direction:column;margin-bottom:5px;max-height:169px;overflow-y:auto;padding-left:4px;width:52px}.xUi-timepicker-column::-webkit-scrollbar,.xUi-timepicker-column::-webkit-scrollbar-thumb{width:4px}.xUi-timepicker-column:nth-child(2){border-left:1px solid var(--xui-border-color);border-right:1px solid var(--xui-border-color)}.xUi-timepicker-cell{align-items:center;border-radius:4px;cursor:pointer;display:flex;font-size:14px;justify-content:center;margin-bottom:2px;padding:6px 0;text-align:center;transition:background .3s;width:44px}.xUi-timepicker-cell:hover{background-color:#e6f4ff}.xUi-timepicker-cell-selected{background-color:#e6f4ff;font-weight:500}.xUi-timepicker-cell-disabled{color:rgba(0,0,0,.25);pointer-events:none;user-select:none}.xUi-timepicker-now-btn{color:#4096ff;cursor:pointer;font-weight:500;margin-top:10px;padding:0 0 4px;text-align:center;transition:background .3s}.xUi-timepicker-icons{align-items:center;display:flex;gap:4px;position:absolute;right:8px;top:50%;transform:translateY(-50%)}.xUi-timepicker-suffix{align-items:center;cursor:pointer;display:flex;justify-content:center}.xUi-timepicker-suffix svg{color:#999;height:14px;width:14px}.xUi-timepicker-clear{right:0;top:1px}.xUi-timepicker-actions{align-items:center;border-top:1px solid var(--xui-border-color);display:flex;justify-content:space-between;padding:0 4px}.xUi-timepicker-ok-btn{background-color:var(--xui-primary-color);border:none;border-radius:4px;color:#fff;cursor:pointer;margin-top:7px;outline:none;padding:4px 8px;transition:.3s ease}.xUi-timepicker-ok-btn:disabled{background-color:var(--xui-color-disabled);color:grey;font-size:13px}.xUi-timepicker-ok-btn:not(:disabled):hover{background-color:var(--xui-primary-color-light)}.xUi-timepicker-popup{margin-top:4px;position:absolute;top:100%}";
|
|
2613
2613
|
styleInject(css_248z$d);
|
|
2614
2614
|
|
|
2615
2615
|
const HOURS = 24;
|
|
@@ -2638,7 +2638,7 @@ const TimePicker = ({
|
|
|
2638
2638
|
}) => {
|
|
2639
2639
|
const [open, setOpen] = useState(false);
|
|
2640
2640
|
const [innerValue, setInnerValue] = useState(propValue || defaultValue ? new Date(propValue || defaultValue) : null);
|
|
2641
|
-
|
|
2641
|
+
useState(false);
|
|
2642
2642
|
const [[showHour, showMinutes, showSeconds]] = useState(`${format}`.split(':'));
|
|
2643
2643
|
const [tempValue, setTempValue] = useState(null);
|
|
2644
2644
|
const inputRef = useRef(null);
|
|
@@ -2655,7 +2655,6 @@ const TimePicker = ({
|
|
|
2655
2655
|
if (popupRef.current && !popupRef.current.contains(e.target) && inputRef.current && !inputRef.current.contains(e.target)) {
|
|
2656
2656
|
setOpen(false);
|
|
2657
2657
|
setTempValue(null);
|
|
2658
|
-
setOpenUpward(false);
|
|
2659
2658
|
if (!innerValue) {
|
|
2660
2659
|
onChange?.(null, '');
|
|
2661
2660
|
}
|
|
@@ -2679,20 +2678,6 @@ const TimePicker = ({
|
|
|
2679
2678
|
scrollToTop(secondRef, second || 0);
|
|
2680
2679
|
}
|
|
2681
2680
|
}, [open, innerValue]);
|
|
2682
|
-
const decideOpenDirection = () => {
|
|
2683
|
-
if (inputRef.current) {
|
|
2684
|
-
const inputRect = inputRef.current.getBoundingClientRect();
|
|
2685
|
-
const viewportHeight = window.innerHeight;
|
|
2686
|
-
const popupHeight = 240;
|
|
2687
|
-
const spaceBelow = viewportHeight - inputRect.bottom;
|
|
2688
|
-
const spaceAbove = inputRect.top;
|
|
2689
|
-
if (spaceBelow < popupHeight && spaceAbove > popupHeight) {
|
|
2690
|
-
setOpenUpward(true);
|
|
2691
|
-
} else {
|
|
2692
|
-
setOpenUpward(false);
|
|
2693
|
-
}
|
|
2694
|
-
}
|
|
2695
|
-
};
|
|
2696
2681
|
useEffect(() => {
|
|
2697
2682
|
onSelect?.(tempValue);
|
|
2698
2683
|
}, [tempValue, onSelect]);
|
|
@@ -2833,7 +2818,8 @@ const TimePicker = ({
|
|
|
2833
2818
|
const inputRect = inputRef.current.getBoundingClientRect();
|
|
2834
2819
|
const popupEl = popupRef.current;
|
|
2835
2820
|
const dropdownHeight = popupEl?.offsetHeight || 230;
|
|
2836
|
-
const
|
|
2821
|
+
const parents = getScrollParents(inputRef.current);
|
|
2822
|
+
const popupContainer = getPopupContainer ? getPopupContainer(document.body) : parents[parents.length - 2] || parents[1] || document.body;
|
|
2837
2823
|
const containerRect = popupContainer.getBoundingClientRect();
|
|
2838
2824
|
const spaceAbove = inputRect.top - containerRect.top;
|
|
2839
2825
|
const spaceBelow = containerRect.bottom - inputRect.bottom;
|
|
@@ -2977,10 +2963,7 @@ const TimePicker = ({
|
|
|
2977
2963
|
style: style
|
|
2978
2964
|
}, /*#__PURE__*/React.createElement("div", {
|
|
2979
2965
|
className: `${prefixCls}-input-wrapper`,
|
|
2980
|
-
onClick: () =>
|
|
2981
|
-
decideOpenDirection();
|
|
2982
|
-
setOpen(true);
|
|
2983
|
-
}
|
|
2966
|
+
onClick: () => setOpen(true)
|
|
2984
2967
|
}, /*#__PURE__*/React.createElement("input", {
|
|
2985
2968
|
ref: inputRef,
|
|
2986
2969
|
size: INPUT_SIZE,
|
|
@@ -3005,7 +2988,6 @@ const TimePicker = ({
|
|
|
3005
2988
|
className: `${prefixCls}-suffix`,
|
|
3006
2989
|
onClick: e => {
|
|
3007
2990
|
e.stopPropagation();
|
|
3008
|
-
decideOpenDirection();
|
|
3009
2991
|
setOpen(true);
|
|
3010
2992
|
}
|
|
3011
2993
|
}, suffixIcon))), open && /*#__PURE__*/React.createElement(ConditionalWrapper, {
|
|
@@ -3017,9 +2999,7 @@ const TimePicker = ({
|
|
|
3017
2999
|
...dropdownPosition,
|
|
3018
3000
|
opacity: Object.keys(dropdownPosition).length ? 1 : 0
|
|
3019
3001
|
},
|
|
3020
|
-
className:
|
|
3021
|
-
[`${prefixCls}-popup-up`]: openUpward
|
|
3022
|
-
}])
|
|
3002
|
+
className: `${prefixCls}-popup`
|
|
3023
3003
|
}, renderOptions())));
|
|
3024
3004
|
};
|
|
3025
3005
|
|