@alfalab/core-components-tabs 7.2.8 → 7.3.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/{Component-0d7ca9a7.d.ts → Component-3677ec46.d.ts} +10 -0
- package/{esm/Component.responsive-0d7ca9a7.d.ts → Component.responsive-3677ec46.d.ts} +4 -3
- package/components/primary-tablist/Component.d.ts +1 -1
- package/components/primary-tablist/Component.desktop.js +2 -2
- package/components/primary-tablist/Component.js +4 -3
- package/components/primary-tablist/Component.mobile.js +3 -3
- package/components/primary-tablist/Component.responsive.d.ts +1 -1
- package/components/primary-tablist/Component.responsive.js +4 -4
- package/components/primary-tablist/index.css +29 -29
- package/components/primary-tablist/mobile.css +32 -32
- package/components/scrollable-container/Component.js +1 -1
- package/components/scrollable-container/index.css +5 -5
- package/components/secondary-tablist/Component.desktop.js +2 -2
- package/components/secondary-tablist/Component.js +1 -1
- package/components/secondary-tablist/Component.mobile.js +3 -3
- package/components/secondary-tablist/Component.responsive.js +2 -2
- package/components/secondary-tablist/index.css +11 -11
- package/components/secondary-tablist/mobile.css +13 -13
- package/components/tab/Component.js +1 -1
- package/components/tab/index.css +3 -3
- package/components/tabs/Component.d.ts +1 -1
- package/components/tabs/Component.desktop.js +3 -3
- package/components/tabs/Component.js +2 -2
- package/components/tabs/Component.mobile.d.ts +1 -1
- package/components/tabs/Component.mobile.js +3 -3
- package/components/tabs/Component.responsive.js +3 -3
- package/components/title/Component.js +2 -2
- package/components/title/index.js +1 -1
- package/{esm/Component-0d7ca9a7.d.ts → cssm/Component-3677ec46.d.ts} +10 -0
- package/{Component.responsive-0d7ca9a7.d.ts → cssm/Component.responsive-3677ec46.d.ts} +4 -3
- package/cssm/components/primary-tablist/Component.d.ts +1 -1
- package/cssm/components/primary-tablist/Component.js +3 -2
- package/cssm/components/primary-tablist/Component.responsive.d.ts +1 -1
- package/cssm/components/primary-tablist/Component.responsive.js +2 -2
- package/cssm/components/tabs/Component.d.ts +1 -1
- package/cssm/components/tabs/Component.js +2 -2
- package/cssm/components/tabs/Component.mobile.d.ts +1 -1
- package/cssm/components/title/Component.js +1 -1
- package/cssm/hooks/use-collapsible-elements.js +5 -3
- package/cssm/hooks/use-tablist-titles.d.ts +1 -1
- package/cssm/hooks/use-tablist-titles.js +31 -7
- package/cssm/{index-0d7ca9a7.d.ts → index-3677ec46.d.ts} +2 -2
- package/cssm/typings.d.ts +5 -1
- package/desktop.js +3 -3
- package/{cssm/Component-0d7ca9a7.d.ts → esm/Component-3677ec46.d.ts} +10 -0
- package/{modern/Component.responsive-0d7ca9a7.d.ts → esm/Component.responsive-3677ec46.d.ts} +4 -3
- package/esm/components/primary-tablist/Component.d.ts +1 -1
- package/esm/components/primary-tablist/Component.desktop.js +2 -2
- package/esm/components/primary-tablist/Component.js +4 -3
- package/esm/components/primary-tablist/Component.mobile.js +3 -3
- package/esm/components/primary-tablist/Component.responsive.d.ts +1 -1
- package/esm/components/primary-tablist/Component.responsive.js +4 -4
- package/esm/components/primary-tablist/index.css +29 -29
- package/esm/components/primary-tablist/mobile.css +32 -32
- package/esm/components/scrollable-container/Component.js +1 -1
- package/esm/components/scrollable-container/index.css +5 -5
- package/esm/components/secondary-tablist/Component.desktop.js +2 -2
- package/esm/components/secondary-tablist/Component.js +1 -1
- package/esm/components/secondary-tablist/Component.mobile.js +3 -3
- package/esm/components/secondary-tablist/Component.responsive.js +2 -2
- package/esm/components/secondary-tablist/index.css +11 -11
- package/esm/components/secondary-tablist/mobile.css +13 -13
- package/esm/components/tab/Component.js +1 -1
- package/esm/components/tab/index.css +3 -3
- package/esm/components/tabs/Component.d.ts +1 -1
- package/esm/components/tabs/Component.desktop.js +3 -3
- package/esm/components/tabs/Component.js +2 -2
- package/esm/components/tabs/Component.mobile.d.ts +1 -1
- package/esm/components/tabs/Component.mobile.js +3 -3
- package/esm/components/tabs/Component.responsive.js +3 -3
- package/esm/components/title/Component.js +2 -2
- package/esm/components/title/index.js +1 -1
- package/esm/desktop.js +3 -3
- package/esm/hooks/use-collapsible-elements.js +6 -4
- package/esm/hooks/use-tablist-titles.d.ts +1 -1
- package/esm/hooks/use-tablist-titles.js +32 -8
- package/esm/{index-0d7ca9a7.d.ts → index-3677ec46.d.ts} +2 -2
- package/esm/index.js +3 -3
- package/esm/index.module-307739e4.js +4 -0
- package/esm/index.module-426df292.js +4 -0
- package/esm/mobile.js +3 -3
- package/esm/responsive.js +3 -3
- package/esm/synthetic-events.js +1 -1
- package/esm/{tslib.es6-5bcf7106.d.ts → tslib.es6-991a0924.d.ts} +0 -0
- package/esm/{tslib.es6-5bcf7106.js → tslib.es6-991a0924.js} +0 -0
- package/esm/typings.d.ts +5 -1
- package/hooks/use-collapsible-elements.js +6 -4
- package/hooks/use-tablist-titles.d.ts +1 -1
- package/hooks/use-tablist-titles.js +32 -8
- package/{index-0d7ca9a7.d.ts → index-3677ec46.d.ts} +2 -2
- package/index.js +3 -3
- package/index.module-5b87e23a.js +6 -0
- package/index.module-78610370.js +6 -0
- package/mobile.js +3 -3
- package/modern/{Component-0d7ca9a7.d.ts → Component-3677ec46.d.ts} +10 -0
- package/{cssm/Component.responsive-0d7ca9a7.d.ts → modern/Component.responsive-3677ec46.d.ts} +4 -3
- package/modern/components/primary-tablist/Component.d.ts +1 -1
- package/modern/components/primary-tablist/Component.desktop.js +1 -1
- package/modern/components/primary-tablist/Component.js +3 -2
- package/modern/components/primary-tablist/Component.mobile.js +2 -2
- package/modern/components/primary-tablist/Component.responsive.d.ts +1 -1
- package/modern/components/primary-tablist/Component.responsive.js +3 -3
- package/modern/components/primary-tablist/index.css +29 -29
- package/modern/components/primary-tablist/mobile.css +32 -32
- package/modern/components/scrollable-container/Component.js +1 -1
- package/modern/components/scrollable-container/index.css +5 -5
- package/modern/components/secondary-tablist/Component.desktop.js +1 -1
- package/modern/components/secondary-tablist/Component.mobile.js +2 -2
- package/modern/components/secondary-tablist/Component.responsive.js +1 -1
- package/modern/components/secondary-tablist/index.css +11 -11
- package/modern/components/secondary-tablist/mobile.css +13 -13
- package/modern/components/tab/Component.js +1 -1
- package/modern/components/tab/index.css +3 -3
- package/modern/components/tabs/Component.d.ts +1 -1
- package/modern/components/tabs/Component.desktop.js +2 -2
- package/modern/components/tabs/Component.js +2 -2
- package/modern/components/tabs/Component.mobile.d.ts +1 -1
- package/modern/components/tabs/Component.mobile.js +2 -2
- package/modern/components/tabs/Component.responsive.js +2 -2
- package/modern/components/title/Component.js +1 -1
- package/modern/desktop.js +2 -2
- package/modern/hooks/use-collapsible-elements.js +5 -3
- package/modern/hooks/use-tablist-titles.d.ts +1 -1
- package/modern/hooks/use-tablist-titles.js +31 -7
- package/modern/{index-0d7ca9a7.d.ts → index-3677ec46.d.ts} +2 -2
- package/modern/index.js +2 -2
- package/modern/index.module-e2287162.js +4 -0
- package/modern/index.module-f5a85c82.js +4 -0
- package/modern/mobile.js +2 -2
- package/modern/responsive.js +2 -2
- package/modern/typings.d.ts +5 -1
- package/package.json +3 -3
- package/responsive.js +3 -3
- package/synthetic-events.js +1 -1
- package/{tslib.es6-59707042.d.ts → tslib.es6-ab9150c8.d.ts} +0 -0
- package/{tslib.es6-59707042.js → tslib.es6-ab9150c8.js} +0 -0
- package/typings.d.ts +5 -1
- package/esm/index.module-03fcf2ea.js +0 -4
- package/esm/index.module-3eafeccc.js +0 -4
- package/index.module-446ed63b.js +0 -6
- package/index.module-ca7a7cb9.js +0 -6
- package/modern/index.module-54abd631.js +0 -4
- package/modern/index.module-c40b8e40.js +0 -4
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { TabsProps } from "../../typings";
|
|
3
|
-
type TabsMobileProps = Omit<TabsProps, 'TabList' | 'size' | 'collapsible'>;
|
|
3
|
+
type TabsMobileProps = Omit<TabsProps, 'TabList' | 'size' | 'collapsible' | 'collapsedTabsIds'>;
|
|
4
4
|
declare const TabsMobile: ({ view, scrollable, ...restProps }: TabsMobileProps) => JSX.Element;
|
|
5
5
|
export { TabsMobileProps, TabsMobile };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { _ as __rest, a as __assign } from '../../tslib.es6-
|
|
1
|
+
import { _ as __rest, a as __assign } from '../../tslib.es6-991a0924.js';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { PrimaryTabListMobile } from '../primary-tablist/Component.mobile.js';
|
|
4
4
|
import { SecondaryTabListMobile } from '../secondary-tablist/Component.mobile.js';
|
|
@@ -17,10 +17,10 @@ import '../../synthetic-events.js';
|
|
|
17
17
|
import '../scrollable-container/Component.js';
|
|
18
18
|
import 'compute-scroll-into-view';
|
|
19
19
|
import '../title/Component.js';
|
|
20
|
-
import '../../index.module-
|
|
20
|
+
import '../../index.module-307739e4.js';
|
|
21
21
|
import '../secondary-tablist/Component.js';
|
|
22
22
|
import '@alfalab/core-components-tag/esm';
|
|
23
|
-
import '../../index.module-
|
|
23
|
+
import '../../index.module-426df292.js';
|
|
24
24
|
|
|
25
25
|
var views = {
|
|
26
26
|
primary: PrimaryTabListMobile,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { _ as __rest, a as __assign } from '../../tslib.es6-
|
|
1
|
+
import { _ as __rest, a as __assign } from '../../tslib.es6-991a0924.js';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { PrimaryTabListResponsive } from '../primary-tablist/Component.responsive.js';
|
|
4
4
|
import { SecondaryTabListResponsive } from '../secondary-tablist/Component.responsive.js';
|
|
@@ -18,12 +18,12 @@ import '../../synthetic-events.js';
|
|
|
18
18
|
import '../scrollable-container/Component.js';
|
|
19
19
|
import 'compute-scroll-into-view';
|
|
20
20
|
import '../title/Component.js';
|
|
21
|
-
import '../../index.module-
|
|
21
|
+
import '../../index.module-307739e4.js';
|
|
22
22
|
import '../primary-tablist/Component.mobile.js';
|
|
23
23
|
import '../secondary-tablist/Component.desktop.js';
|
|
24
24
|
import '../secondary-tablist/Component.js';
|
|
25
25
|
import '@alfalab/core-components-tag/esm';
|
|
26
|
-
import '../../index.module-
|
|
26
|
+
import '../../index.module-426df292.js';
|
|
27
27
|
import '../secondary-tablist/Component.mobile.js';
|
|
28
28
|
|
|
29
29
|
var views = {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { _ as __rest, a as __assign } from '../../tslib.es6-
|
|
1
|
+
import { _ as __rest, a as __assign } from '../../tslib.es6-991a0924.js';
|
|
2
2
|
import React, { forwardRef } from 'react';
|
|
3
3
|
import cn from 'classnames';
|
|
4
4
|
|
|
5
5
|
var Title = forwardRef(function (_a, ref) {
|
|
6
6
|
var _b, _c;
|
|
7
7
|
var id = _a.id, toggleClassName = _a.toggleClassName, title = _a.title, _d = _a.styles, styles = _d === void 0 ? {} : _d, _e = _a.rightAddons, rightAddons = _e === void 0 ? null : _e, _f = _a.hidden, hidden = _f === void 0 ? false : _f, _g = _a.selected, selected = _g === void 0 ? false : _g, _h = _a.disabled, disabled = _h === void 0 ? false : _h, _j = _a.collapsed, collapsed = _j === void 0 ? false : _j, _k = _a.focused, focused = _k === void 0 ? false : _k, _l = _a.isOption, isOption = _l === void 0 ? false : _l, restProps = __rest(_a, ["id", "toggleClassName", "title", "styles", "rightAddons", "hidden", "selected", "disabled", "collapsed", "focused", "isOption"]);
|
|
8
|
-
return hidden ? null : (React.createElement("button", __assign({}, restProps, { ref: ref, type: 'button', id: String(id), className: cn(styles.title, (_b = {},
|
|
8
|
+
return hidden ? null : (React.createElement("button", __assign({}, restProps, { ref: ref, disabled: disabled, type: 'button', id: String(id), className: cn(styles.title, (_b = {},
|
|
9
9
|
_b[styles.selected] = selected,
|
|
10
10
|
_b[styles.disabled] = disabled,
|
|
11
11
|
_b[styles.collapsed] = collapsed && !isOption,
|
package/esm/desktop.js
CHANGED
|
@@ -5,7 +5,7 @@ export { Tab } from './components/tab/Component.js';
|
|
|
5
5
|
export { TabsDesktop } from './components/tabs/Component.desktop.js';
|
|
6
6
|
export { useTabs } from './hooks/use-tabs.js';
|
|
7
7
|
export { useCollapsibleElements } from './hooks/use-collapsible-elements.js';
|
|
8
|
-
import './tslib.es6-
|
|
8
|
+
import './tslib.es6-991a0924.js';
|
|
9
9
|
import 'react';
|
|
10
10
|
import './components/primary-tablist/Component.js';
|
|
11
11
|
import 'classnames';
|
|
@@ -16,10 +16,10 @@ import './hooks/use-tablist-titles.js';
|
|
|
16
16
|
import '@alfalab/hooks';
|
|
17
17
|
import './synthetic-events.js';
|
|
18
18
|
import './components/title/Component.js';
|
|
19
|
-
import './index.module-
|
|
19
|
+
import './index.module-307739e4.js';
|
|
20
20
|
import 'compute-scroll-into-view';
|
|
21
21
|
import './components/secondary-tablist/Component.js';
|
|
22
22
|
import '@alfalab/core-components-tag/esm';
|
|
23
|
-
import './index.module-
|
|
23
|
+
import './index.module-426df292.js';
|
|
24
24
|
import './components/tabs/Component.js';
|
|
25
25
|
import '@juggle/resize-observer';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { b as __spreadArray } from '../tslib.es6-
|
|
1
|
+
import { b as __spreadArray } from '../tslib.es6-991a0924.js';
|
|
2
2
|
import { useState, useRef } from 'react';
|
|
3
3
|
import { ResizeObserver } from '@juggle/resize-observer';
|
|
4
4
|
import { useLayoutEffect_SAFE_FOR_SSR } from '@alfalab/hooks';
|
|
@@ -14,9 +14,11 @@ var useCollapsibleElements = function (selectors, deps) {
|
|
|
14
14
|
if (!container)
|
|
15
15
|
return;
|
|
16
16
|
var addon = addonRef.current;
|
|
17
|
-
var
|
|
17
|
+
var moreElement = Array.from(container.querySelectorAll('[role="tablist"]')).pop();
|
|
18
|
+
var moreElementRect = moreElement === null || moreElement === void 0 ? void 0 : moreElement.getBoundingClientRect();
|
|
18
19
|
var elements = Array.from(container.querySelectorAll(selectors));
|
|
19
|
-
var
|
|
20
|
+
var containerWidth = (inlineSize || container.clientWidth) - ((moreElementRect === null || moreElementRect === void 0 ? void 0 : moreElementRect.width) || 0) * 1.5; // при рассчётах, даём кнопке "Ещё" чуть больше места, чтобы точно влезла
|
|
21
|
+
var collapsedIds = elements.reduce(function (acc, element) {
|
|
20
22
|
var offsetLeft = element.offsetLeft, offsetWidth = element.offsetWidth, id = element.id;
|
|
21
23
|
var elementOffset = offsetLeft + offsetWidth;
|
|
22
24
|
var isCollapsedElement = getComputedStyle(element).visibility === 'collapse';
|
|
@@ -28,7 +30,7 @@ var useCollapsibleElements = function (selectors, deps) {
|
|
|
28
30
|
acc.push(id);
|
|
29
31
|
return acc;
|
|
30
32
|
}, []);
|
|
31
|
-
setIdsCollapsedElements(
|
|
33
|
+
setIdsCollapsedElements(collapsedIds);
|
|
32
34
|
};
|
|
33
35
|
var handleElementsResize = function (entries) {
|
|
34
36
|
var inlineSize = entries[0].contentBoxSize[0].inlineSize;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { TabListProps } from "../typings";
|
|
3
|
-
declare const useTablistTitles: ({ titles, selectedId, collapsible, breakpoint, onChange, }: Pick<TabListProps, 'titles' | 'selectedId' | 'collapsible' | 'onChange'> & Required<Pick<TabListProps, 'breakpoint'>>) => {
|
|
3
|
+
declare const useTablistTitles: ({ titles, selectedId, collapsible, collapsedTabsIds, breakpoint, onChange, }: Pick<TabListProps, 'titles' | 'selectedId' | 'collapsible' | 'collapsedTabsIds' | 'onChange'> & Required<Pick<TabListProps, 'breakpoint'>>) => {
|
|
4
4
|
containerRef: import("react").RefObject<HTMLDivElement>;
|
|
5
5
|
addonRef: import("react").RefObject<HTMLInputElement>;
|
|
6
6
|
tablistTitles: {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as __assign } from '../tslib.es6-
|
|
1
|
+
import { a as __assign } from '../tslib.es6-991a0924.js';
|
|
2
2
|
import { useMemo } from 'react';
|
|
3
3
|
import { useMedia } from '@alfalab/hooks';
|
|
4
4
|
import { useCollapsibleElements } from './use-collapsible-elements.js';
|
|
@@ -6,23 +6,47 @@ import { useTabs } from './use-tabs.js';
|
|
|
6
6
|
import '@juggle/resize-observer';
|
|
7
7
|
|
|
8
8
|
var useTablistTitles = function (_a) {
|
|
9
|
-
var _b = _a.titles, titles = _b === void 0 ? [] : _b, selectedId = _a.selectedId, collapsible = _a.collapsible, breakpoint = _a.breakpoint, onChange = _a.onChange;
|
|
9
|
+
var _b = _a.titles, titles = _b === void 0 ? [] : _b, selectedId = _a.selectedId, collapsible = _a.collapsible, collapsedTabsIds = _a.collapsedTabsIds, breakpoint = _a.breakpoint, onChange = _a.onChange;
|
|
10
10
|
var _c = useCollapsibleElements('[role=tab]', [titles]), containerRef = _c.containerRef, addonRef = _c.addonRef, idsCollapsedElements = _c.idsCollapsedElements;
|
|
11
11
|
var view = useMedia([['desktop', "(min-width: ".concat(breakpoint, "px)")]], 'desktop')[0];
|
|
12
12
|
var tablistTitles = useMemo(function () {
|
|
13
13
|
var idsCollapsedTitles = [];
|
|
14
|
+
var idsCollapsed = idsCollapsedElements.concat(collapsedTabsIds || []);
|
|
14
15
|
if (view === 'desktop' && collapsible) {
|
|
15
16
|
var visibleTitles = titles.filter(function (_a) {
|
|
16
17
|
var id = _a.id;
|
|
17
|
-
return !
|
|
18
|
+
return !idsCollapsed.includes(String(id));
|
|
18
19
|
});
|
|
19
|
-
var lastVisibleTitle_1 =
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
var lastVisibleTitle_1 = collapsedTabsIds
|
|
21
|
+
? null
|
|
22
|
+
: visibleTitles[visibleTitles.length - 1];
|
|
23
|
+
idsCollapsed.forEach(function (id) {
|
|
24
|
+
if (selectedId === id && lastVisibleTitle_1) {
|
|
25
|
+
idsCollapsedTitles.push(String(lastVisibleTitle_1.id));
|
|
26
|
+
}
|
|
27
|
+
if (selectedId !== id) {
|
|
28
|
+
idsCollapsedTitles.push(id);
|
|
29
|
+
}
|
|
22
30
|
});
|
|
23
31
|
}
|
|
24
|
-
|
|
25
|
-
|
|
32
|
+
var titlesMapped = titles.map(function (title) { return (__assign(__assign({}, title), { collapsed: idsCollapsedTitles.includes(String(title.id)), selected: title.id === selectedId })); });
|
|
33
|
+
if (collapsedTabsIds === null || collapsedTabsIds === void 0 ? void 0 : collapsedTabsIds.length) {
|
|
34
|
+
titlesMapped.sort(function (a, b) {
|
|
35
|
+
var hasA = collapsedTabsIds.includes(String(a.id));
|
|
36
|
+
var hasB = collapsedTabsIds.includes(String(b.id));
|
|
37
|
+
if (hasA === hasB) {
|
|
38
|
+
return 0;
|
|
39
|
+
}
|
|
40
|
+
return hasA ? 1 : -1;
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
return titlesMapped.sort(function (a, b) {
|
|
44
|
+
if (a.collapsed === b.collapsed) {
|
|
45
|
+
return 0;
|
|
46
|
+
}
|
|
47
|
+
return a.collapsed ? 1 : -1;
|
|
48
|
+
});
|
|
49
|
+
}, [collapsedTabsIds, idsCollapsedElements, view, collapsible, titles, selectedId]);
|
|
26
50
|
var _d = useTabs({
|
|
27
51
|
titles: tablistTitles,
|
|
28
52
|
selectedId: selectedId,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from "./Component.responsive-
|
|
1
|
+
export * from "./Component.responsive-3677ec46";
|
|
2
2
|
export { PickerButtonResponsive as PickerButton };
|
|
3
3
|
export type { PickerButtonResponsiveProps as PickerButtonProps };
|
|
4
|
-
export type { PickerButtonDesktopProps, PickerButtonSize, PickerButtonVariant } from "./Component-
|
|
4
|
+
export type { PickerButtonDesktopProps, PickerButtonSize, PickerButtonVariant } from "./Component-3677ec46";
|
package/esm/index.js
CHANGED
|
@@ -4,7 +4,7 @@ export { SecondaryTabListResponsive } from './components/secondary-tablist/Compo
|
|
|
4
4
|
export { Tab } from './components/tab/Component.js';
|
|
5
5
|
export { TabsResponsive } from './components/tabs/Component.responsive.js';
|
|
6
6
|
export { useTabs } from './hooks/use-tabs.js';
|
|
7
|
-
import './tslib.es6-
|
|
7
|
+
import './tslib.es6-991a0924.js';
|
|
8
8
|
import 'react';
|
|
9
9
|
import '@alfalab/hooks';
|
|
10
10
|
import './components/primary-tablist/Component.desktop.js';
|
|
@@ -19,11 +19,11 @@ import '@juggle/resize-observer';
|
|
|
19
19
|
import './synthetic-events.js';
|
|
20
20
|
import './components/title/Component.js';
|
|
21
21
|
import 'compute-scroll-into-view';
|
|
22
|
-
import './index.module-
|
|
22
|
+
import './index.module-307739e4.js';
|
|
23
23
|
import './components/primary-tablist/Component.mobile.js';
|
|
24
24
|
import './components/secondary-tablist/Component.desktop.js';
|
|
25
25
|
import './components/secondary-tablist/Component.js';
|
|
26
26
|
import '@alfalab/core-components-tag/esm';
|
|
27
|
-
import './index.module-
|
|
27
|
+
import './index.module-426df292.js';
|
|
28
28
|
import './components/secondary-tablist/Component.mobile.js';
|
|
29
29
|
import './components/tabs/Component.js';
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
var commonStyles = {"component":"tabs__component_1io9j","fullWidthScroll":"tabs__fullWidthScroll_1io9j","container":"tabs__container_1io9j","title":"tabs__title_1io9j","disabled":"tabs__disabled_1io9j","focused":"tabs__focused_1io9j","collapsed":"tabs__collapsed_1io9j","selected":"tabs__selected_1io9j","line":"tabs__line_1io9j","s":"tabs__s_1io9j","xs":"tabs__xs_1io9j","xxs":"tabs__xxs_1io9j","pickerWrapper":"tabs__pickerWrapper_1io9j","option":"tabs__option_1io9j","m":"tabs__m_1io9j","l":"tabs__l_1io9j","xl":"tabs__xl_1io9j","rightAddons":"tabs__rightAddons_1io9j"};
|
|
2
|
+
require('./components/primary-tablist/index.css')
|
|
3
|
+
|
|
4
|
+
export { commonStyles as c };
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
var commonStyles = {"component":"tabs__component_12ta1","fullWidthScroll":"tabs__fullWidthScroll_12ta1","container":"tabs__container_12ta1","title":"tabs__title_12ta1","xxs":"tabs__xxs_12ta1","xs":"tabs__xs_12ta1","s":"tabs__s_12ta1","m":"tabs__m_12ta1","l":"tabs__l_12ta1","xl":"tabs__xl_12ta1"};
|
|
2
|
+
require('./components/secondary-tablist/index.css')
|
|
3
|
+
|
|
4
|
+
export { commonStyles as c };
|
package/esm/mobile.js
CHANGED
|
@@ -4,7 +4,7 @@ export { SecondaryTabListMobile } from './components/secondary-tablist/Component
|
|
|
4
4
|
export { Tab } from './components/tab/Component.js';
|
|
5
5
|
export { TabsMobile } from './components/tabs/Component.mobile.js';
|
|
6
6
|
export { useTabs } from './hooks/use-tabs.js';
|
|
7
|
-
import './tslib.es6-
|
|
7
|
+
import './tslib.es6-991a0924.js';
|
|
8
8
|
import 'react';
|
|
9
9
|
import 'classnames';
|
|
10
10
|
import './components/primary-tablist/Component.js';
|
|
@@ -18,8 +18,8 @@ import '@juggle/resize-observer';
|
|
|
18
18
|
import './synthetic-events.js';
|
|
19
19
|
import './components/title/Component.js';
|
|
20
20
|
import 'compute-scroll-into-view';
|
|
21
|
-
import './index.module-
|
|
21
|
+
import './index.module-307739e4.js';
|
|
22
22
|
import './components/secondary-tablist/Component.js';
|
|
23
23
|
import '@alfalab/core-components-tag/esm';
|
|
24
|
-
import './index.module-
|
|
24
|
+
import './index.module-426df292.js';
|
|
25
25
|
import './components/tabs/Component.js';
|
package/esm/responsive.js
CHANGED
|
@@ -5,7 +5,7 @@ export { Tab } from './components/tab/Component.js';
|
|
|
5
5
|
export { TabsResponsive } from './components/tabs/Component.responsive.js';
|
|
6
6
|
export { useTabs } from './hooks/use-tabs.js';
|
|
7
7
|
export { useCollapsibleElements } from './hooks/use-collapsible-elements.js';
|
|
8
|
-
import './tslib.es6-
|
|
8
|
+
import './tslib.es6-991a0924.js';
|
|
9
9
|
import 'react';
|
|
10
10
|
import '@alfalab/hooks';
|
|
11
11
|
import './components/primary-tablist/Component.desktop.js';
|
|
@@ -19,11 +19,11 @@ import '@juggle/resize-observer';
|
|
|
19
19
|
import './synthetic-events.js';
|
|
20
20
|
import './components/title/Component.js';
|
|
21
21
|
import 'compute-scroll-into-view';
|
|
22
|
-
import './index.module-
|
|
22
|
+
import './index.module-307739e4.js';
|
|
23
23
|
import './components/primary-tablist/Component.mobile.js';
|
|
24
24
|
import './components/secondary-tablist/Component.desktop.js';
|
|
25
25
|
import './components/secondary-tablist/Component.js';
|
|
26
26
|
import '@alfalab/core-components-tag/esm';
|
|
27
|
-
import './index.module-
|
|
27
|
+
import './index.module-426df292.js';
|
|
28
28
|
import './components/secondary-tablist/Component.mobile.js';
|
|
29
29
|
import './components/tabs/Component.js';
|
package/esm/synthetic-events.js
CHANGED
|
File without changes
|
|
File without changes
|
package/esm/typings.d.ts
CHANGED
|
@@ -43,6 +43,10 @@ type TabsProps = {
|
|
|
43
43
|
* Сворачивает не помещающиеся в окне табы в PickerButton
|
|
44
44
|
*/
|
|
45
45
|
collapsible?: boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Список табов, для контроля переноса вкладок в PickerButton
|
|
48
|
+
*/
|
|
49
|
+
collapsedTabsIds?: string[];
|
|
46
50
|
/**
|
|
47
51
|
* При скроле табы будут уходить в край экрана
|
|
48
52
|
*/
|
|
@@ -118,7 +122,7 @@ type TabListTitle = {
|
|
|
118
122
|
selected?: boolean;
|
|
119
123
|
collapsed?: boolean;
|
|
120
124
|
};
|
|
121
|
-
type TabListProps = Pick<TabsProps, 'className' | 'containerClassName' | 'size' | 'defaultMatch' | 'selectedId' | 'scrollable' | 'collapsible' | 'onChange' | 'dataTestId' | 'fullWidthScroll'> & {
|
|
125
|
+
type TabListProps = Pick<TabsProps, 'className' | 'containerClassName' | 'size' | 'defaultMatch' | 'selectedId' | 'scrollable' | 'collapsible' | 'collapsedTabsIds' | 'onChange' | 'dataTestId' | 'fullWidthScroll'> & {
|
|
122
126
|
/**
|
|
123
127
|
* Заголовки табов
|
|
124
128
|
*/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var tslib_es6 = require('../tslib.es6-
|
|
3
|
+
var tslib_es6 = require('../tslib.es6-ab9150c8.js');
|
|
4
4
|
var React = require('react');
|
|
5
5
|
var resizeObserver = require('@juggle/resize-observer');
|
|
6
6
|
var hooks = require('@alfalab/hooks');
|
|
@@ -16,9 +16,11 @@ var useCollapsibleElements = function (selectors, deps) {
|
|
|
16
16
|
if (!container)
|
|
17
17
|
return;
|
|
18
18
|
var addon = addonRef.current;
|
|
19
|
-
var
|
|
19
|
+
var moreElement = Array.from(container.querySelectorAll('[role="tablist"]')).pop();
|
|
20
|
+
var moreElementRect = moreElement === null || moreElement === void 0 ? void 0 : moreElement.getBoundingClientRect();
|
|
20
21
|
var elements = Array.from(container.querySelectorAll(selectors));
|
|
21
|
-
var
|
|
22
|
+
var containerWidth = (inlineSize || container.clientWidth) - ((moreElementRect === null || moreElementRect === void 0 ? void 0 : moreElementRect.width) || 0) * 1.5; // при рассчётах, даём кнопке "Ещё" чуть больше места, чтобы точно влезла
|
|
23
|
+
var collapsedIds = elements.reduce(function (acc, element) {
|
|
22
24
|
var offsetLeft = element.offsetLeft, offsetWidth = element.offsetWidth, id = element.id;
|
|
23
25
|
var elementOffset = offsetLeft + offsetWidth;
|
|
24
26
|
var isCollapsedElement = getComputedStyle(element).visibility === 'collapse';
|
|
@@ -30,7 +32,7 @@ var useCollapsibleElements = function (selectors, deps) {
|
|
|
30
32
|
acc.push(id);
|
|
31
33
|
return acc;
|
|
32
34
|
}, []);
|
|
33
|
-
setIdsCollapsedElements(
|
|
35
|
+
setIdsCollapsedElements(collapsedIds);
|
|
34
36
|
};
|
|
35
37
|
var handleElementsResize = function (entries) {
|
|
36
38
|
var inlineSize = entries[0].contentBoxSize[0].inlineSize;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { TabListProps } from "../typings";
|
|
3
|
-
declare const useTablistTitles: ({ titles, selectedId, collapsible, breakpoint, onChange, }: Pick<TabListProps, 'titles' | 'selectedId' | 'collapsible' | 'onChange'> & Required<Pick<TabListProps, 'breakpoint'>>) => {
|
|
3
|
+
declare const useTablistTitles: ({ titles, selectedId, collapsible, collapsedTabsIds, breakpoint, onChange, }: Pick<TabListProps, 'titles' | 'selectedId' | 'collapsible' | 'collapsedTabsIds' | 'onChange'> & Required<Pick<TabListProps, 'breakpoint'>>) => {
|
|
4
4
|
containerRef: import("react").RefObject<HTMLDivElement>;
|
|
5
5
|
addonRef: import("react").RefObject<HTMLInputElement>;
|
|
6
6
|
tablistTitles: {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var tslib_es6 = require('../tslib.es6-
|
|
3
|
+
var tslib_es6 = require('../tslib.es6-ab9150c8.js');
|
|
4
4
|
var React = require('react');
|
|
5
5
|
var hooks = require('@alfalab/hooks');
|
|
6
6
|
var hooks_useCollapsibleElements = require('./use-collapsible-elements.js');
|
|
@@ -8,23 +8,47 @@ var hooks_useTabs = require('./use-tabs.js');
|
|
|
8
8
|
require('@juggle/resize-observer');
|
|
9
9
|
|
|
10
10
|
var useTablistTitles = function (_a) {
|
|
11
|
-
var _b = _a.titles, titles = _b === void 0 ? [] : _b, selectedId = _a.selectedId, collapsible = _a.collapsible, breakpoint = _a.breakpoint, onChange = _a.onChange;
|
|
11
|
+
var _b = _a.titles, titles = _b === void 0 ? [] : _b, selectedId = _a.selectedId, collapsible = _a.collapsible, collapsedTabsIds = _a.collapsedTabsIds, breakpoint = _a.breakpoint, onChange = _a.onChange;
|
|
12
12
|
var _c = hooks_useCollapsibleElements.useCollapsibleElements('[role=tab]', [titles]), containerRef = _c.containerRef, addonRef = _c.addonRef, idsCollapsedElements = _c.idsCollapsedElements;
|
|
13
13
|
var view = hooks.useMedia([['desktop', "(min-width: ".concat(breakpoint, "px)")]], 'desktop')[0];
|
|
14
14
|
var tablistTitles = React.useMemo(function () {
|
|
15
15
|
var idsCollapsedTitles = [];
|
|
16
|
+
var idsCollapsed = idsCollapsedElements.concat(collapsedTabsIds || []);
|
|
16
17
|
if (view === 'desktop' && collapsible) {
|
|
17
18
|
var visibleTitles = titles.filter(function (_a) {
|
|
18
19
|
var id = _a.id;
|
|
19
|
-
return !
|
|
20
|
+
return !idsCollapsed.includes(String(id));
|
|
20
21
|
});
|
|
21
|
-
var lastVisibleTitle_1 =
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
var lastVisibleTitle_1 = collapsedTabsIds
|
|
23
|
+
? null
|
|
24
|
+
: visibleTitles[visibleTitles.length - 1];
|
|
25
|
+
idsCollapsed.forEach(function (id) {
|
|
26
|
+
if (selectedId === id && lastVisibleTitle_1) {
|
|
27
|
+
idsCollapsedTitles.push(String(lastVisibleTitle_1.id));
|
|
28
|
+
}
|
|
29
|
+
if (selectedId !== id) {
|
|
30
|
+
idsCollapsedTitles.push(id);
|
|
31
|
+
}
|
|
24
32
|
});
|
|
25
33
|
}
|
|
26
|
-
|
|
27
|
-
|
|
34
|
+
var titlesMapped = titles.map(function (title) { return (tslib_es6.__assign(tslib_es6.__assign({}, title), { collapsed: idsCollapsedTitles.includes(String(title.id)), selected: title.id === selectedId })); });
|
|
35
|
+
if (collapsedTabsIds === null || collapsedTabsIds === void 0 ? void 0 : collapsedTabsIds.length) {
|
|
36
|
+
titlesMapped.sort(function (a, b) {
|
|
37
|
+
var hasA = collapsedTabsIds.includes(String(a.id));
|
|
38
|
+
var hasB = collapsedTabsIds.includes(String(b.id));
|
|
39
|
+
if (hasA === hasB) {
|
|
40
|
+
return 0;
|
|
41
|
+
}
|
|
42
|
+
return hasA ? 1 : -1;
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
return titlesMapped.sort(function (a, b) {
|
|
46
|
+
if (a.collapsed === b.collapsed) {
|
|
47
|
+
return 0;
|
|
48
|
+
}
|
|
49
|
+
return a.collapsed ? 1 : -1;
|
|
50
|
+
});
|
|
51
|
+
}, [collapsedTabsIds, idsCollapsedElements, view, collapsible, titles, selectedId]);
|
|
28
52
|
var _d = hooks_useTabs.useTabs({
|
|
29
53
|
titles: tablistTitles,
|
|
30
54
|
selectedId: selectedId,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from "./Component.responsive-
|
|
1
|
+
export * from "./Component.responsive-3677ec46";
|
|
2
2
|
export { PickerButtonResponsive as PickerButton };
|
|
3
3
|
export type { PickerButtonResponsiveProps as PickerButtonProps };
|
|
4
|
-
export type { PickerButtonDesktopProps, PickerButtonSize, PickerButtonVariant } from "./Component-
|
|
4
|
+
export type { PickerButtonDesktopProps, PickerButtonSize, PickerButtonVariant } from "./Component-3677ec46";
|
package/index.js
CHANGED
|
@@ -6,7 +6,7 @@ var components_secondaryTablist_Component_responsive = require('./components/sec
|
|
|
6
6
|
var components_tab_Component = require('./components/tab/Component.js');
|
|
7
7
|
var components_tabs_Component_responsive = require('./components/tabs/Component.responsive.js');
|
|
8
8
|
var hooks_useTabs = require('./hooks/use-tabs.js');
|
|
9
|
-
require('./tslib.es6-
|
|
9
|
+
require('./tslib.es6-ab9150c8.js');
|
|
10
10
|
require('react');
|
|
11
11
|
require('@alfalab/hooks');
|
|
12
12
|
require('./components/primary-tablist/Component.desktop.js');
|
|
@@ -21,12 +21,12 @@ require('@juggle/resize-observer');
|
|
|
21
21
|
require('./synthetic-events.js');
|
|
22
22
|
require('./components/title/Component.js');
|
|
23
23
|
require('compute-scroll-into-view');
|
|
24
|
-
require('./index.module-
|
|
24
|
+
require('./index.module-5b87e23a.js');
|
|
25
25
|
require('./components/primary-tablist/Component.mobile.js');
|
|
26
26
|
require('./components/secondary-tablist/Component.desktop.js');
|
|
27
27
|
require('./components/secondary-tablist/Component.js');
|
|
28
28
|
require('@alfalab/core-components-tag');
|
|
29
|
-
require('./index.module-
|
|
29
|
+
require('./index.module-78610370.js');
|
|
30
30
|
require('./components/secondary-tablist/Component.mobile.js');
|
|
31
31
|
require('./components/tabs/Component.js');
|
|
32
32
|
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var commonStyles = {"component":"tabs__component_1io9j","fullWidthScroll":"tabs__fullWidthScroll_1io9j","container":"tabs__container_1io9j","title":"tabs__title_1io9j","disabled":"tabs__disabled_1io9j","focused":"tabs__focused_1io9j","collapsed":"tabs__collapsed_1io9j","selected":"tabs__selected_1io9j","line":"tabs__line_1io9j","s":"tabs__s_1io9j","xs":"tabs__xs_1io9j","xxs":"tabs__xxs_1io9j","pickerWrapper":"tabs__pickerWrapper_1io9j","option":"tabs__option_1io9j","m":"tabs__m_1io9j","l":"tabs__l_1io9j","xl":"tabs__xl_1io9j","rightAddons":"tabs__rightAddons_1io9j"};
|
|
4
|
+
require('./components/primary-tablist/index.css')
|
|
5
|
+
|
|
6
|
+
exports.commonStyles = commonStyles;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var commonStyles = {"component":"tabs__component_12ta1","fullWidthScroll":"tabs__fullWidthScroll_12ta1","container":"tabs__container_12ta1","title":"tabs__title_12ta1","xxs":"tabs__xxs_12ta1","xs":"tabs__xs_12ta1","s":"tabs__s_12ta1","m":"tabs__m_12ta1","l":"tabs__l_12ta1","xl":"tabs__xl_12ta1"};
|
|
4
|
+
require('./components/secondary-tablist/index.css')
|
|
5
|
+
|
|
6
|
+
exports.commonStyles = commonStyles;
|
package/mobile.js
CHANGED
|
@@ -6,7 +6,7 @@ var components_secondaryTablist_Component_mobile = require('./components/seconda
|
|
|
6
6
|
var components_tab_Component = require('./components/tab/Component.js');
|
|
7
7
|
var components_tabs_Component_mobile = require('./components/tabs/Component.mobile.js');
|
|
8
8
|
var hooks_useTabs = require('./hooks/use-tabs.js');
|
|
9
|
-
require('./tslib.es6-
|
|
9
|
+
require('./tslib.es6-ab9150c8.js');
|
|
10
10
|
require('react');
|
|
11
11
|
require('classnames');
|
|
12
12
|
require('./components/primary-tablist/Component.js');
|
|
@@ -20,10 +20,10 @@ require('@juggle/resize-observer');
|
|
|
20
20
|
require('./synthetic-events.js');
|
|
21
21
|
require('./components/title/Component.js');
|
|
22
22
|
require('compute-scroll-into-view');
|
|
23
|
-
require('./index.module-
|
|
23
|
+
require('./index.module-5b87e23a.js');
|
|
24
24
|
require('./components/secondary-tablist/Component.js');
|
|
25
25
|
require('@alfalab/core-components-tag');
|
|
26
|
-
require('./index.module-
|
|
26
|
+
require('./index.module-78610370.js');
|
|
27
27
|
require('./components/tabs/Component.js');
|
|
28
28
|
|
|
29
29
|
|
|
@@ -20,6 +20,11 @@ type PickerButtonDesktopProps = Omit<BaseSelectProps, 'Field' | 'placeholder' |
|
|
|
20
20
|
* Тип кнопки
|
|
21
21
|
*/
|
|
22
22
|
variant?: PickerButtonVariant;
|
|
23
|
+
/**
|
|
24
|
+
* Показывать стрелку
|
|
25
|
+
* @default true
|
|
26
|
+
*/
|
|
27
|
+
showArrow?: boolean;
|
|
23
28
|
};
|
|
24
29
|
declare const PickerButtonDesktop: React.ForwardRefExoticComponent<Omit<BaseSelectProps, "placeholder" | "onFocus" | "size" | "selected" | "multiple" | "hint" | "options" | "autocomplete" | "allowUnselect" | "closeOnSelect" | "fieldProps" | "Arrow" | "Field"> & Pick<ButtonProps, "rightAddons" | "leftAddons" | "view" | "loading"> & {
|
|
25
30
|
options: Array<BaseSelectProps['options'][0] & {
|
|
@@ -36,5 +41,10 @@ declare const PickerButtonDesktop: React.ForwardRefExoticComponent<Omit<BaseSele
|
|
|
36
41
|
* Тип кнопки
|
|
37
42
|
*/
|
|
38
43
|
variant?: PickerButtonVariant | undefined;
|
|
44
|
+
/**
|
|
45
|
+
* Показывать стрелку
|
|
46
|
+
* @default true
|
|
47
|
+
*/
|
|
48
|
+
showArrow?: boolean | undefined;
|
|
39
49
|
} & React.RefAttributes<HTMLInputElement>>;
|
|
40
50
|
export { PickerButtonSize, PickerButtonVariant, PickerButtonDesktopProps, PickerButtonDesktop };
|
package/{cssm/Component.responsive-0d7ca9a7.d.ts → modern/Component.responsive-3677ec46.d.ts}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import React from "react";
|
|
3
3
|
import { AdditionalMobileProps } from "./index-3e68f8db";
|
|
4
|
-
import { PickerButtonDesktopProps } from "./Component-
|
|
4
|
+
import { PickerButtonDesktopProps } from "./Component-3677ec46";
|
|
5
5
|
import { ButtonProps } from "./index-ebda875c";
|
|
6
6
|
type PickerButtonMobileProps = Omit<PickerButtonDesktopProps, "OptionsList" | "Checkmark" | "onScroll"> & AdditionalMobileProps;
|
|
7
7
|
declare const PickerButtonMobile: React.ForwardRefExoticComponent<Omit<PickerButtonDesktopProps, "onScroll" | "OptionsList" | "Checkmark"> & AdditionalMobileProps & React.RefAttributes<HTMLInputElement>>;
|
|
@@ -17,8 +17,9 @@ declare const PickerButtonResponsive: React.ForwardRefExoticComponent<Omit<impor
|
|
|
17
17
|
options: ((import("./index-3e68f8db").OptionShape | import("./index-3e68f8db").GroupShape) & {
|
|
18
18
|
icon?: React.FC<React.SVGProps<SVGSVGElement>> | undefined;
|
|
19
19
|
})[];
|
|
20
|
-
size?: import("./Component-
|
|
21
|
-
variant?: import("./Component-
|
|
20
|
+
size?: import("./Component-3677ec46").PickerButtonSize | undefined;
|
|
21
|
+
variant?: import("./Component-3677ec46").PickerButtonVariant | undefined;
|
|
22
|
+
showArrow?: boolean | undefined;
|
|
22
23
|
} & AdditionalMobileProps & {
|
|
23
24
|
/**
|
|
24
25
|
* Контрольная точка, с нее начинается desktop версия
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { Styles, TabListProps } from "../../typings";
|
|
3
|
-
declare const PrimaryTabList: ({ size, styles, className, containerClassName, titles, selectedId, scrollable, collapsible, fullWidthScroll, onChange, dataTestId, breakpoint, }: TabListProps & Styles) => JSX.Element;
|
|
3
|
+
declare const PrimaryTabList: ({ size, styles, className, containerClassName, titles, selectedId, scrollable, collapsible, collapsedTabsIds, fullWidthScroll, onChange, dataTestId, breakpoint, }: TabListProps & Styles) => JSX.Element;
|
|
4
4
|
export { PrimaryTabList };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { PrimaryTabList } from './Component.js';
|
|
3
|
-
import { c as commonStyles } from '../../index.module-
|
|
3
|
+
import { c as commonStyles } from '../../index.module-f5a85c82.js';
|
|
4
4
|
import 'classnames';
|
|
5
5
|
import '@alfalab/core-components-badge/modern';
|
|
6
6
|
import '@alfalab/core-components-keyboard-focusable/modern';
|
|
@@ -13,12 +13,13 @@ import '@juggle/resize-observer';
|
|
|
13
13
|
import '../../hooks/use-tabs.js';
|
|
14
14
|
import 'compute-scroll-into-view';
|
|
15
15
|
|
|
16
|
-
const PrimaryTabList = ({ size, styles = {}, className, containerClassName, titles = [], selectedId = titles.length ? titles[0].id : undefined, scrollable = true, collapsible, fullWidthScroll, onChange, dataTestId, breakpoint = 1024, }) => {
|
|
16
|
+
const PrimaryTabList = ({ size, styles = {}, className, containerClassName, titles = [], selectedId = titles.length ? titles[0].id : undefined, scrollable = true, collapsible, collapsedTabsIds, fullWidthScroll, onChange, dataTestId, breakpoint = 1024, }) => {
|
|
17
17
|
const lineRef = useRef(null);
|
|
18
18
|
const { containerRef, addonRef, tablistTitles, selectedTab, focusedTab, getTabListItemProps } = useTablistTitles({
|
|
19
19
|
titles,
|
|
20
20
|
selectedId,
|
|
21
21
|
collapsible,
|
|
22
|
+
collapsedTabsIds,
|
|
22
23
|
breakpoint,
|
|
23
24
|
onChange,
|
|
24
25
|
});
|
|
@@ -50,7 +51,7 @@ const PrimaryTabList = ({ size, styles = {}, className, containerClassName, titl
|
|
|
50
51
|
[styles.fullWidthScroll]: fullWidthScroll,
|
|
51
52
|
}) },
|
|
52
53
|
tablistTitles.map((title, index) => (React.createElement(KeyboardFocusable, { key: title.id }, (ref, focused) => (React.createElement(Title, { ...getTabListItemProps(index, ref), ...title, focused: focused, styles: styles }))))),
|
|
53
|
-
collapsedOptions.length ? (React.createElement("span", { ref: addonRef, className: styles.pickerWrapper },
|
|
54
|
+
collapsedOptions.length ? (React.createElement("span", { ref: addonRef, role: 'tablist', className: styles.pickerWrapper },
|
|
54
55
|
React.createElement(PickerButtonDesktop, { fieldClassName: styles.title, optionClassName: cn(styles.pickerOption, size && styles[size]), options: collapsedOptions, onChange: handleOptionsChange, rightAddons: collapsedAddonsLength ? (React.createElement(Badge, { view: 'count', content: collapsedAddonsLength })) : null, size: 'l', view: 'ghost', label: '\u0415\u0449\u0451', popoverPosition: 'bottom-end' }))) : null,
|
|
55
56
|
React.createElement("div", { className: styles.line, ref: lineRef })));
|
|
56
57
|
return scrollable && !collapsible ? (React.createElement(ScrollableContainer, { activeChild: focusedTab || selectedTab, containerClassName: containerClassName, fullWidthScroll: fullWidthScroll }, renderContent())) : (React.createElement("div", { ref: containerRef, className: cn(styles.container, containerClassName) }, renderContent()));
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import cn from 'classnames';
|
|
3
3
|
import { PrimaryTabList } from './Component.js';
|
|
4
|
-
import { c as commonStyles } from '../../index.module-
|
|
4
|
+
import { c as commonStyles } from '../../index.module-f5a85c82.js';
|
|
5
5
|
import '@alfalab/core-components-badge/modern';
|
|
6
6
|
import '@alfalab/core-components-keyboard-focusable/modern';
|
|
7
7
|
import '@alfalab/core-components-picker-button/modern/desktop';
|
|
@@ -15,7 +15,7 @@ import '../scrollable-container/Component.js';
|
|
|
15
15
|
import 'compute-scroll-into-view';
|
|
16
16
|
import '../title/Component.js';
|
|
17
17
|
|
|
18
|
-
const mobileStyles = {"title":"
|
|
18
|
+
const mobileStyles = {"title":"tabs__title_1rvlj tabs__title_1io9j","mobile":"tabs__mobile_1rvlj"};
|
|
19
19
|
require('./mobile.css')
|
|
20
20
|
|
|
21
21
|
const styles = {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { TabListProps } from "../../typings";
|
|
3
|
-
declare const PrimaryTabListResponsive: ({ size, defaultMatch, collapsible, fullWidthScroll, ...restProps }: TabListProps) => JSX.Element;
|
|
3
|
+
declare const PrimaryTabListResponsive: ({ size, defaultMatch, collapsible, collapsedTabsIds, fullWidthScroll, ...restProps }: TabListProps) => JSX.Element;
|
|
4
4
|
export { PrimaryTabListResponsive };
|