@gravity-ui/navigation 1.6.1 → 1.7.0
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/README.md +20 -7
- package/build/cjs/{ActionBar-393db3ea.js → ActionBar-96a59723.js} +8 -7
- package/build/cjs/{ActionBar-393db3ea.js.map → ActionBar-96a59723.js.map} +1 -1
- package/build/cjs/AsideFallback.js +31 -0
- package/build/cjs/AsideFallback.js.map +1 -0
- package/build/cjs/AsideHeader.js +9 -21
- package/build/cjs/AsideHeader.js.map +1 -1
- package/build/cjs/{Content-20bde76c.js → Content-64d5738a.js} +3 -10
- package/build/cjs/Content-64d5738a.js.map +1 -0
- package/build/cjs/Drawer.js +3 -2
- package/build/cjs/Drawer.js.map +1 -1
- package/build/cjs/{FooterItem-907eca32.js → FooterItem-eafaeac3.js} +10 -9
- package/build/cjs/{FooterItem-907eca32.js.map → FooterItem-eafaeac3.js.map} +1 -1
- package/build/cjs/FooterItem.js +6 -4
- package/build/cjs/FooterItem.js.map +1 -1
- package/build/cjs/{HotkeysPanel-7823f66a.js → HotkeysPanel-2e240e4d.js} +4 -3
- package/build/cjs/{HotkeysPanel-7823f66a.js.map → HotkeysPanel-2e240e4d.js.map} +1 -1
- package/build/cjs/{Item-15bdb320.js → Item-836015b7.js} +10 -16
- package/build/cjs/Item-836015b7.js.map +1 -0
- package/build/cjs/PageLayout.js +15 -85
- package/build/cjs/PageLayout.js.map +1 -1
- package/build/cjs/PageLayoutAside.js +879 -11
- package/build/cjs/PageLayoutAside.js.map +1 -1
- package/build/cjs/{Settings-6db7b88c.js → Settings-11b021e4.js} +8 -7
- package/build/cjs/{Settings-6db7b88c.js.map → Settings-11b021e4.js.map} +1 -1
- package/build/cjs/{Title-d58ff158.js → Title-c539667f.js} +4 -3
- package/build/cjs/{Title-d58ff158.js.map → Title-c539667f.js.map} +1 -1
- package/build/cjs/TopPanel-b531a2be.js +82 -0
- package/build/cjs/TopPanel-b531a2be.js.map +1 -0
- package/build/cjs/cn-1964a72a.js +10 -0
- package/build/cjs/cn-1964a72a.js.map +1 -0
- package/build/cjs/components/AsideHeader/AsideHeader.d.ts +0 -15
- package/build/cjs/components/AsideHeader/__stories__/AsideHeader.stories.d.ts +4 -0
- package/build/cjs/components/AsideHeader/components/PageLayout/AsideFallback.d.ts +6 -0
- package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.d.ts +2 -3
- package/build/cjs/components/AsideHeader/types.d.ts +0 -1
- package/build/cjs/components/CompositeBar/constants.d.ts +0 -1
- package/build/cjs/components/Content/Content.d.ts +0 -1
- package/build/cjs/components/constants.d.ts +2 -0
- package/build/cjs/components/index.d.ts +1 -0
- package/build/cjs/constants-d81c3867.js +14 -0
- package/build/cjs/constants-d81c3867.js.map +1 -0
- package/build/cjs/divider-collapsed-153868e7.js +41 -0
- package/build/cjs/divider-collapsed-153868e7.js.map +1 -0
- package/build/cjs/index.js +14 -9
- package/build/cjs/index.js.map +1 -1
- package/build/cjs/index2.js +3 -2
- package/build/cjs/index2.js.map +1 -1
- package/build/cjs/index3.js +3 -2
- package/build/cjs/index3.js.map +1 -1
- package/build/cjs/index4.js +3 -2
- package/build/cjs/index4.js.map +1 -1
- package/build/cjs/index5.js +4 -3
- package/build/cjs/index5.js.map +1 -1
- package/build/cjs/index6.js +4 -3
- package/build/cjs/index6.js.map +1 -1
- package/build/cjs/{style-inject.es-935afc04.js → style-inject.es-dcee06b6.js} +1 -8
- package/build/cjs/style-inject.es-dcee06b6.js.map +1 -0
- package/build/cjs/utils-a93dd754.js +8 -0
- package/build/cjs/utils-a93dd754.js.map +1 -0
- package/build/esm/{ActionBar-f1c9a2d3.js → ActionBar-68f814a3.js} +3 -2
- package/build/esm/{ActionBar-f1c9a2d3.js.map → ActionBar-68f814a3.js.map} +1 -1
- package/build/esm/AsideFallback.js +23 -0
- package/build/esm/AsideFallback.js.map +1 -0
- package/build/esm/AsideHeader.js +9 -21
- package/build/esm/AsideHeader.js.map +1 -1
- package/build/esm/Content-f94ba85d.js +14 -0
- package/build/esm/Content-f94ba85d.js.map +1 -0
- package/build/esm/Drawer.js +2 -1
- package/build/esm/Drawer.js.map +1 -1
- package/build/esm/{FooterItem-70c9cb68.js → FooterItem-39ac7c22.js} +4 -3
- package/build/esm/{FooterItem-70c9cb68.js.map → FooterItem-39ac7c22.js.map} +1 -1
- package/build/esm/FooterItem.js +4 -2
- package/build/esm/FooterItem.js.map +1 -1
- package/build/esm/{HotkeysPanel-82fe991b.js → HotkeysPanel-bd0e997d.js} +3 -2
- package/build/esm/{HotkeysPanel-82fe991b.js.map → HotkeysPanel-bd0e997d.js.map} +1 -1
- package/build/esm/{Item-f02541c1.js → Item-ab589218.js} +5 -8
- package/build/esm/Item-ab589218.js.map +1 -0
- package/build/esm/PageLayout.js +14 -84
- package/build/esm/PageLayout.js.map +1 -1
- package/build/esm/PageLayoutAside.js +859 -9
- package/build/esm/PageLayoutAside.js.map +1 -1
- package/build/esm/{Settings-21bc1aba.js → Settings-31634d93.js} +4 -3
- package/build/esm/{Settings-21bc1aba.js.map → Settings-31634d93.js.map} +1 -1
- package/build/esm/{Title-3d579ca4.js → Title-b2f2c4e9.js} +3 -2
- package/build/esm/{Title-3d579ca4.js.map → Title-b2f2c4e9.js.map} +1 -1
- package/build/esm/TopPanel-36ffc4c7.js +76 -0
- package/build/esm/TopPanel-36ffc4c7.js.map +1 -0
- package/build/esm/cn-589cd9e2.js +8 -0
- package/build/esm/cn-589cd9e2.js.map +1 -0
- package/build/esm/components/AsideHeader/AsideHeader.d.ts +0 -15
- package/build/esm/components/AsideHeader/__stories__/AsideHeader.stories.d.ts +4 -0
- package/build/esm/components/AsideHeader/components/PageLayout/AsideFallback.d.ts +6 -0
- package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.d.ts +2 -3
- package/build/esm/components/AsideHeader/types.d.ts +0 -1
- package/build/esm/components/CompositeBar/constants.d.ts +0 -1
- package/build/esm/components/Content/Content.d.ts +0 -1
- package/build/esm/components/constants.d.ts +2 -0
- package/build/esm/components/index.d.ts +1 -0
- package/build/esm/constants-b1604ff5.js +8 -0
- package/build/esm/constants-b1604ff5.js.map +1 -0
- package/build/esm/divider-collapsed-6468fa36.js +19 -0
- package/build/esm/divider-collapsed-6468fa36.js.map +1 -0
- package/build/esm/index.js +13 -9
- package/build/esm/index.js.map +1 -1
- package/build/esm/index2.js +3 -2
- package/build/esm/index2.js.map +1 -1
- package/build/esm/index3.js +3 -2
- package/build/esm/index3.js.map +1 -1
- package/build/esm/index4.js +3 -2
- package/build/esm/index4.js.map +1 -1
- package/build/esm/index5.js +4 -3
- package/build/esm/index5.js.map +1 -1
- package/build/esm/index6.js +4 -3
- package/build/esm/index6.js.map +1 -1
- package/build/esm/{style-inject.es-cfd97593.js → style-inject.es-1f59c1d0.js} +2 -8
- package/build/esm/style-inject.es-1f59c1d0.js.map +1 -0
- package/build/esm/utils-6d5146c7.js +6 -0
- package/build/esm/utils-6d5146c7.js.map +1 -0
- package/package.json +1 -1
- package/build/cjs/Content-20bde76c.js.map +0 -1
- package/build/cjs/FirstPanel-2f78b962.js +0 -902
- package/build/cjs/FirstPanel-2f78b962.js.map +0 -1
- package/build/cjs/Item-15bdb320.js.map +0 -1
- package/build/cjs/style-inject.es-935afc04.js.map +0 -1
- package/build/esm/Content-d8b28d56.js +0 -21
- package/build/esm/Content-d8b28d56.js.map +0 -1
- package/build/esm/FirstPanel-bafddc24.js +0 -875
- package/build/esm/FirstPanel-bafddc24.js.map +0 -1
- package/build/esm/Item-f02541c1.js.map +0 -1
- package/build/esm/style-inject.es-cfd97593.js.map +0 -1
package/build/cjs/PageLayout.js
CHANGED
|
@@ -4,103 +4,33 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var React = require('react');
|
|
6
6
|
var AsideHeaderContext = require('./AsideHeaderContext.js');
|
|
7
|
-
var Content = require('./Content-
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
|
|
12
|
-
var styleInject_es = require('./style-inject.es-935afc04.js');
|
|
13
|
-
require('@gravity-ui/icons');
|
|
14
|
-
require('./registerKeyset-f4ce9ee7.js');
|
|
15
|
-
require('./Drawer.js');
|
|
16
|
-
require('react-dom');
|
|
7
|
+
var Content = require('./Content-64d5738a.js');
|
|
8
|
+
var constants = require('./constants-d81c3867.js');
|
|
9
|
+
var utils = require('./utils-a93dd754.js');
|
|
10
|
+
var styleInject_es = require('./style-inject.es-dcee06b6.js');
|
|
11
|
+
require('./cn-1964a72a.js');
|
|
17
12
|
require('@bem-react/classname');
|
|
18
13
|
|
|
19
14
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
20
15
|
|
|
21
16
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
22
17
|
|
|
23
|
-
|
|
24
|
-
const useRefHeight = (ref) => {
|
|
25
|
-
const [topHeight, setTopHeight] = React__default["default"].useState(0);
|
|
26
|
-
React__default["default"].useEffect(() => {
|
|
27
|
-
if (ref.current) {
|
|
28
|
-
const { current } = ref;
|
|
29
|
-
setTopHeight(current.clientHeight);
|
|
30
|
-
}
|
|
31
|
-
}, [ref]);
|
|
32
|
-
return topHeight;
|
|
33
|
-
};
|
|
34
|
-
const useAsideHeaderTopPanel = ({ topAlert, }) => {
|
|
35
|
-
const topRef = React__default["default"].useRef(null);
|
|
36
|
-
const topHeight = useRefHeight(topRef);
|
|
37
|
-
const setAsideTopPanelHeight = React__default["default"].useCallback((clientHeight) => {
|
|
38
|
-
const gRootElement = document
|
|
39
|
-
.getElementsByClassName(G_ROOT_CLASS_NAME)
|
|
40
|
-
.item(0);
|
|
41
|
-
gRootElement === null || gRootElement === void 0 ? void 0 : gRootElement.style.setProperty('--gn-aside-top-panel-height', clientHeight + 'px');
|
|
42
|
-
}, []);
|
|
43
|
-
const updateTopSize = React__default["default"].useCallback(() => {
|
|
44
|
-
var _a;
|
|
45
|
-
if (topRef.current) {
|
|
46
|
-
setAsideTopPanelHeight(((_a = topRef.current) === null || _a === void 0 ? void 0 : _a.clientHeight) || 0);
|
|
47
|
-
}
|
|
48
|
-
}, [topRef, setAsideTopPanelHeight]);
|
|
49
|
-
React__default["default"].useLayoutEffect(() => {
|
|
50
|
-
const updateTopSizeDebounce = debounce.debounce_1(updateTopSize, 200, { leading: true });
|
|
51
|
-
if (topAlert) {
|
|
52
|
-
window.addEventListener('resize', updateTopSizeDebounce);
|
|
53
|
-
updateTopSizeDebounce();
|
|
54
|
-
}
|
|
55
|
-
return () => {
|
|
56
|
-
window.removeEventListener('resize', updateTopSizeDebounce);
|
|
57
|
-
setAsideTopPanelHeight(0);
|
|
58
|
-
};
|
|
59
|
-
}, [topAlert, topHeight, topRef, updateTopSize]);
|
|
60
|
-
return {
|
|
61
|
-
topRef,
|
|
62
|
-
updateTopSize,
|
|
63
|
-
};
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
const TopPanel = ({ topAlert }) => {
|
|
67
|
-
const { topRef, updateTopSize } = useAsideHeaderTopPanel({ topAlert });
|
|
68
|
-
const [opened, setOpened] = React__default["default"].useState(true);
|
|
69
|
-
const handleClose = React__default["default"].useCallback(() => {
|
|
70
|
-
var _a;
|
|
71
|
-
setOpened(false);
|
|
72
|
-
(_a = topAlert === null || topAlert === void 0 ? void 0 : topAlert.onCloseTopAlert) === null || _a === void 0 ? void 0 : _a.call(topAlert);
|
|
73
|
-
}, [topAlert]);
|
|
74
|
-
React__default["default"].useEffect(() => {
|
|
75
|
-
if (!opened) {
|
|
76
|
-
updateTopSize();
|
|
77
|
-
}
|
|
78
|
-
}, [opened, updateTopSize]);
|
|
79
|
-
if (!topAlert || !topAlert.message) {
|
|
80
|
-
return null;
|
|
81
|
-
}
|
|
82
|
-
return (React__default["default"].createElement("div", { ref: topRef, className: FirstPanel.b('pane-top', { opened }) }, opened && (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
83
|
-
React__default["default"].createElement(uikit.Alert, { className: FirstPanel.b('pane-top-alert', {
|
|
84
|
-
centered: topAlert.centered,
|
|
85
|
-
dense: topAlert.dense,
|
|
86
|
-
}), corners: "square", layout: "horizontal", theme: topAlert.theme || 'warning', icon: topAlert.icon, title: topAlert.title, message: topAlert.message, actions: topAlert.actions, onClose: topAlert.closable ? handleClose : undefined }),
|
|
87
|
-
React__default["default"].createElement("div", { className: FirstPanel.b('pane-top-divider') })))));
|
|
88
|
-
};
|
|
89
|
-
|
|
90
|
-
var css_248z = ".g-root{--gn-aside-header-background-color:var(--g-color-base-warning-light);--gn-aside-header-collapse-button-divider-line-color:var(\n --gn-aside-header-subheader-divider-line-color\n );--gn-aside-header-footer-item-icon-color:var(--g-color-text-primary);--gn-aside-header-subheader-item-icon-color:var(--g-color-text-primary);--gn-aside-header-item-icon-background-size:38px;--gn-aside-top-panel-height:0px}.g-root_theme_light,.g-root_theme_light-hc{--gn-aside-header-divider-line-color:var(--g-color-line-generic);--gn-aside-header-subheader-divider-line-color:var(--g-color-line-generic)}.g-root_theme_dark,.g-root_theme_dark-hc{--gn-aside-header-divider-line-color:var(--g-color-line-generic-solid);--gn-aside-header-subheader-divider-line-color:var(--g-color-line-generic-solid)}.gn-aside-header{--gn-aside-header-min-width:56px;height:100%;position:relative;width:100%}.gn-aside-header,.gn-aside-header__aside{background-color:var(--g-color-base-background)}.gn-aside-header__aside{box-sizing:border-box;display:flex;flex-direction:column;height:100vh;left:0;max-height:calc(100vh - var(--gn-aside-top-panel-height));position:sticky;top:0;width:inherit;z-index:100}.gn-aside-header__aside:after{background-color:var(--gn-aside-header-divider-line-color);content:\"\";height:100%;position:absolute;right:0;top:0;width:1px;z-index:2}.gn-aside-header__aside-popup-anchor{bottom:0;left:0;position:absolute;right:0;top:0;z-index:1}.gn-aside-header__aside-content{--gradient-height:334px;display:flex;flex-direction:column;height:inherit;overflow-x:hidden;position:relative;user-select:none;width:inherit;z-index:2}.gn-aside-header__aside-content>.gn-aside-header-logo{margin:8px 0}.gn-aside-header__aside-content_with-decoration{background:linear-gradient(180deg,var(--gn-aside-header-background-color) calc(var(--gradient-height)*.33),transparent calc(var(--gradient-height)*.88))}.gn-aside-header_compact .gn-aside-header__aside-content{background:transparent}.gn-aside-header__header{--gn-aside-header-header-divider-height:29px;box-sizing:border-box;flex:none;padding-bottom:22px;padding-top:8px;position:relative;width:100%;z-index:1}.gn-aside-header__header .gn-aside-header__header-divider{bottom:0;color:var(--gn-aside-header-background-color);display:none;left:0;position:absolute;z-index:-2}.gn-aside-header__header_with-decoration:before{background-color:var(--gn-aside-header-background-color);content:\"\";display:none;height:calc(100% - var(--gn-aside-header-header-divider-height));left:0;position:absolute;top:0;width:100%;z-index:-2}.gn-aside-header__header:after{background-color:var(--gn-aside-header-subheader-divider-line-color);bottom:12px;content:\"\";height:1px;left:0;position:absolute;width:100%;z-index:-2}.gn-aside-header_compact .gn-aside-header__header:before,.gn-aside-header_compact .gn-aside-header__header_with-decoration .gn-aside-header__header-divider{display:block}.gn-aside-header_compact .gn-aside-header__header_with-decoration:after{display:none}.gn-aside-header__menu-items{flex-grow:1}.gn-aside-header__footer{display:flex;flex-direction:column;flex-shrink:0;margin:8px 0;width:100%}.gn-aside-header__panels{bottom:0;left:0;max-height:calc(100vh - var(--gn-aside-top-panel-height));overflow:auto;position:fixed;right:0;top:var(--gn-aside-top-panel-height);z-index:98}.gn-aside-header__panel{height:100%}.gn-aside-header__pane-container{display:flex;flex-direction:row;outline:none;overflow:visible;user-select:text}.gn-aside-header__pane-top-divider{background-color:var(--gn-aside-header-collapse-button-divider-line-color);height:1px;margin-top:-1px}.gn-aside-header__pane-top-alert_centered{display:flex;justify-content:space-around}.gn-aside-header__pane-top-alert_dense{padding-bottom:var(--g-spacing-2);padding-top:var(--g-spacing-2)}.gn-aside-header_reverse .gn-aside-header__pane-container{flex-direction:row-reverse}.gn-aside-header__content{width:calc(100% - var(--gn-aside-header-size));z-index:95}.gn-aside-header__collapse-button{--yc-button-background-color-hover:transparent;border-top:1px solid var(--gn-aside-header-collapse-button-divider-line-color);box-sizing:border-box;flex:none;height:20px;margin-top:auto;overflow:hidden;width:100%}.gn-aside-header__collapse-button>.yc-button__text{align-items:center;display:flex;height:20px;justify-content:center}.gn-aside-header__collapse-button:not(.gn-aside-header__collapse-button_compact) .gn-aside-header__collapse-icon{transform:rotate(180deg)}.gn-aside-header__collapse-button .gn-aside-header__collapse-icon{color:var(--g-color-text-secondary)}.gn-aside-header__collapse-button:hover .gn-aside-header__collapse-icon{color:var(--g-color-text-primary)}";
|
|
18
|
+
var css_248z = ".g-root{--gn-aside-header-background-color:var(--g-color-base-warning-light);--gn-aside-header-collapse-button-divider-line-color:var(\n --gn-aside-header-subheader-divider-line-color\n );--gn-aside-header-footer-item-icon-color:var(--g-color-text-primary);--gn-aside-header-subheader-item-icon-color:var(--g-color-text-primary);--gn-aside-header-item-icon-background-size:38px;--gn-aside-top-panel-height:0px}.g-root_theme_light,.g-root_theme_light-hc{--gn-aside-header-divider-line-color:var(--g-color-line-generic);--gn-aside-header-subheader-divider-line-color:var(--g-color-line-generic)}.g-root_theme_dark,.g-root_theme_dark-hc{--gn-aside-header-divider-line-color:var(--g-color-line-generic-solid);--gn-aside-header-subheader-divider-line-color:var(--g-color-line-generic-solid)}.gn-aside-header{--gn-aside-header-min-width:56px;height:100%;position:relative;width:100%}.gn-aside-header,.gn-aside-header__aside{background-color:var(--g-color-base-background)}.gn-aside-header__aside{box-sizing:border-box;display:flex;flex-direction:column;height:100vh;left:0;margin-top:var(--gn-aside-top-panel-height);max-height:calc(100vh - var(--gn-aside-top-panel-height));position:sticky;top:var(--gn-aside-top-panel-height);width:inherit;z-index:100}.gn-aside-header__aside:after{background-color:var(--gn-aside-header-divider-line-color);content:\"\";height:100%;position:absolute;right:0;top:0;width:1px;z-index:2}.gn-aside-header__aside-popup-anchor{bottom:0;left:0;position:absolute;right:0;top:0;z-index:1}.gn-aside-header__aside-content{--gradient-height:334px;display:flex;flex-direction:column;height:inherit;overflow-x:hidden;position:relative;user-select:none;width:inherit;z-index:2}.gn-aside-header__aside-content>.gn-aside-header-logo{margin:8px 0}.gn-aside-header__aside-content_with-decoration{background:linear-gradient(180deg,var(--gn-aside-header-background-color) calc(var(--gradient-height)*.33),transparent calc(var(--gradient-height)*.88))}.gn-aside-header_compact .gn-aside-header__aside-content{background:transparent}.gn-aside-header__header{--gn-aside-header-header-divider-height:29px;box-sizing:border-box;flex:none;padding-bottom:22px;padding-top:8px;position:relative;width:100%;z-index:1}.gn-aside-header__header .gn-aside-header__header-divider{bottom:0;color:var(--gn-aside-header-background-color);display:none;left:0;position:absolute;z-index:-2}.gn-aside-header__header_with-decoration:before{background-color:var(--gn-aside-header-background-color);content:\"\";display:none;height:calc(100% - var(--gn-aside-header-header-divider-height));left:0;position:absolute;top:0;width:100%;z-index:-2}.gn-aside-header__header:after{background-color:var(--gn-aside-header-subheader-divider-line-color);bottom:12px;content:\"\";height:1px;left:0;position:absolute;width:100%;z-index:-2}.gn-aside-header_compact .gn-aside-header__header:before,.gn-aside-header_compact .gn-aside-header__header_with-decoration .gn-aside-header__header-divider{display:block}.gn-aside-header_compact .gn-aside-header__header_with-decoration:after{display:none}.gn-aside-header__menu-items{flex-grow:1}.gn-aside-header__footer{display:flex;flex-direction:column;flex-shrink:0;margin:8px 0;width:100%}.gn-aside-header__panels{bottom:0;left:0;max-height:calc(100vh - var(--gn-aside-top-panel-height));overflow:auto;position:fixed;right:0;top:var(--gn-aside-top-panel-height);z-index:98}.gn-aside-header__panel{height:100%}.gn-aside-header__pane-container{display:flex;flex-direction:row;outline:none;overflow:visible;user-select:text}.gn-aside-header__pane-top-divider{background-color:var(--gn-aside-header-divider-line-color);height:1px;margin-top:-1px}.gn-aside-header__pane-top{background:var(--g-color-base-background);position:fixed;top:0;width:100%;z-index:98}.gn-aside-header__pane-top-alert_centered{display:flex;justify-content:space-around}.gn-aside-header__pane-top-alert_dense{padding-bottom:var(--g-spacing-2);padding-top:var(--g-spacing-2)}.gn-aside-header__content{margin-top:var(--gn-aside-top-panel-height);width:calc(100% - var(--gn-aside-header-size));z-index:95}.gn-aside-header__collapse-button{--yc-button-background-color-hover:transparent;border-top:1px solid var(--gn-aside-header-collapse-button-divider-line-color);box-sizing:border-box;flex:none;height:20px;margin-top:auto;overflow:hidden;width:100%}.gn-aside-header__collapse-button>.yc-button__text{align-items:center;display:flex;height:20px;justify-content:center}.gn-aside-header__collapse-button:not(.gn-aside-header__collapse-button_compact) .gn-aside-header__collapse-icon{transform:rotate(180deg)}.gn-aside-header__collapse-button .gn-aside-header__collapse-icon{color:var(--g-color-text-secondary)}.gn-aside-header__collapse-button:hover .gn-aside-header__collapse-icon{color:var(--g-color-text-primary)}";
|
|
91
19
|
styleInject_es.styleInject(css_248z);
|
|
92
20
|
|
|
93
|
-
const
|
|
94
|
-
|
|
21
|
+
const TopPanel = React__default["default"].lazy(() => Promise.resolve().then(function () { return require('./TopPanel-b531a2be.js'); }).then((module) => ({ default: module.TopPanel })));
|
|
22
|
+
const Layout = ({ compact, className, children, topAlert }) => {
|
|
23
|
+
const size = compact ? constants.ASIDE_HEADER_COMPACT_WIDTH : constants.ASIDE_HEADER_EXPANDED_WIDTH;
|
|
95
24
|
const asideHeaderContextValue = React.useMemo(() => ({ size, compact }), [compact, size]);
|
|
96
25
|
return (React__default["default"].createElement(AsideHeaderContext.AsideHeaderContextProvider, { value: asideHeaderContextValue },
|
|
97
|
-
React__default["default"].createElement("div", { className:
|
|
98
|
-
topAlert && React__default["default"].createElement(
|
|
99
|
-
|
|
26
|
+
React__default["default"].createElement("div", { className: utils.b({ compact }, className), style: Object.assign({}, { '--gn-aside-header-size': `${size}px` }) },
|
|
27
|
+
topAlert && (React__default["default"].createElement(React.Suspense, { fallback: null },
|
|
28
|
+
React__default["default"].createElement(TopPanel, { topAlert: topAlert }))),
|
|
29
|
+
React__default["default"].createElement("div", { className: utils.b('pane-container') }, children))));
|
|
100
30
|
};
|
|
101
|
-
const ConnectedContent = ({ children,
|
|
31
|
+
const ConnectedContent = ({ children, renderContent, }) => {
|
|
102
32
|
const { size } = AsideHeaderContext.useAsideHeaderContext();
|
|
103
|
-
return (React__default["default"].createElement(Content.Content, {
|
|
33
|
+
return (React__default["default"].createElement(Content.Content, { size: size, className: utils.b('content'), renderContent: renderContent }, children));
|
|
104
34
|
};
|
|
105
35
|
const PageLayout = Object.assign(Layout, {
|
|
106
36
|
Content: ConnectedContent,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageLayout.js","sources":["../../../src/components/AsideHeader/useAsideHeaderTopPanel.tsx","../../../src/components/AsideHeader/components/TopPanel.tsx","../../../src/components/AsideHeader/components/PageLayout/PageLayout.tsx"],"sourcesContent":["import React from 'react';\n\nimport debounceFn from 'lodash/debounce';\nimport {AsideHeaderTopAlertProps} from '../types';\n\ntype AsideHeaderTopPanel = {\n topRef: React.RefObject<HTMLDivElement>;\n updateTopSize: () => void;\n};\n\nconst G_ROOT_CLASS_NAME = 'g-root';\n\nconst useRefHeight = (ref: React.RefObject<HTMLDivElement>) => {\n const [topHeight, setTopHeight] = React.useState(0);\n React.useEffect(() => {\n if (ref.current) {\n const {current} = ref;\n setTopHeight(current.clientHeight);\n }\n }, [ref]);\n return topHeight;\n};\n\nexport const useAsideHeaderTopPanel = ({\n topAlert,\n}: {\n topAlert?: AsideHeaderTopAlertProps;\n}): AsideHeaderTopPanel => {\n const topRef = React.useRef<HTMLDivElement>(null);\n const topHeight = useRefHeight(topRef);\n\n const setAsideTopPanelHeight = React.useCallback((clientHeight: number) => {\n const gRootElement = document\n .getElementsByClassName(G_ROOT_CLASS_NAME)\n .item(0) as HTMLElement | null;\n gRootElement?.style.setProperty('--gn-aside-top-panel-height', clientHeight + 'px');\n }, []);\n\n const updateTopSize = React.useCallback(() => {\n if (topRef.current) {\n setAsideTopPanelHeight(topRef.current?.clientHeight || 0);\n }\n }, [topRef, setAsideTopPanelHeight]);\n\n React.useLayoutEffect(() => {\n const updateTopSizeDebounce = debounceFn(updateTopSize, 200, {leading: true});\n\n if (topAlert) {\n window.addEventListener('resize', updateTopSizeDebounce);\n updateTopSizeDebounce();\n }\n return () => {\n window.removeEventListener('resize', updateTopSizeDebounce);\n setAsideTopPanelHeight(0);\n };\n }, [topAlert, topHeight, topRef, updateTopSize]);\n\n return {\n topRef,\n updateTopSize,\n };\n};\n","import React from 'react';\nimport {Alert} from '@gravity-ui/uikit';\n\nimport {b} from '../utils';\nimport {AsideHeaderTopAlertProps} from '../../types';\nimport {useAsideHeaderTopPanel} from '../useAsideHeaderTopPanel';\n\ntype Props = {\n topAlert?: AsideHeaderTopAlertProps;\n};\n\nexport const TopPanel = ({topAlert}: Props) => {\n const {topRef, updateTopSize} = useAsideHeaderTopPanel({topAlert});\n\n const [opened, setOpened] = React.useState(true);\n\n const handleClose = React.useCallback(() => {\n setOpened(false);\n topAlert?.onCloseTopAlert?.();\n }, [topAlert]);\n\n React.useEffect(() => {\n if (!opened) {\n updateTopSize();\n }\n }, [opened, updateTopSize]);\n\n if (!topAlert || !topAlert.message) {\n return null;\n }\n\n return (\n <div ref={topRef} className={b('pane-top', {opened})}>\n {opened && (\n <React.Fragment>\n <Alert\n className={b('pane-top-alert', {\n centered: topAlert.centered,\n dense: topAlert.dense,\n })}\n corners=\"square\"\n layout=\"horizontal\"\n theme={topAlert.theme || 'warning'}\n icon={topAlert.icon}\n title={topAlert.title}\n message={topAlert.message}\n actions={topAlert.actions}\n onClose={topAlert.closable ? handleClose : undefined}\n />\n <div className={b('pane-top-divider')}></div>\n </React.Fragment>\n )}\n </div>\n );\n};\n","import React, {PropsWithChildren, useMemo} from 'react';\nimport {AsideHeaderContextProvider, useAsideHeaderContext} from '../../AsideHeaderContext';\nimport {Content, ContentProps} from '../../../Content';\nimport {TopPanel} from '..';\nimport {ASIDE_HEADER_COMPACT_WIDTH, ASIDE_HEADER_EXPANDED_WIDTH} from '../../../constants';\nimport {LayoutProps} from '../../types';\nimport {b} from '../../utils';\n\nimport '../../AsideHeader.scss';\n\nexport interface PageLayoutProps extends PropsWithChildren<LayoutProps> {\n reverse?: boolean;\n}\n\nconst Layout = ({compact, reverse, className, children, topAlert}: PageLayoutProps) => {\n const size = compact ? ASIDE_HEADER_COMPACT_WIDTH : ASIDE_HEADER_EXPANDED_WIDTH;\n const asideHeaderContextValue = useMemo(() => ({size, compact}), [compact, size]);\n\n return (\n <AsideHeaderContextProvider value={asideHeaderContextValue}>\n <div\n className={b({compact, reverse}, className)}\n style={{\n ...({'--gn-aside-header-size': `${size}px`} as React.CSSProperties),\n }}\n >\n {topAlert && <TopPanel topAlert={topAlert} />}\n <div className={b('pane-container')}>{children}</div>\n </div>\n </AsideHeaderContextProvider>\n );\n};\n\nconst ConnectedContent: React.FC<\n PropsWithChildren<Pick<ContentProps, 'renderContent' | 'withTop'>>\n> = ({children, withTop, renderContent}) => {\n const {size} = useAsideHeaderContext();\n\n return (\n <Content\n withTop={withTop}\n size={size}\n className={b('content')}\n renderContent={renderContent}\n >\n {children}\n </Content>\n );\n};\n\nconst PageLayout = Object.assign(Layout, {\n Content: ConnectedContent,\n});\n\nexport {PageLayout};\n"],"names":["React","debounceFn","b","Alert","ASIDE_HEADER_COMPACT_WIDTH","ASIDE_HEADER_EXPANDED_WIDTH","useMemo","AsideHeaderContextProvider","useAsideHeaderContext","Content"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PageLayout.js","sources":["../../../src/components/AsideHeader/components/PageLayout/PageLayout.tsx"],"sourcesContent":["import React, {PropsWithChildren, Suspense, useMemo} from 'react';\nimport {AsideHeaderContextProvider, useAsideHeaderContext} from '../../AsideHeaderContext';\nimport {Content, ContentProps} from '../../../Content';\nimport {ASIDE_HEADER_COMPACT_WIDTH, ASIDE_HEADER_EXPANDED_WIDTH} from '../../../constants';\nimport {LayoutProps} from '../../types';\nimport {b} from '../../utils';\n\nimport '../../AsideHeader.scss';\n\nconst TopPanel = React.lazy(() =>\n import('../TopPanel').then((module) => ({default: module.TopPanel})),\n);\n\nexport interface PageLayoutProps extends PropsWithChildren<LayoutProps> {}\n\nconst Layout = ({compact, className, children, topAlert}: PageLayoutProps) => {\n const size = compact ? ASIDE_HEADER_COMPACT_WIDTH : ASIDE_HEADER_EXPANDED_WIDTH;\n const asideHeaderContextValue = useMemo(() => ({size, compact}), [compact, size]);\n\n return (\n <AsideHeaderContextProvider value={asideHeaderContextValue}>\n <div\n className={b({compact}, className)}\n style={{\n ...({'--gn-aside-header-size': `${size}px`} as React.CSSProperties),\n }}\n >\n {topAlert && (\n <Suspense fallback={null}>\n <TopPanel topAlert={topAlert} />\n </Suspense>\n )}\n <div className={b('pane-container')}>{children}</div>\n </div>\n </AsideHeaderContextProvider>\n );\n};\n\nconst ConnectedContent: React.FC<PropsWithChildren<Pick<ContentProps, 'renderContent'>>> = ({\n children,\n renderContent,\n}) => {\n const {size} = useAsideHeaderContext();\n\n return (\n <Content size={size} className={b('content')} renderContent={renderContent}>\n {children}\n </Content>\n );\n};\n\nconst PageLayout = Object.assign(Layout, {\n Content: ConnectedContent,\n});\n\nexport {PageLayout};\n"],"names":["React","ASIDE_HEADER_COMPACT_WIDTH","ASIDE_HEADER_EXPANDED_WIDTH","useMemo","AsideHeaderContextProvider","b","Suspense","useAsideHeaderContext","Content"],"mappings":";;;;;;;;;;;;;;;;;;;;AASA,MAAM,QAAQ,GAAGA,yBAAK,CAAC,IAAI,CAAC,MACxB,oDAAO,wBAAa,KAAC,CAAC,IAAI,CAAC,CAAC,MAAM,MAAM,EAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAC,CAAC,CAAC,CACvE,CAAC;AAIF,MAAM,MAAM,GAAG,CAAC,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAkB,KAAI;IACzE,MAAM,IAAI,GAAG,OAAO,GAAGC,oCAA0B,GAAGC,qCAA2B,CAAC;IAChF,MAAM,uBAAuB,GAAGC,aAAO,CAAC,OAAO,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;AAElF,IAAA,QACIH,yBAAC,CAAA,aAAA,CAAAI,6CAA0B,EAAC,EAAA,KAAK,EAAE,uBAAuB,EAAA;AACtD,QAAAJ,yBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAEK,OAAC,CAAC,EAAC,OAAO,EAAC,EAAE,SAAS,CAAC,EAClC,KAAK,oBACG,EAAC,wBAAwB,EAAE,CAAG,EAAA,IAAI,IAAI,EAAyB,CAAA,EAAA;AAGtE,YAAA,QAAQ,KACLL,yBAAA,CAAA,aAAA,CAACM,cAAQ,EAAC,EAAA,QAAQ,EAAE,IAAI,EAAA;AACpB,gBAAAN,yBAAA,CAAA,aAAA,CAAC,QAAQ,EAAC,EAAA,QAAQ,EAAE,QAAQ,EAAA,CAAI,CACzB,CACd;AACD,YAAAA,yBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEK,OAAC,CAAC,gBAAgB,CAAC,EAAG,EAAA,QAAQ,CAAO,CACnD,CACmB,EAC/B;AACN,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAqE,CAAC,EACxF,QAAQ,EACR,aAAa,GAChB,KAAI;AACD,IAAA,MAAM,EAAC,IAAI,EAAC,GAAGE,wCAAqB,EAAE,CAAC;IAEvC,QACIP,wCAACQ,eAAO,EAAA,EAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAEH,OAAC,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,aAAa,EACrE,EAAA,QAAQ,CACH,EACZ;AACN,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AACrC,IAAA,OAAO,EAAE,gBAAgB;AAC5B,CAAA;;;;"}
|