@infomaximum/ui-kit 0.17.2 → 0.17.3
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/dist/components/Button/Button.types.d.ts +1 -1
- package/dist/components/ConfigProvider/ConfigProvider.js +11 -4
- package/dist/components/Switch/Switch.js +4 -4
- package/dist/components/Switch/Switch.styles.js +7 -3
- package/dist/components/Switch/Switch.types.d.ts +1 -1
- package/dist/components/Table/Table.js +15 -23
- package/dist/components/Table/Table.styles.d.ts +1 -1
- package/dist/components/Table/Table.styles.js +2 -2
- package/dist/components/Table/Table.types.d.ts +25 -7
- package/dist/components/Table/components/Body/Body.js +1 -1
- package/dist/components/Table/components/Body/components/BodyCell/BodyCell.js +4 -3
- package/dist/components/Table/components/Body/components/BodyCell/BodyCell.styles.d.ts +2 -2
- package/dist/components/Table/components/Body/components/BodyCell/BodyCell.styles.js +3 -3
- package/dist/components/Table/components/Body/components/MeasureCell/MeasureCell.js +11 -3
- package/dist/components/Table/components/Body/components/MeasureCell/MeasureCell.types.d.ts +1 -0
- package/dist/components/Table/components/Body/components/MeasureRow/MeasureRow.js +2 -2
- package/dist/components/Table/components/Cell/Cell.styles.d.ts +2 -2
- package/dist/components/Table/components/Cell/Cell.styles.js +3 -3
- package/dist/components/Table/components/Cell/Cell.types.d.ts +2 -2
- package/dist/components/Table/components/EmptyDataRow/EmptyDataRow.js +5 -5
- package/dist/components/Table/components/EmptyDataRow/EmptyDataRow.styles.d.ts +2 -2
- package/dist/components/Table/components/EmptyDataRow/EmptyDataRow.styles.js +4 -9
- package/dist/components/Table/components/FixedHeader/FixedHeader.js +1 -1
- package/dist/components/Table/components/FixedHeader/components/FixedHeaderColGroup/FixedHeaderColGroup.js +18 -12
- package/dist/components/Table/components/Header/Header.js +1 -1
- package/dist/components/Table/components/Header/components/HeaderCell/HeaderCell.js +2 -2
- package/dist/components/Table/components/Header/components/HeaderCell/HeaderCell.styles.d.ts +2 -2
- package/dist/components/Table/components/Header/components/HeaderCell/HeaderCell.styles.js +3 -3
- package/dist/components/Table/contexts/tableContext/TableContext.js +9 -1
- package/dist/components/Table/contexts/tableContext/TableContext.types.d.ts +3 -2
- package/dist/components/Table/features/tableRowSelection/components/CheckboxCellContentWrapper/CheckboxCellContentWrapper.js +1 -1
- package/dist/components/Table/features/tableRowSelection/components/HeaderCheckboxCellContentWrapper/HeaderCheckboxCellContentWrapper.js +1 -1
- package/dist/components/Table/features/tableRowSelection/components/RadioCellContentWrapper/RadioCellContentWrapper.js +1 -1
- package/dist/components/Table/features/tableSort/components/HeaderCellWithSort/HeaderCellWithSort.js +2 -2
- package/dist/components/Table/features/tableStaticContext/contexts/tableStaticContext/TableStaticContext.d.ts +1 -0
- package/dist/components/Table/features/tableStaticContext/contexts/tableStaticContext/TableStaticContext.js +2 -1
- package/dist/components/Table/features/tableStaticContext/contexts/tableStaticContext/TableStaticContext.types.d.ts +1 -0
- package/dist/components/Table/hooks/useTableBordered/getBorderedInfo.d.ts +3 -0
- package/dist/components/Table/hooks/useTableBordered/getBorderedInfo.js +41 -0
- package/dist/components/Table/hooks/useTableBordered/index.d.ts +1 -0
- package/dist/components/Table/hooks/useTableBordered/useTableBordered.d.ts +4 -0
- package/dist/components/Table/hooks/useTableBordered/useTableBordered.js +14 -0
- package/dist/components/Table/hooks/useTableBordered/useTableBordered.types.d.ts +3 -0
- package/dist/components/Table/hooks/useTableVisualParamsChange/index.d.ts +1 -0
- package/dist/components/Table/hooks/useTableVisualParamsChange/types.d.ts +6 -0
- package/dist/components/Table/hooks/useTableVisualParamsChange/useTableVisualParamsChange.js +17 -4
- package/dist/components/Table/hooks/useTableVisualParamsChange/utils.d.ts +1 -0
- package/dist/components/Table/hooks/useTableVisualParamsChange/utils.js +3 -1
- package/dist/components/Tabs/Tabs.js +2 -2
- package/dist/components/Tabs/Tabs.types.d.ts +3 -1
- package/dist/components/Tabs/Tabs.utils.d.ts +3 -0
- package/dist/components/Tabs/Tabs.utils.js +29 -1
- package/dist/components/Tabs/components/TabBar/TabBar.js +12 -10
- package/dist/components/Tabs/components/TabBar/TabBar.styles.d.ts +1 -1
- package/dist/components/Tabs/components/TabBar/TabBar.styles.js +3 -9
- package/dist/components/Tabs/components/TabItem/TabItem.js +24 -8
- package/dist/components/Tabs/components/TabItem/TabItem.types.d.ts +2 -0
- package/dist/components/Tabs/hooks/useMoreTabsController.d.ts +4 -1
- package/dist/components/Tabs/hooks/useMoreTabsController.js +37 -6
- package/dist/components/Tabs/hooks/useTabsDndController.d.ts +1 -2
- package/dist/components/Tabs/hooks/useTabsDndController.js +7 -4
- package/package.json +1 -1
|
@@ -2,7 +2,7 @@ import { MouseEvent } from 'react';
|
|
|
2
2
|
import { TabItem } from '../components/TabItem/TabItem.types';
|
|
3
3
|
import { DropdownItemKeyType, ItemType, MenuItem } from 'components/Dropdown/Dropdown.types';
|
|
4
4
|
export declare const useMoreTabsController: (items: TabItem[], currentActiveKey: DropdownItemKeyType | undefined, currentTabElement: HTMLElement | null, onTabClick: ((activeKey: DropdownItemKeyType, event: MouseEvent) => void) | undefined, onChange: ((activeKey: DropdownItemKeyType) => void) | undefined, changeActiveKey: (key: DropdownItemKeyType) => void) => {
|
|
5
|
-
tabsRef: import('react').
|
|
5
|
+
tabsRef: import('react').RefObject<HTMLDivElement>;
|
|
6
6
|
dropdownMenu: {
|
|
7
7
|
items: MenuItem[];
|
|
8
8
|
onClick: (props: {
|
|
@@ -14,4 +14,7 @@ export declare const useMoreTabsController: (items: TabItem[], currentActiveKey:
|
|
|
14
14
|
addHiddenTab: (itemKey: DropdownItemKeyType) => void;
|
|
15
15
|
deleteHiddenTab: (itemKey: DropdownItemKeyType) => void;
|
|
16
16
|
scrollToTab: (element: HTMLElement | null) => void;
|
|
17
|
+
updateHiddenTabs: () => void;
|
|
18
|
+
hasHiddenTabs: boolean;
|
|
19
|
+
tabItemsRefsMap: Map<DropdownItemKeyType, HTMLElement>;
|
|
17
20
|
};
|
|
@@ -1,18 +1,46 @@
|
|
|
1
|
-
import { useState, useRef, useCallback, useMemo } from "react";
|
|
1
|
+
import { useState, useRef, useCallback, useLayoutEffect, useMemo } from "react";
|
|
2
2
|
import { isMenuItem } from "../../Dropdown/Dropdown.types.js";
|
|
3
3
|
import { isFunction } from "lodash-es";
|
|
4
|
+
import { useStatic } from "../../../hooks/useStatic/useStatic.js";
|
|
5
|
+
import { getIntersectionRatio, intersectionThreshold } from "../Tabs.utils.js";
|
|
4
6
|
const useMoreTabsController = (items, currentActiveKey, currentTabElement, onTabClick, onChange, changeActiveKey) => {
|
|
5
|
-
const [hiddenTabs, setHiddenTabs] = useState(
|
|
7
|
+
const [hiddenTabs, setHiddenTabs] = useState(() => /* @__PURE__ */ new Set());
|
|
6
8
|
const tabsRef = useRef(null);
|
|
9
|
+
const tabItemsRefsMap = useStatic(() => /* @__PURE__ */ new Map());
|
|
10
|
+
const updateHiddenTabs = useCallback(() => {
|
|
11
|
+
const tabs = tabsRef.current;
|
|
12
|
+
if (!tabs) {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
const tabsRect = tabs.getBoundingClientRect();
|
|
16
|
+
const updatedHiddenTabs = /* @__PURE__ */ new Set();
|
|
17
|
+
tabItemsRefsMap.forEach((tabItem, tabItemKey) => {
|
|
18
|
+
const tabItemRect = tabItem.getBoundingClientRect();
|
|
19
|
+
const intersectionRatio = getIntersectionRatio(tabItemRect, tabsRect);
|
|
20
|
+
if (intersectionRatio < intersectionThreshold) {
|
|
21
|
+
updatedHiddenTabs.add(tabItemKey);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
if (updatedHiddenTabs.size) {
|
|
25
|
+
setHiddenTabs(updatedHiddenTabs);
|
|
26
|
+
}
|
|
27
|
+
}, [tabItemsRefsMap]);
|
|
28
|
+
useLayoutEffect(() => {
|
|
29
|
+
updateHiddenTabs();
|
|
30
|
+
}, [updateHiddenTabs]);
|
|
7
31
|
const addHiddenTab = useCallback((itemKey) => {
|
|
8
|
-
setHiddenTabs((prev) =>
|
|
32
|
+
setHiddenTabs((prev) => new Set(prev).add(itemKey));
|
|
9
33
|
}, []);
|
|
10
34
|
const deleteHiddenTab = useCallback((itemKey) => {
|
|
11
|
-
setHiddenTabs((prev) =>
|
|
35
|
+
setHiddenTabs((prev) => {
|
|
36
|
+
const next = new Set(prev);
|
|
37
|
+
next.delete(itemKey);
|
|
38
|
+
return next;
|
|
39
|
+
});
|
|
12
40
|
}, []);
|
|
13
41
|
const dropdownItems = useMemo(() => {
|
|
14
42
|
return items.reduce((acc, item) => {
|
|
15
|
-
if (!hiddenTabs.
|
|
43
|
+
if (!hiddenTabs.has(item.key)) {
|
|
16
44
|
return acc;
|
|
17
45
|
}
|
|
18
46
|
const dropdownItem = {
|
|
@@ -61,7 +89,10 @@ const useMoreTabsController = (items, currentActiveKey, currentTabElement, onTab
|
|
|
61
89
|
dropdownMenu,
|
|
62
90
|
addHiddenTab,
|
|
63
91
|
deleteHiddenTab,
|
|
64
|
-
scrollToTab
|
|
92
|
+
scrollToTab,
|
|
93
|
+
updateHiddenTabs,
|
|
94
|
+
hasHiddenTabs: Boolean(hiddenTabs.size),
|
|
95
|
+
tabItemsRefsMap
|
|
65
96
|
};
|
|
66
97
|
};
|
|
67
98
|
export {
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { TabItem } from '../components/TabItem/TabItem.types';
|
|
2
2
|
import { DragEndEvent } from '@dnd-kit/core';
|
|
3
|
-
import { DropdownItemKeyType } from 'components/Dropdown/Dropdown.types';
|
|
4
3
|
export declare const useTabsDndController: (items: TabItem[], draggable: boolean) => {
|
|
5
|
-
tabsOrder: DropdownItemKeyType[];
|
|
4
|
+
tabsOrder: import('../../Dropdown/Dropdown.types').DropdownItemKeyType[];
|
|
6
5
|
isDragging: boolean;
|
|
7
6
|
dndEvents: {
|
|
8
7
|
onDragStart: () => void;
|
|
@@ -2,13 +2,16 @@ import { useState, useRef, useEffect, useCallback } from "react";
|
|
|
2
2
|
import { arrayMove } from "@dnd-kit/sortable";
|
|
3
3
|
import { getTabKeysWithoutOrdering, getOrderedTabKeys } from "../Tabs.utils.js";
|
|
4
4
|
const useTabsDndController = (items, draggable) => {
|
|
5
|
-
const [tabsOrder, setTabsOrder] = useState(
|
|
5
|
+
const [tabsOrder, setTabsOrder] = useState(() => getTabKeysWithoutOrdering(items));
|
|
6
6
|
const [isDragging, setIsDragging] = useState(false);
|
|
7
|
-
const
|
|
7
|
+
const isInitialMountRef = useRef(true);
|
|
8
8
|
useEffect(() => {
|
|
9
|
+
if (isInitialMountRef.current) {
|
|
10
|
+
isInitialMountRef.current = false;
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
9
13
|
const newTabKeys = getTabKeysWithoutOrdering(items);
|
|
10
|
-
if (!draggable
|
|
11
|
-
isInitialMount.current = false;
|
|
14
|
+
if (!draggable) {
|
|
12
15
|
setTabsOrder(newTabKeys);
|
|
13
16
|
return;
|
|
14
17
|
}
|