@gravity-ui/navigation 2.26.0 → 2.28.0-beta.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/build/cjs/{ActionBar-3c6cdf57.js → ActionBar-CDm7idll.js} +8 -12
- package/build/cjs/{ActionBar-3c6cdf57.js.map → ActionBar-CDm7idll.js.map} +1 -1
- package/build/cjs/AsideFallback.js +10 -16
- package/build/cjs/AsideFallback.js.map +1 -1
- package/build/cjs/AsideHeader.js +15 -20
- package/build/cjs/AsideHeader.js.map +1 -1
- package/build/cjs/AsideHeaderContext.js +4 -10
- package/build/cjs/AsideHeaderContext.js.map +1 -1
- package/build/cjs/Content-Dy2XkiRi.js +16 -0
- package/build/cjs/{Content-64d5738a.js.map → Content-Dy2XkiRi.js.map} +1 -1
- package/build/cjs/Drawer.js +110 -809
- package/build/cjs/Drawer.js.map +1 -1
- package/build/cjs/{FooterItem-7491de3b.js → FooterItem-Bm1QrOs3.js} +50 -54
- package/build/cjs/{FooterItem-7491de3b.js.map → FooterItem-Bm1QrOs3.js.map} +1 -1
- package/build/cjs/FooterItem.js +8 -13
- package/build/cjs/FooterItem.js.map +1 -1
- package/build/cjs/{HotkeysPanel-c3315c0b.js → HotkeysPanel-DwaMkePp.js} +12 -16
- package/build/cjs/{HotkeysPanel-c3315c0b.js.map → HotkeysPanel-DwaMkePp.js.map} +1 -1
- package/build/cjs/{Item-7c1b54f5.js → Item-C8T3eOCP.js} +38 -41
- package/build/cjs/Item-C8T3eOCP.js.map +1 -0
- package/build/cjs/PageLayout.js +12 -18
- package/build/cjs/PageLayout.js.map +1 -1
- package/build/cjs/{PageLayoutAside-946fbebf.js → PageLayoutAside-BmldF8Ej.js} +84 -89
- package/build/cjs/PageLayoutAside-BmldF8Ej.js.map +1 -0
- package/build/cjs/PageLayoutAside.js +9 -10
- package/build/cjs/PageLayoutAside.js.map +1 -1
- package/build/cjs/{Settings-8dc2a8ee.js → Settings-BJ7TUzxJ.js} +99 -91
- package/build/{esm/Settings-e660a4c5.js.map → cjs/Settings-BJ7TUzxJ.js.map} +1 -1
- package/build/cjs/{Title-54580605.js → Title-CVR1mn8n.js} +7 -11
- package/build/cjs/{Title-54580605.js.map → Title-CVR1mn8n.js.map} +1 -1
- package/build/cjs/{TopPanel-33f1e6c1.js → TopPanel-9Y0BQELX.js} +19 -22
- package/build/cjs/TopPanel-9Y0BQELX.js.map +1 -0
- package/build/cjs/_commonjsHelpers-BJu3ubxk.js +11 -0
- package/build/cjs/_commonjsHelpers-BJu3ubxk.js.map +1 -0
- package/build/cjs/{cn-9933321a.js → cn-DSlPZbcs.js} +1 -1
- package/build/cjs/{cn-9933321a.js.map → cn-DSlPZbcs.js.map} +1 -1
- package/build/cjs/components/ActionBar/__stories__/ActionBar.stories.d.ts +20 -0
- package/build/cjs/components/ActionBar/__stories__/ActionBarShowcase.d.ts +2 -0
- package/build/cjs/components/ActionBar/__stories__/ActionBarSingleSection.d.ts +2 -0
- package/build/cjs/components/AsideHeader/__stories__/AsideHeader.stories.d.ts +14 -0
- package/build/cjs/components/AsideHeader/__stories__/AsideHeaderShowcase.d.ts +14 -0
- package/build/cjs/components/AsideHeader/__stories__/getAsideHeaderWrapper.d.ts +3 -0
- package/build/cjs/components/AsideHeader/__stories__/moc.d.ts +5 -0
- package/build/cjs/components/AsideHeader/types.d.ts +1 -0
- package/build/cjs/components/CompositeBar/CompositeBar.d.ts +1 -0
- package/build/cjs/components/CompositeBar/Item/Item.d.ts +1 -0
- package/build/cjs/components/Drawer/__stories__/DisablePortal.d.ts +3 -0
- package/build/cjs/components/Drawer/__stories__/Drawer.stories.d.ts +6 -0
- package/build/cjs/components/Drawer/__stories__/DrawerShowcase.d.ts +3 -0
- package/build/cjs/components/Drawer/__stories__/HideVeil.d.ts +3 -0
- package/build/cjs/components/Drawer/__stories__/ResizableItem.d.ts +3 -0
- package/build/cjs/components/Drawer/__stories__/moc.d.ts +2 -0
- package/build/cjs/components/Footer/desktop/__stories__/Footer.stories.d.ts +6 -0
- package/build/cjs/components/Footer/desktop/__stories__/FooterShowcase.d.ts +4 -0
- package/build/cjs/components/Footer/desktop/__stories__/moc.d.ts +3 -0
- package/build/cjs/components/Footer/mobile/__stories__/MobileFooter.stories.d.ts +6 -0
- package/build/cjs/components/Footer/mobile/__stories__/MobileFooterShowcase.d.ts +4 -0
- package/build/cjs/components/Footer/mobile/__stories__/moc.d.ts +3 -0
- package/build/cjs/components/FooterItem/__stories__/FooterItem.stories.d.ts +5 -0
- package/build/cjs/components/HotkeysPanel/__stories__/HotkeysPanel.stories.d.ts +4 -0
- package/build/cjs/components/HotkeysPanel/__stories__/HotkeysPanelShowcase.d.ts +6 -0
- package/build/cjs/components/HotkeysPanel/__stories__/moc.d.ts +2 -0
- package/build/cjs/components/Logo/__stories__/Logo.stories.d.ts +8 -0
- package/build/cjs/components/MobileHeader/BurgerMenu/__stories__/BurgerMenu.stories.d.ts +5 -0
- package/build/cjs/components/MobileHeader/BurgerMenu/__stories__/moc.d.ts +2 -0
- package/build/cjs/components/MobileHeader/OverlapPanel/__stories__/OverlapPanel.stories.d.ts +5 -0
- package/build/cjs/components/MobileHeader/OverlapPanel/__stories__/moc.d.ts +2 -0
- package/build/cjs/components/MobileHeader/__stories__/MobileHeader.stories.d.ts +3 -0
- package/build/cjs/components/MobileHeader/__stories__/MobileHeaderShowcase.d.ts +3 -0
- package/build/cjs/components/MobileHeader/__stories__/moc.d.ts +1 -0
- package/build/cjs/components/MobileLogo/__stories__/MobileLogo.stories.d.ts +4 -0
- package/build/cjs/components/Settings/__stories__/Settings.stories.d.ts +4 -0
- package/build/cjs/components/Settings/__stories__/SettingsDemo.d.ts +14 -0
- package/build/cjs/components/Settings/__stories__/SettingsMobileDemo.d.ts +8 -0
- package/build/cjs/components/types.d.ts +2 -0
- package/build/cjs/{constants-d81c3867.js → constants-B0DLAQY9.js} +1 -1
- package/build/cjs/{constants-d81c3867.js.map → constants-B0DLAQY9.js.map} +1 -1
- package/build/cjs/debounce-RFF04eVR.js +660 -0
- package/build/cjs/{debounce-8772fd80.js.map → debounce-RFF04eVR.js.map} +1 -1
- package/build/cjs/{divider-collapsed-b743122e.js → divider-collapsed-BLSp99lJ.js} +7 -9
- package/build/cjs/divider-collapsed-BLSp99lJ.js.map +1 -0
- package/build/cjs/index.js +4 -191
- package/build/cjs/index.js.map +1 -1
- package/build/cjs/index2.js +7 -6
- package/build/cjs/index2.js.map +1 -1
- package/build/cjs/index3.js +8 -8
- package/build/cjs/index4.js +12 -9
- package/build/cjs/index4.js.map +1 -1
- package/build/cjs/index5.js +12 -12
- package/build/cjs/index6.js +186 -15
- package/build/cjs/index6.js.map +1 -1
- package/build/cjs/{style-inject.es-dcee06b6.js → style-inject.es-XZHJH68X.js} +1 -1
- package/build/cjs/{style-inject.es-dcee06b6.js.map → style-inject.es-XZHJH68X.js.map} +1 -1
- package/build/cjs/{tslib.es6-705c6589.js → tslib.es6-DPGnagUB.js} +33 -31
- package/build/cjs/tslib.es6-DPGnagUB.js.map +1 -0
- package/build/cjs/utils-BrRoop7o.js +8 -0
- package/build/cjs/{utils-db3e03c2.js.map → utils-BrRoop7o.js.map} +1 -1
- package/build/esm/{ActionBar-834b178a.js → ActionBar-DXY9YzI9.js} +3 -3
- package/build/esm/{ActionBar-834b178a.js.map → ActionBar-DXY9YzI9.js.map} +1 -1
- package/build/esm/AsideFallback.js +5 -5
- package/build/esm/AsideFallback.js.map +1 -1
- package/build/esm/AsideHeader.js +11 -10
- package/build/esm/AsideHeader.js.map +1 -1
- package/build/esm/{Content-f94ba85d.js → Content-c3e3OunO.js} +1 -1
- package/build/esm/{Content-f94ba85d.js.map → Content-c3e3OunO.js.map} +1 -1
- package/build/esm/Drawer.js +81 -773
- package/build/esm/Drawer.js.map +1 -1
- package/build/esm/{FooterItem-f9f2cf2b.js → FooterItem-DnunmgeX.js} +4 -4
- package/build/esm/{FooterItem-f9f2cf2b.js.map → FooterItem-DnunmgeX.js.map} +1 -1
- package/build/esm/FooterItem.js +7 -6
- package/build/esm/FooterItem.js.map +1 -1
- package/build/esm/{HotkeysPanel-c6beeaf4.js → HotkeysPanel-B8euxFsz.js} +4 -4
- package/build/esm/{HotkeysPanel-c6beeaf4.js.map → HotkeysPanel-B8euxFsz.js.map} +1 -1
- package/build/esm/{Item-fb2a4efc.js → Item-CikAfZzN.js} +8 -7
- package/build/esm/Item-CikAfZzN.js.map +1 -0
- package/build/esm/PageLayout.js +6 -6
- package/build/esm/{PageLayoutAside-d78babcb.js → PageLayoutAside-BeTPkj8s.js} +19 -20
- package/build/esm/PageLayoutAside-BeTPkj8s.js.map +1 -0
- package/build/esm/PageLayoutAside.js +9 -8
- package/build/esm/PageLayoutAside.js.map +1 -1
- package/build/esm/{Settings-e660a4c5.js → Settings-CDM4xCRf.js} +23 -11
- package/build/{cjs/Settings-8dc2a8ee.js.map → esm/Settings-CDM4xCRf.js.map} +1 -1
- package/build/esm/{Title-03b4255a.js → Title-Ga3UB7On.js} +3 -3
- package/build/esm/{Title-03b4255a.js.map → Title-Ga3UB7On.js.map} +1 -1
- package/build/esm/{TopPanel-627d614f.js → TopPanel-C4XpFXiG.js} +7 -6
- package/build/esm/TopPanel-C4XpFXiG.js.map +1 -0
- package/build/esm/_commonjsHelpers-BFTU3MAI.js +8 -0
- package/build/esm/_commonjsHelpers-BFTU3MAI.js.map +1 -0
- package/build/esm/{cn-ffe5e9f5.js → cn-CgiqTV3v.js} +1 -1
- package/build/esm/{cn-ffe5e9f5.js.map → cn-CgiqTV3v.js.map} +1 -1
- package/build/esm/components/ActionBar/__stories__/ActionBar.stories.d.ts +20 -0
- package/build/esm/components/ActionBar/__stories__/ActionBarShowcase.d.ts +2 -0
- package/build/esm/components/ActionBar/__stories__/ActionBarSingleSection.d.ts +2 -0
- package/build/esm/components/AsideHeader/__stories__/AsideHeader.stories.d.ts +14 -0
- package/build/esm/components/AsideHeader/__stories__/AsideHeaderShowcase.d.ts +14 -0
- package/build/esm/components/AsideHeader/__stories__/getAsideHeaderWrapper.d.ts +3 -0
- package/build/esm/components/AsideHeader/__stories__/moc.d.ts +5 -0
- package/build/esm/components/AsideHeader/types.d.ts +1 -0
- package/build/esm/components/CompositeBar/CompositeBar.d.ts +1 -0
- package/build/esm/components/CompositeBar/Item/Item.d.ts +1 -0
- package/build/esm/components/Drawer/__stories__/DisablePortal.d.ts +3 -0
- package/build/esm/components/Drawer/__stories__/Drawer.stories.d.ts +6 -0
- package/build/esm/components/Drawer/__stories__/DrawerShowcase.d.ts +3 -0
- package/build/esm/components/Drawer/__stories__/HideVeil.d.ts +3 -0
- package/build/esm/components/Drawer/__stories__/ResizableItem.d.ts +3 -0
- package/build/esm/components/Drawer/__stories__/moc.d.ts +2 -0
- package/build/esm/components/Footer/desktop/__stories__/Footer.stories.d.ts +6 -0
- package/build/esm/components/Footer/desktop/__stories__/FooterShowcase.d.ts +4 -0
- package/build/esm/components/Footer/desktop/__stories__/moc.d.ts +3 -0
- package/build/esm/components/Footer/mobile/__stories__/MobileFooter.stories.d.ts +6 -0
- package/build/esm/components/Footer/mobile/__stories__/MobileFooterShowcase.d.ts +4 -0
- package/build/esm/components/Footer/mobile/__stories__/moc.d.ts +3 -0
- package/build/esm/components/FooterItem/__stories__/FooterItem.stories.d.ts +5 -0
- package/build/esm/components/HotkeysPanel/__stories__/HotkeysPanel.stories.d.ts +4 -0
- package/build/esm/components/HotkeysPanel/__stories__/HotkeysPanelShowcase.d.ts +6 -0
- package/build/esm/components/HotkeysPanel/__stories__/moc.d.ts +2 -0
- package/build/esm/components/Logo/__stories__/Logo.stories.d.ts +8 -0
- package/build/esm/components/MobileHeader/BurgerMenu/__stories__/BurgerMenu.stories.d.ts +5 -0
- package/build/esm/components/MobileHeader/BurgerMenu/__stories__/moc.d.ts +2 -0
- package/build/esm/components/MobileHeader/OverlapPanel/__stories__/OverlapPanel.stories.d.ts +5 -0
- package/build/esm/components/MobileHeader/OverlapPanel/__stories__/moc.d.ts +2 -0
- package/build/esm/components/MobileHeader/__stories__/MobileHeader.stories.d.ts +3 -0
- package/build/esm/components/MobileHeader/__stories__/MobileHeaderShowcase.d.ts +3 -0
- package/build/esm/components/MobileHeader/__stories__/moc.d.ts +1 -0
- package/build/esm/components/MobileLogo/__stories__/MobileLogo.stories.d.ts +4 -0
- package/build/esm/components/Settings/__stories__/Settings.stories.d.ts +4 -0
- package/build/esm/components/Settings/__stories__/SettingsDemo.d.ts +14 -0
- package/build/esm/components/Settings/__stories__/SettingsMobileDemo.d.ts +8 -0
- package/build/esm/components/types.d.ts +2 -0
- package/build/esm/{constants-b1604ff5.js → constants-ChYDZ5F2.js} +2 -2
- package/build/esm/{constants-b1604ff5.js.map → constants-ChYDZ5F2.js.map} +1 -1
- package/build/esm/debounce-DW3XyyUs.js +658 -0
- package/build/esm/{debounce-64cd2b4c.js.map → debounce-DW3XyyUs.js.map} +1 -1
- package/build/esm/{divider-collapsed-a0ef54c3.js → divider-collapsed-BgKmR8h9.js} +4 -5
- package/build/esm/{divider-collapsed-a0ef54c3.js.map → divider-collapsed-BgKmR8h9.js.map} +1 -1
- package/build/esm/index.js +4 -168
- package/build/esm/index.js.map +1 -1
- package/build/esm/index2.js +6 -3
- package/build/esm/index2.js.map +1 -1
- package/build/esm/index3.js +7 -5
- package/build/esm/index3.js.map +1 -1
- package/build/esm/index4.js +9 -6
- package/build/esm/index4.js.map +1 -1
- package/build/esm/index5.js +8 -7
- package/build/esm/index5.js.map +1 -1
- package/build/esm/index6.js +168 -9
- package/build/esm/index6.js.map +1 -1
- package/build/esm/{style-inject.es-1f59c1d0.js → style-inject.es-tgCJW-Cu.js} +1 -1
- package/build/esm/{style-inject.es-1f59c1d0.js.map → style-inject.es-tgCJW-Cu.js.map} +1 -1
- package/build/esm/{tslib.es6-3cd4e99f.js → tslib.es6-DG0QLwmL.js} +33 -31
- package/build/esm/tslib.es6-DG0QLwmL.js.map +1 -0
- package/build/esm/utils-D0s6YtvW.js +6 -0
- package/build/esm/{utils-117463a5.js.map → utils-D0s6YtvW.js.map} +1 -1
- package/package.json +6 -6
- package/build/cjs/Content-64d5738a.js +0 -20
- package/build/cjs/Item-7c1b54f5.js.map +0 -1
- package/build/cjs/PageLayoutAside-946fbebf.js.map +0 -1
- package/build/cjs/TopPanel-33f1e6c1.js.map +0 -1
- package/build/cjs/debounce-8772fd80.js +0 -545
- package/build/cjs/divider-collapsed-b743122e.js.map +0 -1
- package/build/cjs/tslib.es6-705c6589.js.map +0 -1
- package/build/cjs/utils-db3e03c2.js +0 -8
- package/build/esm/Item-fb2a4efc.js.map +0 -1
- package/build/esm/PageLayoutAside-d78babcb.js.map +0 -1
- package/build/esm/TopPanel-627d614f.js.map +0 -1
- package/build/esm/debounce-64cd2b4c.js +0 -543
- package/build/esm/tslib.es6-3cd4e99f.js.map +0 -1
- package/build/esm/utils-117463a5.js +0 -6
|
@@ -1,18 +1,16 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var tslib_es6 = require('./tslib.es6-
|
|
3
|
+
var tslib_es6 = require('./tslib.es6-DPGnagUB.js');
|
|
4
4
|
var React = require('react');
|
|
5
5
|
var uikit = require('@gravity-ui/uikit');
|
|
6
|
-
var
|
|
7
|
-
var
|
|
8
|
-
var
|
|
6
|
+
var _commonjsHelpers = require('./_commonjsHelpers-BJu3ubxk.js');
|
|
7
|
+
var Title = require('./Title-CVR1mn8n.js');
|
|
8
|
+
var cn = require('./cn-DSlPZbcs.js');
|
|
9
|
+
var styleInject_es = require('./style-inject.es-XZHJH68X.js');
|
|
10
|
+
var debounce = require('./debounce-RFF04eVR.js');
|
|
9
11
|
var i18n$1 = require('@gravity-ui/uikit/i18n');
|
|
10
|
-
var Title = require('./Title-54580605.js');
|
|
11
12
|
|
|
12
|
-
function
|
|
13
|
-
|
|
14
|
-
function _interopNamespace(e) {
|
|
15
|
-
if (e && e.__esModule) return e;
|
|
13
|
+
function _interopNamespaceDefault(e) {
|
|
16
14
|
var n = Object.create(null);
|
|
17
15
|
if (e) {
|
|
18
16
|
Object.keys(e).forEach(function (k) {
|
|
@@ -25,12 +23,11 @@ function _interopNamespace(e) {
|
|
|
25
23
|
}
|
|
26
24
|
});
|
|
27
25
|
}
|
|
28
|
-
n
|
|
26
|
+
n.default = e;
|
|
29
27
|
return Object.freeze(n);
|
|
30
28
|
}
|
|
31
29
|
|
|
32
|
-
var React__namespace = /*#__PURE__*/
|
|
33
|
-
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
30
|
+
var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
|
|
34
31
|
|
|
35
32
|
function useStableCallback(func) {
|
|
36
33
|
const funcRef = React__namespace.useRef();
|
|
@@ -72,13 +69,13 @@ function getSettingsFromChildrenRecursive(children, basepath = '', filterRe) {
|
|
|
72
69
|
const pages = {};
|
|
73
70
|
let hasGroup = false;
|
|
74
71
|
let hasItems = false;
|
|
75
|
-
|
|
72
|
+
React.Children.forEach(children, (element) => {
|
|
76
73
|
var _a, _b;
|
|
77
|
-
if (!
|
|
74
|
+
if (!React.isValidElement(element)) {
|
|
78
75
|
// Ignore non-elements.
|
|
79
76
|
return;
|
|
80
77
|
}
|
|
81
|
-
if (element.type ===
|
|
78
|
+
if (element.type === React.Fragment) {
|
|
82
79
|
// Transparently support React.Fragment and its children.
|
|
83
80
|
const { menu: menuFragment, pages: pagesFragment } = getSettingsFromChildrenRecursive(element.props.children, basepath, filterRe);
|
|
84
81
|
menu.push(...menuFragment);
|
|
@@ -125,12 +122,12 @@ function getSettingsFromChildrenRecursive(children, basepath = '', filterRe) {
|
|
|
125
122
|
}
|
|
126
123
|
function getSettingsPageFromChildren(children, filterRe) {
|
|
127
124
|
const page = { id: '', sections: [], hidden: true };
|
|
128
|
-
|
|
129
|
-
if (!
|
|
125
|
+
React.Children.forEach(children, (element) => {
|
|
126
|
+
if (!React.isValidElement(element)) {
|
|
130
127
|
// Ignore non-elements.
|
|
131
128
|
return;
|
|
132
129
|
}
|
|
133
|
-
if (element.type ===
|
|
130
|
+
if (element.type === React.Fragment) {
|
|
134
131
|
// Transparently support React.Fragment and its children.
|
|
135
132
|
const { sections, withBadge, hidden } = getSettingsPageFromChildren(element.props.children, filterRe);
|
|
136
133
|
page.sections.push(...sections);
|
|
@@ -153,12 +150,12 @@ function getSettingsPageFromChildren(children, filterRe) {
|
|
|
153
150
|
function getSettingsItemsFromChildren(children, filterRe) {
|
|
154
151
|
let hidden = true;
|
|
155
152
|
const items = [];
|
|
156
|
-
|
|
157
|
-
if (!
|
|
153
|
+
React.Children.forEach(children, (element) => {
|
|
154
|
+
if (!React.isValidElement(element)) {
|
|
158
155
|
// Ignore non-elements.
|
|
159
156
|
return;
|
|
160
157
|
}
|
|
161
|
-
if (element.type ===
|
|
158
|
+
if (element.type === React.Fragment) {
|
|
162
159
|
// Transparently support React.Fragment and its children.
|
|
163
160
|
const fragmentItems = getSettingsItemsFromChildren(element.props.children, filterRe);
|
|
164
161
|
items.push(...fragmentItems.items);
|
|
@@ -202,11 +199,11 @@ function getSelectedSettingsPart(pages, selection) {
|
|
|
202
199
|
}
|
|
203
200
|
|
|
204
201
|
const defaultValue = {};
|
|
205
|
-
const context =
|
|
202
|
+
const context = React.createContext(defaultValue);
|
|
206
203
|
context.displayName = 'SettingsSelectionContext';
|
|
207
204
|
function useSettingsSelectionProviderValue(pages, selection) {
|
|
208
|
-
const selectedRef =
|
|
209
|
-
const contextValue =
|
|
205
|
+
const selectedRef = React.useRef(null);
|
|
206
|
+
const contextValue = React.useMemo(() => {
|
|
210
207
|
if (!selection)
|
|
211
208
|
return { selectedRef };
|
|
212
209
|
return Object.assign({ selectedRef }, getSelectedSettingsPart(pages, selection));
|
|
@@ -215,7 +212,7 @@ function useSettingsSelectionProviderValue(pages, selection) {
|
|
|
215
212
|
}
|
|
216
213
|
const SettingsSelectionContextProvider = context.Provider;
|
|
217
214
|
function useSettingsSelectionContext() {
|
|
218
|
-
return
|
|
215
|
+
return React.useContext(context);
|
|
219
216
|
}
|
|
220
217
|
|
|
221
218
|
/**
|
|
@@ -235,11 +232,22 @@ function useSettingsSelectionContext() {
|
|
|
235
232
|
* // => true
|
|
236
233
|
*/
|
|
237
234
|
|
|
238
|
-
|
|
239
|
-
|
|
235
|
+
var identity_1;
|
|
236
|
+
var hasRequiredIdentity;
|
|
237
|
+
|
|
238
|
+
function requireIdentity () {
|
|
239
|
+
if (hasRequiredIdentity) return identity_1;
|
|
240
|
+
hasRequiredIdentity = 1;
|
|
241
|
+
function identity(value) {
|
|
242
|
+
return value;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
identity_1 = identity;
|
|
246
|
+
return identity_1;
|
|
240
247
|
}
|
|
241
248
|
|
|
242
|
-
var
|
|
249
|
+
var identityExports = requireIdentity();
|
|
250
|
+
var identity = /*@__PURE__*/_commonjsHelpers.getDefaultExportFromCjs(identityExports);
|
|
243
251
|
|
|
244
252
|
function isSectionSelected(selected, pageId, section) {
|
|
245
253
|
var _a;
|
|
@@ -263,14 +271,14 @@ var css_248z$2 = ".gn-settings-menu__group-heading{display:inline-block;font-wei
|
|
|
263
271
|
styleInject_es.styleInject(css_248z$2);
|
|
264
272
|
|
|
265
273
|
const b$3 = cn.block('settings-menu');
|
|
266
|
-
const SettingsMenu =
|
|
274
|
+
const SettingsMenu = React.forwardRef(
|
|
267
275
|
// eslint-disable-next-line prefer-arrow-callback
|
|
268
276
|
function SettingsMenu({ items, onChange, activeItemId }, ref) {
|
|
269
|
-
const [focusItemId, setFocusId] =
|
|
270
|
-
const containerRef =
|
|
277
|
+
const [focusItemId, setFocusId] = React.useState();
|
|
278
|
+
const containerRef = React.useRef(null);
|
|
271
279
|
const handleChange = useStableCallback(onChange);
|
|
272
280
|
const getFocused = useCurrent(focusItemId);
|
|
273
|
-
|
|
281
|
+
React.useImperativeHandle(ref, () => ({
|
|
274
282
|
handleKeyDown(event) {
|
|
275
283
|
if (!containerRef.current) {
|
|
276
284
|
return false;
|
|
@@ -294,10 +302,10 @@ function SettingsMenu({ items, onChange, activeItemId }, ref) {
|
|
|
294
302
|
setFocusId(undefined);
|
|
295
303
|
},
|
|
296
304
|
}), [getFocused, handleChange]);
|
|
297
|
-
return (
|
|
305
|
+
return (React.createElement("div", { ref: containerRef, className: b$3() }, items.map((firstLevelItem) => {
|
|
298
306
|
if ('groupTitle' in firstLevelItem) {
|
|
299
|
-
return (
|
|
300
|
-
|
|
307
|
+
return (React.createElement("div", { key: firstLevelItem.groupTitle, className: b$3('group') },
|
|
308
|
+
React.createElement("span", { className: b$3('group-heading') }, firstLevelItem.groupTitle),
|
|
301
309
|
firstLevelItem.items.map((item) => {
|
|
302
310
|
return renderMenuItem(item, onChange, activeItemId, focusItemId);
|
|
303
311
|
})));
|
|
@@ -306,7 +314,7 @@ function SettingsMenu({ items, onChange, activeItemId }, ref) {
|
|
|
306
314
|
})));
|
|
307
315
|
});
|
|
308
316
|
function renderMenuItem(item, onChange, activeItemId, focusItemId) {
|
|
309
|
-
return (
|
|
317
|
+
return (React.createElement("span", { key: item.title, className: b$3('item', {
|
|
310
318
|
selected: activeItemId === item.id,
|
|
311
319
|
disabled: item.disabled,
|
|
312
320
|
focused: focusItemId === item.id,
|
|
@@ -316,8 +324,8 @@ function renderMenuItem(item, onChange, activeItemId, focusItemId) {
|
|
|
316
324
|
onChange(item.id);
|
|
317
325
|
}
|
|
318
326
|
}, "data-id": item.id },
|
|
319
|
-
item.icon ?
|
|
320
|
-
|
|
327
|
+
item.icon ? React.createElement(uikit.Icon, Object.assign({ size: 16 }, item.icon, { className: b$3('item-icon') })) : undefined,
|
|
328
|
+
React.createElement("span", null, item.title)));
|
|
321
329
|
}
|
|
322
330
|
function focusNext(container, focused, direction) {
|
|
323
331
|
var _a;
|
|
@@ -338,8 +346,8 @@ styleInject_es.styleInject(css_248z$1);
|
|
|
338
346
|
|
|
339
347
|
const b$2 = cn.block('settings-menu-mobile');
|
|
340
348
|
const SettingsMenuMobile = ({ items, onChange, activeItemId, className, }) => {
|
|
341
|
-
const ref =
|
|
342
|
-
const tabItems =
|
|
349
|
+
const ref = React.useRef(null);
|
|
350
|
+
const tabItems = React.useMemo(() => {
|
|
343
351
|
const tabItems = [];
|
|
344
352
|
items.forEach((firstLevelItem) => {
|
|
345
353
|
if ('groupTitle' in firstLevelItem) {
|
|
@@ -360,8 +368,8 @@ const SettingsMenuMobile = ({ items, onChange, activeItemId, className, }) => {
|
|
|
360
368
|
const handleTouchMove = (e) => {
|
|
361
369
|
e.stopPropagation();
|
|
362
370
|
};
|
|
363
|
-
return (
|
|
364
|
-
|
|
371
|
+
return (React.createElement("div", { ref: ref, onTouchMove: handleTouchMove },
|
|
372
|
+
React.createElement(uikit.Tabs, { items: tabItems, className: b$2(null, className), size: "l", activeTab: activeItemId, onSelectTab: onChange })));
|
|
365
373
|
};
|
|
366
374
|
|
|
367
375
|
var label_title$1 = "Settings";
|
|
@@ -387,14 +395,14 @@ var i18n = i18n$1.addComponentKeysets({ en, ru }, `${cn.NAMESPACE}${COMPONENT}`)
|
|
|
387
395
|
|
|
388
396
|
const b$1 = cn.block('settings-search');
|
|
389
397
|
function SettingsSearch({ className, initialValue, onChange, debounce: debounce$1 = 200, inputRef, inputSize, placeholder, autoFocus = true, }) {
|
|
390
|
-
const [value, setValue] =
|
|
391
|
-
const onChangeDebounced = useStableCallback(debounce.
|
|
398
|
+
const [value, setValue] = React.useState(initialValue !== null && initialValue !== void 0 ? initialValue : '');
|
|
399
|
+
const onChangeDebounced = useStableCallback(debounce.debounceFn(onChange, debounce$1));
|
|
392
400
|
const handleUpdate = useStableCallback((updated) => {
|
|
393
401
|
setValue(updated);
|
|
394
402
|
onChangeDebounced(updated);
|
|
395
403
|
});
|
|
396
|
-
return (
|
|
397
|
-
|
|
404
|
+
return (React.createElement("div", { className: b$1(null, className) },
|
|
405
|
+
React.createElement(uikit.TextInput, { value: value, controlRef: inputRef, hasClear: true, autoFocus: autoFocus, size: inputSize, placeholder: placeholder, onUpdate: handleUpdate, controlProps: {
|
|
398
406
|
'aria-label': i18n('label_search'),
|
|
399
407
|
} })));
|
|
400
408
|
}
|
|
@@ -403,15 +411,15 @@ var css_248z = ".gn-settings{display:grid;grid-template-columns:216px 1fr;height
|
|
|
403
411
|
styleInject_es.styleInject(css_248z);
|
|
404
412
|
|
|
405
413
|
const b = cn.block('settings');
|
|
406
|
-
const SettingsContext =
|
|
407
|
-
const useSettingsContext = () =>
|
|
414
|
+
const SettingsContext = React.createContext({});
|
|
415
|
+
const useSettingsContext = () => React.useContext(SettingsContext);
|
|
408
416
|
function Settings(_a) {
|
|
409
417
|
var { loading, renderLoading, children, view = 'normal', renderRightAdornment, renderSectionRightAdornment, showRightAdornmentOnHover = true } = _a, props = tslib_es6.__rest(_a, ["loading", "renderLoading", "children", "view", "renderRightAdornment", "renderSectionRightAdornment", "showRightAdornmentOnHover"]);
|
|
410
418
|
if (loading) {
|
|
411
|
-
return (
|
|
419
|
+
return (React.createElement("div", { className: b({ loading: true, view }) }, typeof renderLoading === 'function' ? (renderLoading()) : (React.createElement(uikit.Loader, { className: b('loader'), size: "m" }))));
|
|
412
420
|
}
|
|
413
|
-
return (
|
|
414
|
-
|
|
421
|
+
return (React.createElement(SettingsContext.Provider, { value: { renderRightAdornment, renderSectionRightAdornment, showRightAdornmentOnHover } },
|
|
422
|
+
React.createElement(SettingsContent, Object.assign({ view: view }, props), children)));
|
|
415
423
|
}
|
|
416
424
|
const getPageTitleById = (menu, activePage) => {
|
|
417
425
|
for (const firstLevel of menu) {
|
|
@@ -428,21 +436,21 @@ const getPageTitleById = (menu, activePage) => {
|
|
|
428
436
|
function SettingsContent({ initialPage, initialSearch, selection, children, renderNotFound, title = i18n('label_title'), filterPlaceholder = i18n('label_filter-placeholder'), emptyPlaceholder = i18n('label_empty-placeholder'), view, onPageChange, onClose, }) {
|
|
429
437
|
var _a, _b;
|
|
430
438
|
const { renderSectionRightAdornment, showRightAdornmentOnHover } = useSettingsContext();
|
|
431
|
-
const [search, setSearch] =
|
|
439
|
+
const [search, setSearch] = React.useState(initialSearch !== null && initialSearch !== void 0 ? initialSearch : '');
|
|
432
440
|
const { menu, pages } = getSettingsFromChildren(children, search);
|
|
433
441
|
const selected = useSettingsSelectionProviderValue(pages, selection);
|
|
434
442
|
const pageKeys = Object.keys(pages);
|
|
435
443
|
const selectionInitialPage = selected.page && pageKeys.includes(selected.page.id) ? selected.page.id : undefined;
|
|
436
|
-
const [selectedPage, setCurrentPage] =
|
|
444
|
+
const [selectedPage, setCurrentPage] = React.useState(selectionInitialPage ||
|
|
437
445
|
(initialPage && pageKeys.includes(initialPage) ? initialPage : undefined));
|
|
438
|
-
const searchInputRef =
|
|
439
|
-
const menuRef =
|
|
446
|
+
const searchInputRef = React.useRef(null);
|
|
447
|
+
const menuRef = React.useRef(null);
|
|
440
448
|
const isMobile = view === 'mobile';
|
|
441
|
-
|
|
449
|
+
React.useEffect(() => {
|
|
442
450
|
var _a;
|
|
443
451
|
(_a = menuRef.current) === null || _a === void 0 ? void 0 : _a.clearFocus();
|
|
444
452
|
}, [search]);
|
|
445
|
-
|
|
453
|
+
React.useEffect(() => {
|
|
446
454
|
const handler = () => {
|
|
447
455
|
var _a;
|
|
448
456
|
(_a = menuRef.current) === null || _a === void 0 ? void 0 : _a.clearFocus();
|
|
@@ -464,51 +472,51 @@ function SettingsContent({ initialPage, initialSearch, selection, children, rend
|
|
|
464
472
|
return newPage;
|
|
465
473
|
});
|
|
466
474
|
};
|
|
467
|
-
|
|
475
|
+
React.useEffect(() => {
|
|
468
476
|
if (activePage !== selectedPage) {
|
|
469
477
|
handlePageChange(activePage);
|
|
470
478
|
}
|
|
471
479
|
});
|
|
472
|
-
|
|
480
|
+
React.useEffect(() => {
|
|
473
481
|
if (!selectionInitialPage)
|
|
474
482
|
return;
|
|
475
483
|
setCurrentPage(selectionInitialPage);
|
|
476
484
|
}, [selectionInitialPage]);
|
|
477
|
-
|
|
485
|
+
React.useEffect(() => {
|
|
478
486
|
var _a;
|
|
479
487
|
if ((_a = selected.selectedRef) === null || _a === void 0 ? void 0 : _a.current) {
|
|
480
488
|
selected.selectedRef.current.scrollIntoView();
|
|
481
489
|
}
|
|
482
490
|
}, [selected.selectedRef]);
|
|
483
491
|
const renderSetting = ({ title: settingTitle, element }) => {
|
|
484
|
-
return (
|
|
492
|
+
return (React.createElement("div", { key: settingTitle, className: b('section-item') }, React.cloneElement(element, Object.assign(Object.assign({}, element.props), { highlightedTitle: search && settingTitle ? prepareTitle(settingTitle, search) : settingTitle }))));
|
|
485
493
|
};
|
|
486
494
|
const renderSection = (page, section) => {
|
|
487
495
|
const isSelected = isSectionSelected(selected, page, section);
|
|
488
|
-
return (
|
|
489
|
-
section.showTitle && (
|
|
496
|
+
return (React.createElement("div", { key: section.title, className: b('section', { selected: isSelected, 'only-child': section.onlyChild }), ref: isSelected ? selected.selectedRef : undefined },
|
|
497
|
+
section.showTitle && (React.createElement("h3", { className: b('section-heading') }, renderSectionRightAdornment ? (React.createElement(uikit.Flex, { gap: 2, alignItems: 'center' },
|
|
490
498
|
section.title,
|
|
491
|
-
|
|
499
|
+
React.createElement("div", { className: b('section-right-adornment', {
|
|
492
500
|
hidden: showRightAdornmentOnHover,
|
|
493
501
|
}) }, renderSectionRightAdornment(section)))) : (section.title))),
|
|
494
502
|
section.header &&
|
|
495
|
-
(isMobile ? (
|
|
503
|
+
(isMobile ? (React.createElement("div", { className: b('section-subheader') }, section.header)) : (section.header)),
|
|
496
504
|
section.items.map((setting) => (setting.hidden ? null : renderSetting(setting)))));
|
|
497
505
|
};
|
|
498
506
|
const renderPageContent = (page) => {
|
|
499
507
|
if (!page) {
|
|
500
|
-
return typeof renderNotFound === 'function' ? (renderNotFound()) : (
|
|
508
|
+
return typeof renderNotFound === 'function' ? (renderNotFound()) : (React.createElement("div", { className: b('not-found') }, emptyPlaceholder));
|
|
501
509
|
}
|
|
502
510
|
const filteredSections = pages[page].sections.filter((section) => !section.hidden);
|
|
503
|
-
return (
|
|
504
|
-
!isMobile && (
|
|
505
|
-
|
|
511
|
+
return (React.createElement(React.Fragment, null,
|
|
512
|
+
!isMobile && (React.createElement(Title.Title, { hasSeparator: true, onClose: onClose }, getPageTitleById(menu, page))),
|
|
513
|
+
React.createElement("div", { className: b('content') }, filteredSections.map((section) => renderSection(page, section)))));
|
|
506
514
|
};
|
|
507
|
-
return (
|
|
508
|
-
|
|
509
|
-
isMobile ? (
|
|
510
|
-
|
|
511
|
-
|
|
515
|
+
return (React.createElement(SettingsSelectionContextProvider, { value: selected },
|
|
516
|
+
React.createElement("div", { className: b({ view }) },
|
|
517
|
+
isMobile ? (React.createElement(React.Fragment, null,
|
|
518
|
+
React.createElement(SettingsSearch, { inputRef: searchInputRef, className: b('search'), initialValue: initialSearch, onChange: setSearch, autoFocus: false, inputSize: 'xl' }),
|
|
519
|
+
React.createElement(SettingsMenuMobile, { items: menu, onChange: handlePageChange, activeItemId: activePage, className: b('tabs') }))) : (React.createElement("div", { className: b('menu'), onClick: () => {
|
|
512
520
|
if (searchInputRef.current) {
|
|
513
521
|
searchInputRef.current.focus();
|
|
514
522
|
}
|
|
@@ -519,35 +527,35 @@ function SettingsContent({ initialPage, initialSearch, selection, children, rend
|
|
|
519
527
|
}
|
|
520
528
|
}
|
|
521
529
|
} },
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
530
|
+
React.createElement(Title.Title, null, title),
|
|
531
|
+
React.createElement(SettingsSearch, { inputRef: searchInputRef, className: b('search'), initialValue: initialSearch, onChange: setSearch, placeholder: filterPlaceholder, autoFocus: true }),
|
|
532
|
+
React.createElement(SettingsMenu, { ref: menuRef, items: menu, onChange: handlePageChange, activeItemId: activePage }))),
|
|
533
|
+
React.createElement("div", { className: b('page') }, renderPageContent(activePage)))));
|
|
526
534
|
}
|
|
527
535
|
Settings.Group = function SettingsGroup({ children }) {
|
|
528
|
-
return
|
|
536
|
+
return React.createElement(React.Fragment, null, children);
|
|
529
537
|
};
|
|
530
538
|
Settings.Page = function SettingsPage({ children }) {
|
|
531
|
-
return
|
|
539
|
+
return React.createElement(React.Fragment, null, children);
|
|
532
540
|
};
|
|
533
541
|
Settings.Section = function SettingsSection({ children }) {
|
|
534
|
-
return
|
|
542
|
+
return React.createElement(React.Fragment, null, children);
|
|
535
543
|
};
|
|
536
544
|
Settings.Item = function SettingsItem(setting) {
|
|
537
|
-
const { id, labelId, highlightedTitle, children, align = 'center', withBadge, renderTitleComponent =
|
|
545
|
+
const { id, labelId, highlightedTitle, children, align = 'center', withBadge, renderTitleComponent = identity, mode, description, } = setting;
|
|
538
546
|
const selected = useSettingsSelectionContext();
|
|
539
547
|
const isSettingSelected = selected.setting && selected.setting.id === id;
|
|
540
548
|
const { renderRightAdornment, showRightAdornmentOnHover } = useSettingsContext();
|
|
541
|
-
const titleNode = (
|
|
542
|
-
return (
|
|
543
|
-
|
|
544
|
-
renderRightAdornment ? (
|
|
549
|
+
const titleNode = (React.createElement("span", { className: b('item-title', { badge: withBadge }) }, renderTitleComponent(highlightedTitle)));
|
|
550
|
+
return (React.createElement("div", { className: b('item', { align, mode, selected: isSettingSelected }), ref: isSettingSelected ? selected.selectedRef : undefined },
|
|
551
|
+
React.createElement("label", { className: b('item-heading'), id: labelId },
|
|
552
|
+
renderRightAdornment ? (React.createElement(uikit.Flex, { className: b('item-title-wrapper'), gap: 3 },
|
|
545
553
|
titleNode,
|
|
546
|
-
|
|
554
|
+
React.createElement("div", { className: b('item-right-adornment', {
|
|
547
555
|
hidden: showRightAdornmentOnHover,
|
|
548
556
|
}) }, renderRightAdornment(setting)))) : (titleNode),
|
|
549
|
-
description ?
|
|
550
|
-
|
|
557
|
+
description ? React.createElement("span", { className: b('item-description') }, description) : null),
|
|
558
|
+
React.createElement("div", { className: b('item-content') }, children)));
|
|
551
559
|
};
|
|
552
560
|
function prepareTitle(string, search) {
|
|
553
561
|
let temp = string.slice(0);
|
|
@@ -563,7 +571,7 @@ function prepareTitle(string, search) {
|
|
|
563
571
|
if (i > 0) {
|
|
564
572
|
title.push(temp.slice(0, i));
|
|
565
573
|
}
|
|
566
|
-
title.push(
|
|
574
|
+
title.push(React.createElement("strong", { key: key++, className: b('found') }, m));
|
|
567
575
|
temp = temp.slice(i + m.length);
|
|
568
576
|
}
|
|
569
577
|
}
|
|
@@ -576,4 +584,4 @@ function prepareTitle(string, search) {
|
|
|
576
584
|
exports.Settings = Settings;
|
|
577
585
|
exports.useSettingsContext = useSettingsContext;
|
|
578
586
|
exports.useSettingsSelectionContext = useSettingsSelectionContext;
|
|
579
|
-
//# sourceMappingURL=Settings-
|
|
587
|
+
//# sourceMappingURL=Settings-BJ7TUzxJ.js.map
|