@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/cjs/AsideHeader.js
CHANGED
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var tslib_es6 = require('./tslib.es6-705c6589.js');
|
|
6
6
|
var React = require('react');
|
|
7
7
|
var PageLayout = require('./PageLayout.js');
|
|
8
|
-
var PageLayoutAside = require('./PageLayoutAside-
|
|
8
|
+
var PageLayoutAside = require('./PageLayoutAside-9fabdd21.js');
|
|
9
9
|
require('./Content-64d5738a.js');
|
|
10
10
|
require('./constants-d81c3867.js');
|
|
11
11
|
require('./AsideHeaderContext.js');
|
package/build/cjs/Drawer.js
CHANGED
|
@@ -3041,59 +3041,64 @@ SwitchTransition.defaultProps = {
|
|
|
3041
3041
|
const DRAWER_ITEM_MIN_RESIZE_WIDTH = 200;
|
|
3042
3042
|
const DRAWER_ITEM_MAX_RESIZE_WIDTH = 800;
|
|
3043
3043
|
const DRAWER_ITEM_INITIAL_RESIZE_WIDTH = 400;
|
|
3044
|
-
function
|
|
3045
|
-
var _a, _b;
|
|
3046
|
-
|
|
3044
|
+
function getEventClientPosition(e, direction) {
|
|
3045
|
+
var _a, _b, _c, _d;
|
|
3046
|
+
if ('touches' in e) {
|
|
3047
|
+
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;
|
|
3048
|
+
}
|
|
3049
|
+
return direction === 'horizontal' ? e.clientX : e.clientY;
|
|
3047
3050
|
}
|
|
3048
|
-
function useResizeHandlers({ onStart, onMove, onEnd }) {
|
|
3049
|
-
const
|
|
3050
|
-
const
|
|
3051
|
+
function useResizeHandlers({ onStart, onMove, onEnd, direction = 'horizontal', }) {
|
|
3052
|
+
const initialPosition = React__namespace.useRef(0);
|
|
3053
|
+
const currentPosition = React__namespace.useRef(0);
|
|
3051
3054
|
const handleMove = React__namespace.useCallback((e) => {
|
|
3052
|
-
const
|
|
3053
|
-
if (
|
|
3055
|
+
const current = getEventClientPosition(e, direction);
|
|
3056
|
+
if (currentPosition.current === current) {
|
|
3054
3057
|
return;
|
|
3055
3058
|
}
|
|
3056
|
-
|
|
3057
|
-
const delta =
|
|
3059
|
+
currentPosition.current = current;
|
|
3060
|
+
const delta = initialPosition.current - current;
|
|
3058
3061
|
onMove(delta);
|
|
3059
|
-
}, [onMove]);
|
|
3062
|
+
}, [onMove, direction]);
|
|
3063
|
+
const disableSelect = React__namespace.useCallback((e) => {
|
|
3064
|
+
e.preventDefault();
|
|
3065
|
+
}, []);
|
|
3060
3066
|
const handleEnd = React__namespace.useCallback((e) => {
|
|
3061
3067
|
window.removeEventListener('mousemove', handleMove);
|
|
3062
3068
|
window.removeEventListener('touchmove', handleMove);
|
|
3063
|
-
|
|
3064
|
-
document.body.style.removeProperty('-webkit-user-select');
|
|
3069
|
+
window.removeEventListener('selectstart', disableSelect);
|
|
3065
3070
|
document.body.style.removeProperty('cursor');
|
|
3066
|
-
const
|
|
3067
|
-
const delta =
|
|
3071
|
+
const current = getEventClientPosition(e, direction);
|
|
3072
|
+
const delta = initialPosition.current - current;
|
|
3068
3073
|
onEnd(delta);
|
|
3069
|
-
}, [handleMove, onEnd]);
|
|
3074
|
+
}, [handleMove, disableSelect, direction, onEnd]);
|
|
3070
3075
|
const handleStart = React__namespace.useCallback((e) => {
|
|
3071
|
-
const
|
|
3072
|
-
|
|
3073
|
-
|
|
3076
|
+
const current = getEventClientPosition(e, direction);
|
|
3077
|
+
initialPosition.current = current;
|
|
3078
|
+
currentPosition.current = current;
|
|
3074
3079
|
window.addEventListener('mouseup', handleEnd, { once: true });
|
|
3075
3080
|
window.addEventListener('touchend', handleEnd, { once: true });
|
|
3076
3081
|
window.addEventListener('touchcancel', handleEnd, { once: true });
|
|
3077
3082
|
window.addEventListener('mousemove', handleMove);
|
|
3078
3083
|
window.addEventListener('touchmove', handleMove);
|
|
3079
|
-
|
|
3080
|
-
|
|
3081
|
-
document.body.style.setProperty('cursor', 'col-resize');
|
|
3084
|
+
// Prevents user from selecting text. Similar to `user-select: none` but with no override issue.
|
|
3085
|
+
window.addEventListener('selectstart', disableSelect, { passive: false });
|
|
3086
|
+
document.body.style.setProperty('cursor', direction === 'horizontal' ? 'col-resize' : 'row-resize');
|
|
3082
3087
|
onStart();
|
|
3083
|
-
}, [handleEnd, handleMove, onStart]);
|
|
3088
|
+
}, [handleEnd, handleMove, onStart, direction]);
|
|
3084
3089
|
return {
|
|
3085
3090
|
onMouseDown: handleStart,
|
|
3086
3091
|
onTouchStart: handleStart,
|
|
3087
3092
|
};
|
|
3088
3093
|
}
|
|
3089
3094
|
function useResizableDrawerItem(params) {
|
|
3090
|
-
const { direction, width, minResizeWidth = DRAWER_ITEM_MIN_RESIZE_WIDTH, maxResizeWidth = DRAWER_ITEM_MAX_RESIZE_WIDTH, onResizeStart, onResize, } = params;
|
|
3095
|
+
const { direction = 'left', width, minResizeWidth = DRAWER_ITEM_MIN_RESIZE_WIDTH, maxResizeWidth = DRAWER_ITEM_MAX_RESIZE_WIDTH, onResizeStart, onResize, onResizeContinue, } = params;
|
|
3091
3096
|
const [isResizing, setIsResizing] = React__namespace.useState(false);
|
|
3092
3097
|
const [resizeDelta, setResizeDelta] = React__namespace.useState(0);
|
|
3093
3098
|
const [internalWidth, setInternalWidth] = React__namespace.useState(width !== null && width !== void 0 ? width : DRAWER_ITEM_INITIAL_RESIZE_WIDTH);
|
|
3094
3099
|
const getClampedWidth = React__namespace.useCallback((width) => Math.min(Math.max(width, minResizeWidth), maxResizeWidth), [minResizeWidth, maxResizeWidth]);
|
|
3095
3100
|
const getResizedWidth = React__namespace.useCallback((delta) => {
|
|
3096
|
-
const signedDelta =
|
|
3101
|
+
const signedDelta = ['right', 'bottom'].includes(direction) ? delta : -delta;
|
|
3097
3102
|
const newWidth = (width !== null && width !== void 0 ? width : internalWidth) + signedDelta;
|
|
3098
3103
|
return getClampedWidth(newWidth);
|
|
3099
3104
|
}, [width, internalWidth, direction, getClampedWidth]);
|
|
@@ -3104,7 +3109,8 @@ function useResizableDrawerItem(params) {
|
|
|
3104
3109
|
}, [onResizeStart]);
|
|
3105
3110
|
const onMove = React__namespace.useCallback((delta) => {
|
|
3106
3111
|
setResizeDelta(delta);
|
|
3107
|
-
|
|
3112
|
+
onResizeContinue === null || onResizeContinue === void 0 ? void 0 : onResizeContinue(getResizedWidth(delta));
|
|
3113
|
+
}, [getResizedWidth, onResizeContinue]);
|
|
3108
3114
|
const onEnd = React__namespace.useCallback((delta) => {
|
|
3109
3115
|
const newWidth = getResizedWidth(delta);
|
|
3110
3116
|
setIsResizing(false);
|
|
@@ -3114,17 +3120,22 @@ function useResizableDrawerItem(params) {
|
|
|
3114
3120
|
const displayWidth = isResizing
|
|
3115
3121
|
? getResizedWidth(resizeDelta)
|
|
3116
3122
|
: getClampedWidth(width !== null && width !== void 0 ? width : internalWidth);
|
|
3117
|
-
const handlers = useResizeHandlers({
|
|
3123
|
+
const handlers = useResizeHandlers({
|
|
3124
|
+
onStart,
|
|
3125
|
+
onMove,
|
|
3126
|
+
onEnd,
|
|
3127
|
+
direction: ['left', 'right'].includes(direction) ? 'horizontal' : 'vertical',
|
|
3128
|
+
});
|
|
3118
3129
|
return { resizedWidth: displayWidth, resizerHandlers: handlers, isResizing };
|
|
3119
3130
|
}
|
|
3120
3131
|
|
|
3121
|
-
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))}";
|
|
3132
|
+
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))}";
|
|
3122
3133
|
styleInject_es.styleInject(css_248z);
|
|
3123
3134
|
|
|
3124
3135
|
const b = cn.block('drawer');
|
|
3125
3136
|
const TIMEOUT = 300;
|
|
3126
3137
|
const DrawerItem = React__default["default"].forwardRef(function DrawerItem(props, ref) {
|
|
3127
|
-
const { visible, content, children, direction = 'left', className, resizable, width, minResizeWidth, maxResizeWidth, onResizeStart, onResize, keepMounted = false, } = props;
|
|
3138
|
+
const { visible, content, children, direction = 'left', className, resizable, width, minResizeWidth, maxResizeWidth, onResizeStart, onResizeContinue, onResize, keepMounted = false, } = props;
|
|
3128
3139
|
const [isInitialRender, setInitialRender] = React__default["default"].useState(true);
|
|
3129
3140
|
const itemRef = React__default["default"].useRef(null);
|
|
3130
3141
|
const handleRef = uikit.useForkRef(ref, itemRef);
|
|
@@ -3136,18 +3147,28 @@ const DrawerItem = React__default["default"].forwardRef(function DrawerItem(prop
|
|
|
3136
3147
|
maxResizeWidth,
|
|
3137
3148
|
onResizeStart,
|
|
3138
3149
|
onResize,
|
|
3150
|
+
onResizeContinue,
|
|
3139
3151
|
});
|
|
3152
|
+
const style = {};
|
|
3153
|
+
if (resizable) {
|
|
3154
|
+
if (['left', 'right'].includes(direction)) {
|
|
3155
|
+
style.width = `${resizedWidth}px`;
|
|
3156
|
+
}
|
|
3157
|
+
else {
|
|
3158
|
+
style.height = `${resizedWidth}px`;
|
|
3159
|
+
}
|
|
3160
|
+
}
|
|
3140
3161
|
React__default["default"].useEffect(() => {
|
|
3141
3162
|
setInitialRender(true);
|
|
3142
3163
|
}, [direction]);
|
|
3143
3164
|
const resizerElement = resizable ? (React__default["default"].createElement("div", Object.assign({ className: b('resizer', { direction }) }, resizerHandlers),
|
|
3144
|
-
React__default["default"].createElement("div", { className: b('resizer-handle') }))) : null;
|
|
3165
|
+
React__default["default"].createElement("div", { className: b('resizer-handle', { direction }) }))) : null;
|
|
3145
3166
|
return (React__default["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) },
|
|
3146
3167
|
React__default["default"].createElement("div", { ref: handleRef, className: b('item', {
|
|
3147
3168
|
direction: cssDirection,
|
|
3148
3169
|
hidden: isInitialRender && !visible,
|
|
3149
3170
|
resize: isResizing,
|
|
3150
|
-
}, [className]), style:
|
|
3171
|
+
}, [className]), style: style },
|
|
3151
3172
|
resizerElement, children !== null && children !== void 0 ? children : content)));
|
|
3152
3173
|
});
|
|
3153
3174
|
const Drawer = ({ className, veilClassName, children, style, onVeilClick, onEscape, preventScrollBody = true, hideVeil, disablePortal = true, keepMounted = false, }) => {
|