@gravity-ui/navigation 2.33.0 → 2.34.1
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/build/cjs/AsideHeader.js +1 -1
- package/build/cjs/Drawer.js +52 -31
- package/build/cjs/Drawer.js.map +1 -1
- package/build/cjs/{FooterItem-d34d84ed.js → FooterItem-22234c15.js} +1 -1
- package/build/cjs/{FooterItem-d34d84ed.js.map → FooterItem-22234c15.js.map} +1 -1
- package/build/cjs/{HotkeysPanel-1c05ffa8.js → HotkeysPanel-00735b71.js} +1 -1
- package/build/cjs/{HotkeysPanel-1c05ffa8.js.map → HotkeysPanel-00735b71.js.map} +1 -1
- package/build/cjs/{PageLayoutAside-56a441a9.js → PageLayoutAside-9fabdd21.js} +1 -1
- package/build/cjs/{PageLayoutAside-56a441a9.js.map → PageLayoutAside-9fabdd21.js.map} +1 -1
- package/build/cjs/PageLayoutAside.js +1 -1
- package/build/cjs/components/Drawer/Drawer.d.ts +6 -0
- package/build/cjs/components/Drawer/utils.d.ts +4 -2
- package/build/cjs/index.js +3 -3
- package/build/cjs/index4.js +1 -1
- package/build/cjs/index6.js +1 -1
- package/build/esm/AsideHeader.js +1 -1
- package/build/esm/Drawer.js +52 -31
- package/build/esm/Drawer.js.map +1 -1
- package/build/esm/{FooterItem-af3c4fa3.js → FooterItem-e7755a30.js} +1 -1
- package/build/esm/{FooterItem-af3c4fa3.js.map → FooterItem-e7755a30.js.map} +1 -1
- package/build/esm/{HotkeysPanel-c7bf8466.js → HotkeysPanel-c974ca3a.js} +1 -1
- package/build/esm/{HotkeysPanel-c7bf8466.js.map → HotkeysPanel-c974ca3a.js.map} +1 -1
- package/build/esm/{PageLayoutAside-edd59955.js → PageLayoutAside-f7f0962e.js} +1 -1
- package/build/esm/{PageLayoutAside-edd59955.js.map → PageLayoutAside-f7f0962e.js.map} +1 -1
- package/build/esm/PageLayoutAside.js +1 -1
- package/build/esm/components/Drawer/Drawer.d.ts +6 -0
- package/build/esm/components/Drawer/utils.d.ts +4 -2
- package/build/esm/index.js +4 -4
- package/build/esm/index4.js +1 -1
- package/build/esm/index6.js +1 -1
- package/package.json +1 -1
package/build/esm/AsideHeader.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { _ as __rest } from './tslib.es6-3cd4e99f.js';
|
|
2
2
|
import React__default from 'react';
|
|
3
3
|
import { PageLayout } from './PageLayout.js';
|
|
4
|
-
import { P as PageLayoutAside } from './PageLayoutAside-
|
|
4
|
+
import { P as PageLayoutAside } from './PageLayoutAside-f7f0962e.js';
|
|
5
5
|
import './Content-f94ba85d.js';
|
|
6
6
|
import './constants-b1604ff5.js';
|
|
7
7
|
import './AsideHeaderContext.js';
|
package/build/esm/Drawer.js
CHANGED
|
@@ -3014,59 +3014,64 @@ SwitchTransition.defaultProps = {
|
|
|
3014
3014
|
const DRAWER_ITEM_MIN_RESIZE_WIDTH = 200;
|
|
3015
3015
|
const DRAWER_ITEM_MAX_RESIZE_WIDTH = 800;
|
|
3016
3016
|
const DRAWER_ITEM_INITIAL_RESIZE_WIDTH = 400;
|
|
3017
|
-
function
|
|
3018
|
-
var _a, _b;
|
|
3019
|
-
|
|
3017
|
+
function getEventClientPosition(e, direction) {
|
|
3018
|
+
var _a, _b, _c, _d;
|
|
3019
|
+
if ('touches' in e) {
|
|
3020
|
+
return direction === 'horizontal' ? (_b = (_a = e.touches[0]) === null || _a === void 0 ? void 0 : _a.clientX) !== null && _b !== void 0 ? _b : 0 : (_d = (_c = e.touches[0]) === null || _c === void 0 ? void 0 : _c.clientY) !== null && _d !== void 0 ? _d : 0;
|
|
3021
|
+
}
|
|
3022
|
+
return direction === 'horizontal' ? e.clientX : e.clientY;
|
|
3020
3023
|
}
|
|
3021
|
-
function useResizeHandlers({ onStart, onMove, onEnd }) {
|
|
3022
|
-
const
|
|
3023
|
-
const
|
|
3024
|
+
function useResizeHandlers({ onStart, onMove, onEnd, direction = 'horizontal', }) {
|
|
3025
|
+
const initialPosition = React.useRef(0);
|
|
3026
|
+
const currentPosition = React.useRef(0);
|
|
3024
3027
|
const handleMove = React.useCallback((e) => {
|
|
3025
|
-
const
|
|
3026
|
-
if (
|
|
3028
|
+
const current = getEventClientPosition(e, direction);
|
|
3029
|
+
if (currentPosition.current === current) {
|
|
3027
3030
|
return;
|
|
3028
3031
|
}
|
|
3029
|
-
|
|
3030
|
-
const delta =
|
|
3032
|
+
currentPosition.current = current;
|
|
3033
|
+
const delta = initialPosition.current - current;
|
|
3031
3034
|
onMove(delta);
|
|
3032
|
-
}, [onMove]);
|
|
3035
|
+
}, [onMove, direction]);
|
|
3036
|
+
const disableSelect = React.useCallback((e) => {
|
|
3037
|
+
e.preventDefault();
|
|
3038
|
+
}, []);
|
|
3033
3039
|
const handleEnd = React.useCallback((e) => {
|
|
3034
3040
|
window.removeEventListener('mousemove', handleMove);
|
|
3035
3041
|
window.removeEventListener('touchmove', handleMove);
|
|
3036
|
-
|
|
3037
|
-
document.body.style.removeProperty('-webkit-user-select');
|
|
3042
|
+
window.removeEventListener('selectstart', disableSelect);
|
|
3038
3043
|
document.body.style.removeProperty('cursor');
|
|
3039
|
-
const
|
|
3040
|
-
const delta =
|
|
3044
|
+
const current = getEventClientPosition(e, direction);
|
|
3045
|
+
const delta = initialPosition.current - current;
|
|
3041
3046
|
onEnd(delta);
|
|
3042
|
-
}, [handleMove, onEnd]);
|
|
3047
|
+
}, [handleMove, disableSelect, direction, onEnd]);
|
|
3043
3048
|
const handleStart = React.useCallback((e) => {
|
|
3044
|
-
const
|
|
3045
|
-
|
|
3046
|
-
|
|
3049
|
+
const current = getEventClientPosition(e, direction);
|
|
3050
|
+
initialPosition.current = current;
|
|
3051
|
+
currentPosition.current = current;
|
|
3047
3052
|
window.addEventListener('mouseup', handleEnd, { once: true });
|
|
3048
3053
|
window.addEventListener('touchend', handleEnd, { once: true });
|
|
3049
3054
|
window.addEventListener('touchcancel', handleEnd, { once: true });
|
|
3050
3055
|
window.addEventListener('mousemove', handleMove);
|
|
3051
3056
|
window.addEventListener('touchmove', handleMove);
|
|
3052
|
-
|
|
3053
|
-
|
|
3054
|
-
document.body.style.setProperty('cursor', 'col-resize');
|
|
3057
|
+
// Prevents user from selecting text. Similar to `user-select: none` but with no override issue.
|
|
3058
|
+
window.addEventListener('selectstart', disableSelect, { passive: false });
|
|
3059
|
+
document.body.style.setProperty('cursor', direction === 'horizontal' ? 'col-resize' : 'row-resize');
|
|
3055
3060
|
onStart();
|
|
3056
|
-
}, [handleEnd, handleMove, onStart]);
|
|
3061
|
+
}, [handleEnd, handleMove, onStart, direction]);
|
|
3057
3062
|
return {
|
|
3058
3063
|
onMouseDown: handleStart,
|
|
3059
3064
|
onTouchStart: handleStart,
|
|
3060
3065
|
};
|
|
3061
3066
|
}
|
|
3062
3067
|
function useResizableDrawerItem(params) {
|
|
3063
|
-
const { direction, width, minResizeWidth = DRAWER_ITEM_MIN_RESIZE_WIDTH, maxResizeWidth = DRAWER_ITEM_MAX_RESIZE_WIDTH, onResizeStart, onResize, } = params;
|
|
3068
|
+
const { direction = 'left', width, minResizeWidth = DRAWER_ITEM_MIN_RESIZE_WIDTH, maxResizeWidth = DRAWER_ITEM_MAX_RESIZE_WIDTH, onResizeStart, onResize, onResizeContinue, } = params;
|
|
3064
3069
|
const [isResizing, setIsResizing] = React.useState(false);
|
|
3065
3070
|
const [resizeDelta, setResizeDelta] = React.useState(0);
|
|
3066
3071
|
const [internalWidth, setInternalWidth] = React.useState(width !== null && width !== void 0 ? width : DRAWER_ITEM_INITIAL_RESIZE_WIDTH);
|
|
3067
3072
|
const getClampedWidth = React.useCallback((width) => Math.min(Math.max(width, minResizeWidth), maxResizeWidth), [minResizeWidth, maxResizeWidth]);
|
|
3068
3073
|
const getResizedWidth = React.useCallback((delta) => {
|
|
3069
|
-
const signedDelta =
|
|
3074
|
+
const signedDelta = ['right', 'bottom'].includes(direction) ? delta : -delta;
|
|
3070
3075
|
const newWidth = (width !== null && width !== void 0 ? width : internalWidth) + signedDelta;
|
|
3071
3076
|
return getClampedWidth(newWidth);
|
|
3072
3077
|
}, [width, internalWidth, direction, getClampedWidth]);
|
|
@@ -3077,7 +3082,8 @@ function useResizableDrawerItem(params) {
|
|
|
3077
3082
|
}, [onResizeStart]);
|
|
3078
3083
|
const onMove = React.useCallback((delta) => {
|
|
3079
3084
|
setResizeDelta(delta);
|
|
3080
|
-
|
|
3085
|
+
onResizeContinue === null || onResizeContinue === void 0 ? void 0 : onResizeContinue(getResizedWidth(delta));
|
|
3086
|
+
}, [getResizedWidth, onResizeContinue]);
|
|
3081
3087
|
const onEnd = React.useCallback((delta) => {
|
|
3082
3088
|
const newWidth = getResizedWidth(delta);
|
|
3083
3089
|
setIsResizing(false);
|
|
@@ -3087,17 +3093,22 @@ function useResizableDrawerItem(params) {
|
|
|
3087
3093
|
const displayWidth = isResizing
|
|
3088
3094
|
? getResizedWidth(resizeDelta)
|
|
3089
3095
|
: getClampedWidth(width !== null && width !== void 0 ? width : internalWidth);
|
|
3090
|
-
const handlers = useResizeHandlers({
|
|
3096
|
+
const handlers = useResizeHandlers({
|
|
3097
|
+
onStart,
|
|
3098
|
+
onMove,
|
|
3099
|
+
onEnd,
|
|
3100
|
+
direction: ['left', 'right'].includes(direction) ? 'horizontal' : 'vertical',
|
|
3101
|
+
});
|
|
3091
3102
|
return { resizedWidth: displayWidth, resizerHandlers: handlers, isResizing };
|
|
3092
3103
|
}
|
|
3093
3104
|
|
|
3094
|
-
var css_248z = ".gn-drawer{--_--item-shadow-default:0 1px 5px 0 var(--g-color-sfx-shadow);--_--resizer-width:8px;--_--resizer-color:var(--g-color-base-generic);--_--resizer-handle-color:var(--g-color-line-generic);--_--resizer-handle-color-hover:var(--g-color-line-generic-hover);--_--resizer-z-index:100;--_--veil-background-color:var(--g-color-sfx-veil);pointer-events:none}.gn-drawer_hideVeil{--_--item-shadow:var(--gn-drawer-item-shadow,var(--_--item-shadow-default))}.gn-drawer__item{background-color:var(--g-color-base-background);bottom:0;box-shadow:var(--_--item-shadow,none);height:100%;left:0;pointer-events:auto;position:absolute;top:0;will-change:transform;z-index:var(--gn-drawer-item-z-index)}.gn-drawer__item_direction_right{left:auto;right:0}.gn-drawer__item-transition-enter{transform:translate(-100%)}.gn-drawer__item-transition_direction_right-enter{transform:translate(100%)}.gn-drawer__item-transition-enter-active,.gn-drawer__item-transition_direction_right-enter-active{transform:translate(0);transition:transform .3s}.gn-drawer__item-transition-enter-done,.gn-drawer__item-transition_direction_right-enter-done{filter:blur(0);transform:translateZ(0)}.gn-drawer__item-transition-exit,.gn-drawer__item-transition_direction_right-exit{transform:translate(0)}.gn-drawer__item-transition-exit-active,.gn-drawer__item-transition_direction_right-exit-active{transition:transform .3s}.gn-drawer__item-transition-exit-active{transform:translate(-100%)}.gn-drawer__item-transition_direction_right-exit-active{transform:translate(100%)}.gn-drawer__item-transition-exit-done,.gn-drawer__item-transition_direction_right-exit-done,.gn-drawer__item_hidden{visibility:hidden}.gn-drawer__veil{background-color:var(--gn-drawer-veil-background-color,var(--_--veil-background-color));inset:0;pointer-events:auto;position:absolute;z-index:var(--gn-drawer-veil-z-index)}.gn-drawer__veil_hidden{display:none}.gn-drawer__veil-transition-enter{opacity:0}.gn-drawer__veil-transition-enter-active{opacity:1;transition:opacity .3s}.gn-drawer__veil-transition-exit{opacity:1}.gn-drawer__veil-transition-exit-active{opacity:0;transition:opacity .3s}.gn-drawer__veil-transition-exit-done{visibility:hidden}.gn-drawer__resizer-handle{background:var(--gn-drawer-item-resizer-handle-color,var(--_--resizer-handle-color));border-radius:2px;height:28px;width:2px}.gn-drawer__resizer{align-items:center;background:var(--gn-drawer-item-resizer-color,var(--_--resizer-color));cursor:col-resize;display:flex;flex-direction:column;height:100%;justify-content:center;position:absolute;top:0;width:var(--gn-drawer-item-resizer-width,var(--_--resizer-width));z-index:var(--gn-drawer-item-resizer-z-index,var(--_--resizer-z-index))}.gn-drawer__resizer_direction_right{left:0}.gn-drawer__resizer_direction_left{right:0}.gn-drawer__resizer:hover .gn-drawer__resizer-handle{background:var(--gn-drawer-item-resizer-handle-color-hover,var(--_--resizer-handle-color-hover))}";
|
|
3105
|
+
var css_248z = ".gn-drawer{--_--item-shadow-default:0 1px 5px 0 var(--g-color-sfx-shadow);--_--resizer-width:8px;--_--resizer-color:var(--g-color-base-generic);--_--resizer-handle-color:var(--g-color-line-generic);--_--resizer-handle-color-hover:var(--g-color-line-generic-hover);--_--resizer-z-index:100;--_--veil-background-color:var(--g-color-sfx-veil);pointer-events:none}.gn-drawer_hideVeil{--_--item-shadow:var(--gn-drawer-item-shadow,var(--_--item-shadow-default))}.gn-drawer__item{background-color:var(--g-color-base-background);bottom:0;box-shadow:var(--_--item-shadow,none);height:100%;left:0;pointer-events:auto;position:absolute;top:0;will-change:transform;z-index:var(--gn-drawer-item-z-index)}.gn-drawer__item_direction_right{left:auto;right:0}.gn-drawer__item_direction_top{bottom:auto;right:0}.gn-drawer__item_direction_bottom{right:0;top:auto}.gn-drawer__item-transition-enter{transform:translate(-100%)}.gn-drawer__item-transition_direction_right-enter{transform:translate(100%)}.gn-drawer__item-transition_direction_top-enter{transform:translateY(-100%)}.gn-drawer__item-transition_direction_bottom-enter{transform:translateY(100%)}.gn-drawer__item-transition-enter-active,.gn-drawer__item-transition_direction_bottom-enter-active,.gn-drawer__item-transition_direction_right-enter-active,.gn-drawer__item-transition_direction_top-enter-active{transform:translate(0);transition:transform .3s}.gn-drawer__item-transition-enter-done,.gn-drawer__item-transition_direction_bottom-enter-done,.gn-drawer__item-transition_direction_right-enter-done,.gn-drawer__item-transition_direction_top-enter-done{filter:blur(0);transform:translateZ(0)}.gn-drawer__item-transition-exit,.gn-drawer__item-transition_direction_bottom-exit,.gn-drawer__item-transition_direction_right-exit,.gn-drawer__item-transition_direction_top-exit{transform:translate(0)}.gn-drawer__item-transition-exit-active,.gn-drawer__item-transition_direction_bottom-exit-active,.gn-drawer__item-transition_direction_right-exit-active,.gn-drawer__item-transition_direction_top-exit-active{transition:transform .3s}.gn-drawer__item-transition-exit-active{transform:translate(-100%)}.gn-drawer__item-transition_direction_right-exit-active{transform:translate(100%)}.gn-drawer__item-transition_direction_top-exit-active{transform:translateY(-100%)}.gn-drawer__item-transition_direction_bottom-exit-active{transform:translateY(100%)}.gn-drawer__item-transition-exit-done,.gn-drawer__item-transition_direction_bottom-exit-done,.gn-drawer__item-transition_direction_right-exit-done,.gn-drawer__item-transition_direction_top-exit-done,.gn-drawer__item_hidden{visibility:hidden}.gn-drawer__veil{background-color:var(--gn-drawer-veil-background-color,var(--_--veil-background-color));inset:0;pointer-events:auto;position:absolute;z-index:var(--gn-drawer-veil-z-index)}.gn-drawer__veil_hidden{display:none}.gn-drawer__veil-transition-enter{opacity:0}.gn-drawer__veil-transition-enter-active{opacity:1;transition:opacity .3s}.gn-drawer__veil-transition-exit{opacity:1}.gn-drawer__veil-transition-exit-active{opacity:0;transition:opacity .3s}.gn-drawer__veil-transition-exit-done{visibility:hidden}.gn-drawer__resizer-handle{background:var(--gn-drawer-item-resizer-handle-color,var(--_--resizer-handle-color));border-radius:2px;height:28px;width:2px}.gn-drawer__resizer-handle_direction_bottom,.gn-drawer__resizer-handle_direction_top{height:2px;width:28px}.gn-drawer__resizer{align-items:center;background:var(--gn-drawer-item-resizer-color,var(--_--resizer-color));cursor:col-resize;display:flex;flex-direction:column;height:100%;justify-content:center;position:absolute;top:0;width:var(--gn-drawer-item-resizer-width,var(--_--resizer-width));z-index:var(--gn-drawer-item-resizer-z-index,var(--_--resizer-z-index))}.gn-drawer__resizer_direction_right{left:0}.gn-drawer__resizer_direction_left{right:0}.gn-drawer__resizer_direction_top{bottom:0;left:0;top:unset}.gn-drawer__resizer_direction_bottom{left:0;top:0}.gn-drawer__resizer_direction_bottom,.gn-drawer__resizer_direction_top{cursor:row-resize;height:var(--gn-drawer-item-resizer-width,var(--_--resizer-width));width:100%}.gn-drawer__resizer:hover .gn-drawer__resizer-handle{background:var(--gn-drawer-item-resizer-handle-color-hover,var(--_--resizer-handle-color-hover))}";
|
|
3095
3106
|
styleInject(css_248z);
|
|
3096
3107
|
|
|
3097
3108
|
const b = block('drawer');
|
|
3098
3109
|
const TIMEOUT = 300;
|
|
3099
3110
|
const DrawerItem = React__default.forwardRef(function DrawerItem(props, ref) {
|
|
3100
|
-
const { visible, content, children, direction = 'left', className, resizable, width, minResizeWidth, maxResizeWidth, onResizeStart, onResize, keepMounted = false, } = props;
|
|
3111
|
+
const { visible, content, children, direction = 'left', className, resizable, width, minResizeWidth, maxResizeWidth, onResizeStart, onResizeContinue, onResize, keepMounted = false, } = props;
|
|
3101
3112
|
const [isInitialRender, setInitialRender] = React__default.useState(true);
|
|
3102
3113
|
const itemRef = React__default.useRef(null);
|
|
3103
3114
|
const handleRef = useForkRef(ref, itemRef);
|
|
@@ -3109,18 +3120,28 @@ const DrawerItem = React__default.forwardRef(function DrawerItem(props, ref) {
|
|
|
3109
3120
|
maxResizeWidth,
|
|
3110
3121
|
onResizeStart,
|
|
3111
3122
|
onResize,
|
|
3123
|
+
onResizeContinue,
|
|
3112
3124
|
});
|
|
3125
|
+
const style = {};
|
|
3126
|
+
if (resizable) {
|
|
3127
|
+
if (['left', 'right'].includes(direction)) {
|
|
3128
|
+
style.width = `${resizedWidth}px`;
|
|
3129
|
+
}
|
|
3130
|
+
else {
|
|
3131
|
+
style.height = `${resizedWidth}px`;
|
|
3132
|
+
}
|
|
3133
|
+
}
|
|
3113
3134
|
React__default.useEffect(() => {
|
|
3114
3135
|
setInitialRender(true);
|
|
3115
3136
|
}, [direction]);
|
|
3116
3137
|
const resizerElement = resizable ? (React__default.createElement("div", Object.assign({ className: b('resizer', { direction }) }, resizerHandlers),
|
|
3117
|
-
React__default.createElement("div", { className: b('resizer-handle') }))) : null;
|
|
3138
|
+
React__default.createElement("div", { className: b('resizer-handle', { direction }) }))) : null;
|
|
3118
3139
|
return (React__default.createElement(CSSTransition, { in: visible, timeout: TIMEOUT, mountOnEnter: !keepMounted, unmountOnExit: !keepMounted, classNames: b('item-transition', { direction: cssDirection }), nodeRef: itemRef, onEnter: () => setInitialRender(false), onExit: () => setInitialRender(false) },
|
|
3119
3140
|
React__default.createElement("div", { ref: handleRef, className: b('item', {
|
|
3120
3141
|
direction: cssDirection,
|
|
3121
3142
|
hidden: isInitialRender && !visible,
|
|
3122
3143
|
resize: isResizing,
|
|
3123
|
-
}, [className]), style:
|
|
3144
|
+
}, [className]), style: style },
|
|
3124
3145
|
resizerElement, children !== null && children !== void 0 ? children : content)));
|
|
3125
3146
|
});
|
|
3126
3147
|
const Drawer = ({ className, veilClassName, children, style, onVeilClick, onEscape, preventScrollBody = true, hideVeil, disablePortal = true, keepMounted = false, }) => {
|