@megafon/ui-lk-vas 0.10.9 → 0.10.12
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/es/components/BottomBar/BottomBar.css +1 -0
- package/dist/es/components/BottomBar/BottomBar.d.ts +28 -0
- package/dist/es/components/BottomBar/BottomBar.js +48 -0
- package/dist/es/components/Cards/CardBig/CardBig.css +1 -0
- package/dist/es/components/Cards/CardBig/CardBig.d.ts +13 -0
- package/dist/es/components/Cards/CardBig/CardBig.js +31 -0
- package/dist/es/components/Cards/CardSmall/CardSmall.css +1 -0
- package/dist/es/components/Cards/CardSmall/CardSmall.d.ts +36 -0
- package/dist/es/components/Cards/CardSmall/CardSmall.js +68 -0
- package/dist/es/components/Cards/components/_CardCell/CardCell.css +1 -0
- package/dist/es/components/Cards/components/_CardCell/CardCell.d.ts +41 -0
- package/dist/es/components/Cards/components/_CardCell/CardCell.js +110 -0
- package/dist/es/components/Charts/Chart/Chart.css +1 -0
- package/dist/es/components/Charts/Chart/Chart.d.ts +5 -0
- package/dist/es/components/Charts/Chart/Chart.js +104 -0
- package/dist/es/components/Charts/Chart/components/_ChartBar/ChartBar.css +1 -0
- package/dist/es/components/Charts/Chart/components/_ChartBar/ChartBar.d.ts +9 -0
- package/dist/es/components/Charts/Chart/components/_ChartBar/ChartBar.js +110 -0
- package/dist/es/components/Charts/Chart/components/_ChartBase/ChartBase.d.ts +12 -0
- package/dist/es/components/Charts/Chart/components/_ChartBase/ChartBase.js +41 -0
- package/dist/es/components/Charts/Chart/components/_ChartBase/helpers.d.ts +2 -0
- package/dist/es/components/Charts/Chart/components/_ChartBase/helpers.js +49 -0
- package/dist/es/components/Charts/Chart/components/_ChartDoughnut/ChartDoughnut.css +1 -0
- package/dist/es/components/Charts/Chart/components/_ChartDoughnut/ChartDoughnut.d.ts +9 -0
- package/dist/es/components/Charts/Chart/components/_ChartDoughnut/ChartDoughnut.js +65 -0
- package/dist/es/components/Charts/Chart/components/_ChartLegend/ChartLegend.css +1 -0
- package/dist/es/components/Charts/Chart/components/_ChartLegend/ChartLegend.d.ts +12 -0
- package/dist/es/components/Charts/Chart/components/_ChartLegend/ChartLegend.js +29 -0
- package/dist/es/components/Charts/Chart/components/_ChartLine/ChartLine.css +1 -0
- package/dist/es/components/Charts/Chart/components/_ChartLine/ChartLine.d.ts +9 -0
- package/dist/es/components/Charts/Chart/components/_ChartLine/ChartLine.js +112 -0
- package/dist/es/components/Charts/Chart/components/chartColors.d.ts +16 -0
- package/dist/es/components/Charts/Chart/components/chartColors.js +42 -0
- package/dist/es/components/Charts/Chart/img/chart.png +0 -0
- package/dist/es/components/Charts/Chart/types.d.ts +40 -0
- package/dist/es/components/Charts/Chart/types.js +1 -0
- package/dist/es/components/Header/Header.css +1 -0
- package/dist/es/components/Header/Header.d.ts +33 -0
- package/dist/es/components/Header/Header.js +48 -0
- package/dist/es/components/Header/components/_HeaderAccount/HeaderAccount.css +1 -0
- package/dist/es/components/Header/components/_HeaderAccount/HeaderAccount.d.ts +21 -0
- package/dist/es/components/Header/components/_HeaderAccount/HeaderAccount.js +43 -0
- package/dist/es/components/Header/components/_HeaderButton/HeaderButton.css +1 -0
- package/dist/es/components/Header/components/_HeaderButton/HeaderButton.d.ts +20 -0
- package/dist/es/components/Header/components/_HeaderButton/HeaderButton.js +82 -0
- package/dist/es/components/Header/components/_HeaderFavorites/HeaderFavorites.css +1 -0
- package/dist/es/components/Header/components/_HeaderFavorites/HeaderFavorites.d.ts +19 -0
- package/dist/es/components/Header/components/_HeaderFavorites/HeaderFavorites.js +40 -0
- package/dist/es/components/Header/components/_HeaderFinance/HeaderFinance.css +1 -0
- package/dist/es/components/Header/components/_HeaderFinance/HeaderFinance.d.ts +28 -0
- package/dist/es/components/Header/components/_HeaderFinance/HeaderFinance.js +23 -0
- package/dist/es/components/Header/components/_HeaderLkSelect/HeaderLkSelect.css +1 -0
- package/dist/es/components/Header/components/_HeaderLkSelect/HeaderLkSelect.d.ts +19 -0
- package/dist/es/components/Header/components/_HeaderLkSelect/HeaderLkSelect.js +51 -0
- package/dist/es/components/Header/components/_HeaderLogo/HeaderLogo.css +1 -0
- package/dist/es/components/Header/components/_HeaderLogo/HeaderLogo.d.ts +18 -0
- package/dist/es/components/Header/components/_HeaderLogo/HeaderLogo.js +59 -0
- package/dist/es/components/Header/components/_HeaderSupport/HeaderSupport.d.ts +19 -0
- package/dist/es/components/Header/components/_HeaderSupport/HeaderSupport.js +38 -0
- package/dist/es/components/Layout/Layout.css +1 -0
- package/dist/es/components/Layout/Layout.d.ts +10 -0
- package/dist/es/components/Layout/Layout.js +23 -0
- package/dist/es/components/NavBar/NavBar.css +1 -0
- package/dist/es/components/NavBar/NavBar.d.ts +23 -0
- package/dist/es/components/NavBar/NavBar.js +31 -0
- package/dist/es/components/NavBar/components/_NavBarItem/NavBarItem.css +1 -0
- package/dist/es/components/NavBar/components/_NavBarItem/NavBarItem.d.ts +22 -0
- package/dist/es/components/NavBar/components/_NavBarItem/NavBarItem.js +37 -0
- package/dist/es/components/Table/Table.css +1 -0
- package/dist/es/components/Table/Table.d.ts +15 -0
- package/dist/es/components/Table/Table.js +76 -0
- package/dist/es/components/Table/components/TableBody/TableBody.d.ts +11 -0
- package/dist/es/components/Table/components/TableBody/TableBody.js +13 -0
- package/dist/es/components/Table/components/TableHead/TableHead.d.ts +11 -0
- package/dist/es/components/Table/components/TableHead/TableHead.js +13 -0
- package/dist/es/components/Table/components/TableSettings/TableSettings.css +1 -0
- package/dist/es/components/Table/components/TableSettings/TableSettings.d.ts +23 -0
- package/dist/es/components/Table/components/TableSettings/TableSettings.js +50 -0
- package/dist/es/components/Table/components/TableTd/TableTd.css +1 -0
- package/dist/es/components/Table/components/TableTd/TableTd.d.ts +18 -0
- package/dist/es/components/Table/components/TableTd/TableTd.js +26 -0
- package/dist/es/components/Table/components/TableTh/TableTh.css +1 -0
- package/dist/es/components/Table/components/TableTh/TableTh.d.ts +45 -0
- package/dist/es/components/Table/components/TableTh/TableTh.js +81 -0
- package/dist/es/components/Table/components/TableTooltip/TableTooltip.css +1 -0
- package/dist/es/components/Table/components/TableTooltip/TableTooltip.d.ts +27 -0
- package/dist/es/components/Table/components/TableTooltip/TableTooltip.js +38 -0
- package/dist/es/components/Table/components/TableTr/TableTr.css +1 -0
- package/dist/es/components/Table/components/TableTr/TableTr.d.ts +12 -0
- package/dist/es/components/Table/components/TableTr/TableTr.js +14 -0
- package/dist/es/components/Table/contexts/TableContext.d.ts +6 -0
- package/dist/es/components/Table/contexts/TableContext.js +8 -0
- package/dist/es/components/Table/helpers.d.ts +2 -0
- package/dist/es/components/Table/helpers.js +12 -0
- package/dist/es/components/Table/types.d.ts +5 -0
- package/dist/es/components/Table/types.js +1 -0
- package/dist/es/components/_Dropdown/Dropdown.css +1 -0
- package/dist/es/components/_Dropdown/Dropdown.d.ts +12 -0
- package/dist/es/components/_Dropdown/Dropdown.js +54 -0
- package/dist/es/components/_DropdownInfo/DropdownInfo.css +1 -0
- package/dist/es/components/_DropdownInfo/DropdownInfo.d.ts +9 -0
- package/dist/es/components/_DropdownInfo/DropdownInfo.js +22 -0
- package/dist/es/components/_DropdownItem/DropdownItem.css +1 -0
- package/dist/es/components/_DropdownItem/DropdownItem.d.ts +34 -0
- package/dist/es/components/_DropdownItem/DropdownItem.js +39 -0
- package/dist/es/helpers/setRelAttribute.d.ts +3 -0
- package/dist/es/helpers/setRelAttribute.js +9 -0
- package/dist/es/hooks/useCssVariable.d.ts +2 -0
- package/dist/es/hooks/useCssVariable.js +22 -0
- package/dist/es/index.d.ts +33 -0
- package/dist/es/index.js +33 -0
- package/dist/es/styles/constants.css +0 -0
- package/dist/lib/components/BottomBar/BottomBar.css +1 -0
- package/dist/lib/components/BottomBar/BottomBar.d.ts +28 -0
- package/dist/lib/components/BottomBar/BottomBar.js +57 -0
- package/dist/lib/components/Cards/CardBig/CardBig.css +1 -0
- package/dist/lib/components/Cards/CardBig/CardBig.d.ts +13 -0
- package/dist/lib/components/Cards/CardBig/CardBig.js +40 -0
- package/dist/lib/components/Cards/CardSmall/CardSmall.css +1 -0
- package/dist/lib/components/Cards/CardSmall/CardSmall.d.ts +36 -0
- package/dist/lib/components/Cards/CardSmall/CardSmall.js +77 -0
- package/dist/lib/components/Cards/components/_CardCell/CardCell.css +1 -0
- package/dist/lib/components/Cards/components/_CardCell/CardCell.d.ts +41 -0
- package/dist/lib/components/Cards/components/_CardCell/CardCell.js +119 -0
- package/dist/lib/components/Charts/Chart/Chart.css +1 -0
- package/dist/lib/components/Charts/Chart/Chart.d.ts +5 -0
- package/dist/lib/components/Charts/Chart/Chart.js +113 -0
- package/dist/lib/components/Charts/Chart/components/_ChartBar/ChartBar.css +1 -0
- package/dist/lib/components/Charts/Chart/components/_ChartBar/ChartBar.d.ts +9 -0
- package/dist/lib/components/Charts/Chart/components/_ChartBar/ChartBar.js +119 -0
- package/dist/lib/components/Charts/Chart/components/_ChartBase/ChartBase.d.ts +12 -0
- package/dist/lib/components/Charts/Chart/components/_ChartBase/ChartBase.js +51 -0
- package/dist/lib/components/Charts/Chart/components/_ChartBase/helpers.d.ts +2 -0
- package/dist/lib/components/Charts/Chart/components/_ChartBase/helpers.js +55 -0
- package/dist/lib/components/Charts/Chart/components/_ChartDoughnut/ChartDoughnut.css +1 -0
- package/dist/lib/components/Charts/Chart/components/_ChartDoughnut/ChartDoughnut.d.ts +9 -0
- package/dist/lib/components/Charts/Chart/components/_ChartDoughnut/ChartDoughnut.js +74 -0
- package/dist/lib/components/Charts/Chart/components/_ChartLegend/ChartLegend.css +1 -0
- package/dist/lib/components/Charts/Chart/components/_ChartLegend/ChartLegend.d.ts +12 -0
- package/dist/lib/components/Charts/Chart/components/_ChartLegend/ChartLegend.js +37 -0
- package/dist/lib/components/Charts/Chart/components/_ChartLine/ChartLine.css +1 -0
- package/dist/lib/components/Charts/Chart/components/_ChartLine/ChartLine.d.ts +9 -0
- package/dist/lib/components/Charts/Chart/components/_ChartLine/ChartLine.js +121 -0
- package/dist/lib/components/Charts/Chart/components/chartColors.d.ts +16 -0
- package/dist/lib/components/Charts/Chart/components/chartColors.js +48 -0
- package/dist/lib/components/Charts/Chart/img/chart.png +0 -0
- package/dist/lib/components/Charts/Chart/types.d.ts +40 -0
- package/dist/lib/components/Charts/Chart/types.js +5 -0
- package/dist/lib/components/Header/Header.css +1 -0
- package/dist/lib/components/Header/Header.d.ts +33 -0
- package/dist/lib/components/Header/Header.js +57 -0
- package/dist/lib/components/Header/components/_HeaderAccount/HeaderAccount.css +1 -0
- package/dist/lib/components/Header/components/_HeaderAccount/HeaderAccount.d.ts +21 -0
- package/dist/lib/components/Header/components/_HeaderAccount/HeaderAccount.js +52 -0
- package/dist/lib/components/Header/components/_HeaderButton/HeaderButton.css +1 -0
- package/dist/lib/components/Header/components/_HeaderButton/HeaderButton.d.ts +20 -0
- package/dist/lib/components/Header/components/_HeaderButton/HeaderButton.js +91 -0
- package/dist/lib/components/Header/components/_HeaderFavorites/HeaderFavorites.css +1 -0
- package/dist/lib/components/Header/components/_HeaderFavorites/HeaderFavorites.d.ts +19 -0
- package/dist/lib/components/Header/components/_HeaderFavorites/HeaderFavorites.js +49 -0
- package/dist/lib/components/Header/components/_HeaderFinance/HeaderFinance.css +1 -0
- package/dist/lib/components/Header/components/_HeaderFinance/HeaderFinance.d.ts +28 -0
- package/dist/lib/components/Header/components/_HeaderFinance/HeaderFinance.js +32 -0
- package/dist/lib/components/Header/components/_HeaderLkSelect/HeaderLkSelect.css +1 -0
- package/dist/lib/components/Header/components/_HeaderLkSelect/HeaderLkSelect.d.ts +19 -0
- package/dist/lib/components/Header/components/_HeaderLkSelect/HeaderLkSelect.js +60 -0
- package/dist/lib/components/Header/components/_HeaderLogo/HeaderLogo.css +1 -0
- package/dist/lib/components/Header/components/_HeaderLogo/HeaderLogo.d.ts +18 -0
- package/dist/lib/components/Header/components/_HeaderLogo/HeaderLogo.js +68 -0
- package/dist/lib/components/Header/components/_HeaderSupport/HeaderSupport.d.ts +19 -0
- package/dist/lib/components/Header/components/_HeaderSupport/HeaderSupport.js +48 -0
- package/dist/lib/components/Layout/Layout.css +1 -0
- package/dist/lib/components/Layout/Layout.d.ts +10 -0
- package/dist/lib/components/Layout/Layout.js +31 -0
- package/dist/lib/components/NavBar/NavBar.css +1 -0
- package/dist/lib/components/NavBar/NavBar.d.ts +23 -0
- package/dist/lib/components/NavBar/NavBar.js +40 -0
- package/dist/lib/components/NavBar/components/_NavBarItem/NavBarItem.css +1 -0
- package/dist/lib/components/NavBar/components/_NavBarItem/NavBarItem.d.ts +22 -0
- package/dist/lib/components/NavBar/components/_NavBarItem/NavBarItem.js +45 -0
- package/dist/lib/components/Table/Table.css +1 -0
- package/dist/lib/components/Table/Table.d.ts +15 -0
- package/dist/lib/components/Table/Table.js +85 -0
- package/dist/lib/components/Table/components/TableBody/TableBody.d.ts +11 -0
- package/dist/lib/components/Table/components/TableBody/TableBody.js +23 -0
- package/dist/lib/components/Table/components/TableHead/TableHead.d.ts +11 -0
- package/dist/lib/components/Table/components/TableHead/TableHead.js +23 -0
- package/dist/lib/components/Table/components/TableSettings/TableSettings.css +1 -0
- package/dist/lib/components/Table/components/TableSettings/TableSettings.d.ts +23 -0
- package/dist/lib/components/Table/components/TableSettings/TableSettings.js +59 -0
- package/dist/lib/components/Table/components/TableTd/TableTd.css +1 -0
- package/dist/lib/components/Table/components/TableTd/TableTd.d.ts +18 -0
- package/dist/lib/components/Table/components/TableTd/TableTd.js +35 -0
- package/dist/lib/components/Table/components/TableTh/TableTh.css +1 -0
- package/dist/lib/components/Table/components/TableTh/TableTh.d.ts +45 -0
- package/dist/lib/components/Table/components/TableTh/TableTh.js +90 -0
- package/dist/lib/components/Table/components/TableTooltip/TableTooltip.css +1 -0
- package/dist/lib/components/Table/components/TableTooltip/TableTooltip.d.ts +27 -0
- package/dist/lib/components/Table/components/TableTooltip/TableTooltip.js +46 -0
- package/dist/lib/components/Table/components/TableTr/TableTr.css +1 -0
- package/dist/lib/components/Table/components/TableTr/TableTr.d.ts +12 -0
- package/dist/lib/components/Table/components/TableTr/TableTr.js +23 -0
- package/dist/lib/components/Table/contexts/TableContext.d.ts +6 -0
- package/dist/lib/components/Table/contexts/TableContext.js +14 -0
- package/dist/lib/components/Table/helpers.d.ts +2 -0
- package/dist/lib/components/Table/helpers.js +18 -0
- package/dist/lib/components/Table/types.d.ts +5 -0
- package/dist/lib/components/Table/types.js +5 -0
- package/dist/lib/components/_Dropdown/Dropdown.css +1 -0
- package/dist/lib/components/_Dropdown/Dropdown.d.ts +12 -0
- package/dist/lib/components/_Dropdown/Dropdown.js +63 -0
- package/dist/lib/components/_DropdownInfo/DropdownInfo.css +1 -0
- package/dist/lib/components/_DropdownInfo/DropdownInfo.d.ts +9 -0
- package/dist/lib/components/_DropdownInfo/DropdownInfo.js +30 -0
- package/dist/lib/components/_DropdownItem/DropdownItem.css +1 -0
- package/dist/lib/components/_DropdownItem/DropdownItem.d.ts +34 -0
- package/dist/lib/components/_DropdownItem/DropdownItem.js +48 -0
- package/dist/lib/helpers/setRelAttribute.d.ts +3 -0
- package/dist/lib/helpers/setRelAttribute.js +15 -0
- package/dist/lib/hooks/useCssVariable.d.ts +2 -0
- package/dist/lib/hooks/useCssVariable.js +29 -0
- package/dist/lib/index.d.ts +33 -0
- package/dist/lib/index.js +237 -0
- package/dist/lib/styles/constants.css +0 -0
- package/package.json +5 -5
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { cnCreate, filterDataAttrs } from '@megafon/ui-helpers';
|
|
5
|
+
import throttle from 'lodash.throttle';
|
|
6
|
+
import TableContext from "./contexts/TableContext";
|
|
7
|
+
import { calculateScrollPosition } from "./helpers";
|
|
8
|
+
import "./Table.css";
|
|
9
|
+
var cn = cnCreate('mfui-lkvas-table');
|
|
10
|
+
var Table = function Table(_ref) {
|
|
11
|
+
var className = _ref.className,
|
|
12
|
+
height = _ref.height,
|
|
13
|
+
dataAttrs = _ref.dataAttrs,
|
|
14
|
+
children = _ref.children;
|
|
15
|
+
var rootRef = React.useRef(null);
|
|
16
|
+
var tableRef = React.useRef(null);
|
|
17
|
+
var _React$useState = React.useState({
|
|
18
|
+
horizontal: 'none',
|
|
19
|
+
vertical: 'none'
|
|
20
|
+
}),
|
|
21
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
22
|
+
scrollPosition = _React$useState2[0],
|
|
23
|
+
setScrollPosition = _React$useState2[1];
|
|
24
|
+
var handleTableScroll = React.useCallback(function () {
|
|
25
|
+
var rootNode = rootRef.current;
|
|
26
|
+
if (!rootNode) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
var scrollWidth = rootNode.scrollWidth,
|
|
30
|
+
scrollHeight = rootNode.scrollHeight,
|
|
31
|
+
clientWidth = rootNode.clientWidth,
|
|
32
|
+
clientHeight = rootNode.clientHeight,
|
|
33
|
+
scrollLeft = rootNode.scrollLeft,
|
|
34
|
+
scrollTop = rootNode.scrollTop;
|
|
35
|
+
var deltaWidth = scrollWidth - clientWidth;
|
|
36
|
+
var deltaHeight = scrollHeight - clientHeight;
|
|
37
|
+
setScrollPosition({
|
|
38
|
+
horizontal: calculateScrollPosition(scrollLeft, deltaWidth),
|
|
39
|
+
vertical: calculateScrollPosition(scrollTop, deltaHeight)
|
|
40
|
+
});
|
|
41
|
+
}, []);
|
|
42
|
+
React.useEffect(function () {
|
|
43
|
+
if (!tableRef.current) {
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
var tableNode = tableRef.current;
|
|
47
|
+
var handleResize = throttle(handleTableScroll, 300);
|
|
48
|
+
var observer = new ResizeObserver(handleResize);
|
|
49
|
+
observer.observe(tableNode);
|
|
50
|
+
handleTableScroll();
|
|
51
|
+
return function () {
|
|
52
|
+
observer.unobserve(tableNode);
|
|
53
|
+
};
|
|
54
|
+
}, [handleTableScroll]);
|
|
55
|
+
return /*#__PURE__*/React.createElement("div", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
|
|
56
|
+
className: cn({
|
|
57
|
+
'v-scroll': scrollPosition.vertical,
|
|
58
|
+
'h-scroll': scrollPosition.horizontal
|
|
59
|
+
}, [className])
|
|
60
|
+
}), /*#__PURE__*/React.createElement("div", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.inner), {
|
|
61
|
+
className: cn('inner'),
|
|
62
|
+
style: {
|
|
63
|
+
height: height
|
|
64
|
+
},
|
|
65
|
+
ref: rootRef,
|
|
66
|
+
onScroll: handleTableScroll
|
|
67
|
+
}), /*#__PURE__*/React.createElement(TableContext.Provider, {
|
|
68
|
+
value: {
|
|
69
|
+
scrollPosition: scrollPosition
|
|
70
|
+
}
|
|
71
|
+
}, /*#__PURE__*/React.createElement("table", {
|
|
72
|
+
className: cn('table'),
|
|
73
|
+
ref: tableRef
|
|
74
|
+
}, children))));
|
|
75
|
+
};
|
|
76
|
+
export default Table;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export interface ITableBody {
|
|
3
|
+
/** Дополнительный класс корневого элемента */
|
|
4
|
+
className?: string;
|
|
5
|
+
/** Дополнительные data атрибуты к внутренним элементам */
|
|
6
|
+
dataAttrs?: {
|
|
7
|
+
root?: Record<string, string>;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
declare const TableBody: React.FC<React.PropsWithChildren<ITableBody>>;
|
|
11
|
+
export default TableBody;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { cnCreate, filterDataAttrs } from '@megafon/ui-helpers';
|
|
4
|
+
var cn = cnCreate('mfui-lkvas-table-body');
|
|
5
|
+
var TableBody = function TableBody(_ref) {
|
|
6
|
+
var className = _ref.className,
|
|
7
|
+
dataAttrs = _ref.dataAttrs,
|
|
8
|
+
children = _ref.children;
|
|
9
|
+
return /*#__PURE__*/React.createElement("tbody", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
|
|
10
|
+
className: cn([className])
|
|
11
|
+
}), children);
|
|
12
|
+
};
|
|
13
|
+
export default TableBody;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export interface ITableHead {
|
|
3
|
+
/** Дополнительный класс корневого элемента */
|
|
4
|
+
className?: string;
|
|
5
|
+
/** Дополнительные data атрибуты к внутренним элементам */
|
|
6
|
+
dataAttrs?: {
|
|
7
|
+
root?: Record<string, string>;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
declare const TableHead: React.FC<React.PropsWithChildren<ITableHead>>;
|
|
11
|
+
export default TableHead;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { cnCreate, filterDataAttrs } from '@megafon/ui-helpers';
|
|
4
|
+
var cn = cnCreate('mfui-lkvas-table-head');
|
|
5
|
+
var TableHead = function TableHead(_ref) {
|
|
6
|
+
var className = _ref.className,
|
|
7
|
+
dataAttrs = _ref.dataAttrs,
|
|
8
|
+
children = _ref.children;
|
|
9
|
+
return /*#__PURE__*/React.createElement("thead", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
|
|
10
|
+
className: cn([className])
|
|
11
|
+
}), children);
|
|
12
|
+
};
|
|
13
|
+
export default TableHead;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
h1,h2,h3,h4,h5{margin:0}.mfui-lkvas-table-settings__dots,.mfui-lkvas-table-settings__dots-inner{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.mfui-lkvas-table-settings__dots-inner{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:2px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:pointer;height:24px;width:24px}.mfui-lkvas-table-settings__dot{background-color:var(--content);border-radius:50%;height:4px;-webkit-transition:background-color .3s;transition:background-color .3s;width:4px}.mfui-lkvas-table-settings__dots:hover .mfui-lkvas-table-settings__dot{background-color:var(--brandGreen)}.mfui-lkvas-table-settings__tooltip{width:276px}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { ItemType } from '../../../_DropdownItem/DropdownItem';
|
|
3
|
+
import './TableSettings.scss';
|
|
4
|
+
export interface ITableSettingsProps {
|
|
5
|
+
/** Дополнительный класс корневого элемента */
|
|
6
|
+
className?: string;
|
|
7
|
+
/** Пункты всплывающего списка */
|
|
8
|
+
items: ItemType[];
|
|
9
|
+
/** Дополнительные классы для внутренних элементов */
|
|
10
|
+
classes?: {
|
|
11
|
+
root?: string;
|
|
12
|
+
tooltip?: string;
|
|
13
|
+
};
|
|
14
|
+
/** Дополнительные data атрибуты к внутренним элементам */
|
|
15
|
+
dataAttrs?: {
|
|
16
|
+
root?: Record<string, string>;
|
|
17
|
+
dots?: Record<string, string>;
|
|
18
|
+
tooltip?: Record<string, string>;
|
|
19
|
+
item?: Record<string, string>;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
declare const TableSettings: React.FC<React.PropsWithChildren<ITableSettingsProps>>;
|
|
23
|
+
export default TableSettings;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import "core-js/modules/es.array.map.js";
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { Tooltip } from '@megafon/ui-core';
|
|
5
|
+
import { cnCreate, filterDataAttrs } from '@megafon/ui-helpers';
|
|
6
|
+
import DropdownItem from "../../../_DropdownItem/DropdownItem";
|
|
7
|
+
import "./TableSettings.css";
|
|
8
|
+
var cn = cnCreate('mfui-lkvas-table-settings');
|
|
9
|
+
var TableSettings = function TableSettings(_ref) {
|
|
10
|
+
var className = _ref.className,
|
|
11
|
+
items = _ref.items,
|
|
12
|
+
classes = _ref.classes,
|
|
13
|
+
dataAttrs = _ref.dataAttrs;
|
|
14
|
+
var triggerRef = React.useRef(null);
|
|
15
|
+
return /*#__PURE__*/React.createElement("div", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
|
|
16
|
+
className: cn([className, classes === null || classes === void 0 ? void 0 : classes.root])
|
|
17
|
+
}), /*#__PURE__*/React.createElement("div", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.dots), {
|
|
18
|
+
className: cn('dots'),
|
|
19
|
+
ref: triggerRef
|
|
20
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
21
|
+
className: cn('dots-inner')
|
|
22
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
23
|
+
className: cn('dot')
|
|
24
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
25
|
+
className: cn('dot')
|
|
26
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
27
|
+
className: cn('dot')
|
|
28
|
+
}))), /*#__PURE__*/React.createElement(Tooltip, {
|
|
29
|
+
className: cn('tooltip', [classes === null || classes === void 0 ? void 0 : classes.tooltip]),
|
|
30
|
+
triggerElement: triggerRef,
|
|
31
|
+
placement: "left",
|
|
32
|
+
fallbackPlacements: ['right'],
|
|
33
|
+
triggerEvent: "click",
|
|
34
|
+
colorTheme: "blue",
|
|
35
|
+
strategy: "fixed",
|
|
36
|
+
offset: "small",
|
|
37
|
+
dataAttrs: {
|
|
38
|
+
root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.tooltip
|
|
39
|
+
}
|
|
40
|
+
}, items.map(function (item) {
|
|
41
|
+
return /*#__PURE__*/React.createElement(DropdownItem, _extends({}, item, {
|
|
42
|
+
key: item.id + item.title,
|
|
43
|
+
color: "white",
|
|
44
|
+
dataAttrs: {
|
|
45
|
+
root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.item
|
|
46
|
+
}
|
|
47
|
+
}));
|
|
48
|
+
})));
|
|
49
|
+
};
|
|
50
|
+
export default TableSettings;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
h1,h2,h3,h4,h5{margin:0}.mfui-lkvas-table-td{background-color:var(--base);font-size:15px;font-weight:400;line-height:24px;padding:12px}.mfui-lkvas-table-td_pinned:first-child{left:0;position:sticky}.mfui-lkvas-table-td_pinned:first-child:not(.mfui-lkvas-table-td_scroll_start,.mfui-lkvas-table-td_scroll_none):after{background:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.04)),color-stop(49.5%,rgba(0,0,0,.01)),to(hsla(0,0%,100%,0)));background:linear-gradient(90deg,rgba(0,0,0,.04),rgba(0,0,0,.01) 49.5%,hsla(0,0%,100%,0));bottom:0;content:"";position:absolute;right:-18px;top:0;width:18px}.mfui-lkvas-table-td_pinned:last-child{position:sticky;right:0}.mfui-lkvas-table-td_pinned:last-child:not(.mfui-lkvas-table-td_scroll_end,.mfui-lkvas-table-td_scroll_none):after{background:-webkit-gradient(linear,right top,left top,from(rgba(0,0,0,.04)),color-stop(49.5%,rgba(0,0,0,.01)),to(hsla(0,0%,100%,0)));background:linear-gradient(270deg,rgba(0,0,0,.04),rgba(0,0,0,.01) 49.5%,hsla(0,0%,100%,0));bottom:0;content:"";left:-18px;position:absolute;top:0;width:18px}.mfui-lkvas-table-td_active{background-color:var(--spbSky0)}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import './TableTd.scss';
|
|
3
|
+
export interface ITableTdProps {
|
|
4
|
+
/** Дополнительный класс корневого элемента */
|
|
5
|
+
className?: string;
|
|
6
|
+
/** Атрибут colSpan для тега td */
|
|
7
|
+
colSpan?: number;
|
|
8
|
+
/** Фиксация ячейки во время горизонтальной прокрутки (только для первой и последней ячейки в строке) */
|
|
9
|
+
pinned?: boolean;
|
|
10
|
+
/** Сделать активной отсортированную ячейку */
|
|
11
|
+
isSortActive?: boolean;
|
|
12
|
+
/** Дополнительные data атрибуты к внутренним элементам */
|
|
13
|
+
dataAttrs?: {
|
|
14
|
+
root?: Record<string, string>;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
declare const TableTd: React.FC<React.PropsWithChildren<ITableTdProps>>;
|
|
18
|
+
export default TableTd;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { cnCreate, filterDataAttrs } from '@megafon/ui-helpers';
|
|
4
|
+
import TableContext from "../../contexts/TableContext";
|
|
5
|
+
import "./TableTd.css";
|
|
6
|
+
var cn = cnCreate('mfui-lkvas-table-td');
|
|
7
|
+
var TableTd = function TableTd(_ref) {
|
|
8
|
+
var className = _ref.className,
|
|
9
|
+
colSpan = _ref.colSpan,
|
|
10
|
+
pinned = _ref.pinned,
|
|
11
|
+
_ref$isSortActive = _ref.isSortActive,
|
|
12
|
+
isSortActive = _ref$isSortActive === void 0 ? false : _ref$isSortActive,
|
|
13
|
+
dataAttrs = _ref.dataAttrs,
|
|
14
|
+
children = _ref.children;
|
|
15
|
+
var _React$useContext = React.useContext(TableContext),
|
|
16
|
+
scrollPosition = _React$useContext.scrollPosition;
|
|
17
|
+
return /*#__PURE__*/React.createElement("td", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
|
|
18
|
+
className: cn({
|
|
19
|
+
pinned: pinned,
|
|
20
|
+
scroll: pinned && scrollPosition.horizontal,
|
|
21
|
+
active: isSortActive
|
|
22
|
+
}, [className]),
|
|
23
|
+
colSpan: colSpan
|
|
24
|
+
}), children);
|
|
25
|
+
};
|
|
26
|
+
export default TableTd;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
h1,h2,h3,h4,h5{margin:0}.mfui-lkvas-table-th{background-color:var(--spbSky0);color:var(--spbSky3);font-size:15px;font-weight:500;line-height:24px;padding:16px 12px;text-align:left}.mfui-lkvas-table-th:first-child{border-radius:12px 0 0 12px}.mfui-lkvas-table-th:last-child{border-radius:0 12px 12px 0}.mfui-lkvas-table-th__inner{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;gap:4px;position:relative;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.mfui-lkvas-table-th_pinned:first-child{left:0;position:sticky;z-index:1}.mfui-lkvas-table-th_pinned:first-child:not(.mfui-lkvas-table-th_scroll_start,.mfui-lkvas-table-th_scroll_none):after{background:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.04)),color-stop(49.5%,rgba(0,0,0,.01)),to(hsla(0,0%,100%,0)));background:linear-gradient(90deg,rgba(0,0,0,.04),rgba(0,0,0,.01) 49.5%,hsla(0,0%,100%,0));bottom:0;content:"";position:absolute;right:-18px;top:0;width:18px}.mfui-lkvas-table-th_pinned:last-child{position:sticky;right:0;z-index:1}.mfui-lkvas-table-th_pinned:last-child:not(.mfui-lkvas-table-th_scroll_end,.mfui-lkvas-table-th_scroll_none):after{background:-webkit-gradient(linear,right top,left top,from(rgba(0,0,0,.04)),color-stop(49.5%,rgba(0,0,0,.01)),to(hsla(0,0%,100%,0)));background:linear-gradient(270deg,rgba(0,0,0,.04),rgba(0,0,0,.01) 49.5%,hsla(0,0%,100%,0));bottom:0;content:"";left:-18px;position:absolute;top:0;width:18px}.mfui-lkvas-table-th__sorting{display:-webkit-box;display:-ms-flexbox;display:flex;left:100%;position:absolute;top:50%;translate:4px -50%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:4px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.mfui-lkvas-table-th__sorting-down,.mfui-lkvas-table-th__sorting-up{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;cursor:pointer;height:20px;justify-content:center;width:20px}.mfui-lkvas-table-th__sorting-down:after,.mfui-lkvas-table-th__sorting-up:after{border-left:3px solid transparent;border-right:3px solid transparent;content:"";height:0;width:0}.mfui-lkvas-table-th__sorting-up{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.mfui-lkvas-table-th__sorting-up:after{border-bottom:4px solid var(--spbSky3)}.mfui-lkvas-table-th__sorting-up:hover:after,.mfui-lkvas-table-th__sorting-up_current:after{border-bottom-color:var(--content)}.mfui-lkvas-table-th__sorting-down{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.mfui-lkvas-table-th__sorting-down:after{border-top:4px solid var(--spbSky3);content:""}.mfui-lkvas-table-th__sorting-down:hover:after,.mfui-lkvas-table-th__sorting-down_current:after{border-top-color:var(--content)}.mfui-lkvas-table-th__notice-icon{cursor:pointer;display:block;height:24px;width:24px;fill:var(--spbSky3)}.mfui-lkvas-table-th_active{background-color:var(--spbSky1)}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import './TableTh.scss';
|
|
3
|
+
type SortType = 'up' | 'down';
|
|
4
|
+
interface ITooltip {
|
|
5
|
+
/** Заголовок тултипа */
|
|
6
|
+
title: string;
|
|
7
|
+
/** Текст тултипа */
|
|
8
|
+
text: string;
|
|
9
|
+
/** Текст кнопки тултипа */
|
|
10
|
+
buttonText?: string;
|
|
11
|
+
/** Отобразить кнопку закрытия тултипа */
|
|
12
|
+
hasCloseButton?: boolean;
|
|
13
|
+
/** Обработчик клика по кнопке тултипа */
|
|
14
|
+
onButtonClick?: (e: React.SyntheticEvent<EventTarget, Event>) => void;
|
|
15
|
+
/** Обработчик клика по кнопке закрытия тултипа */
|
|
16
|
+
onCloseButtonClick?: (e: React.SyntheticEvent<EventTarget, Event>) => void;
|
|
17
|
+
}
|
|
18
|
+
export interface ITableThProps {
|
|
19
|
+
/** Дополнительный класс корневого элемента */
|
|
20
|
+
className?: string;
|
|
21
|
+
/** Фиксация ячейки во время горизонтальной прокрутки (только для первой и последней ячейки в строке) */
|
|
22
|
+
pinned?: boolean;
|
|
23
|
+
/** Показать элементы сортировки */
|
|
24
|
+
showSorting?: boolean;
|
|
25
|
+
/** Сделать активной отсортированную ячейку */
|
|
26
|
+
isSortActive?: boolean;
|
|
27
|
+
/** Текущий тип сортировки */
|
|
28
|
+
currentSortType?: SortType;
|
|
29
|
+
/** Минимальная ширина ячейки */
|
|
30
|
+
minWidth?: string;
|
|
31
|
+
/** Ширина ячейки */
|
|
32
|
+
width?: string;
|
|
33
|
+
/** Информационная иконка с тултипом */
|
|
34
|
+
infoTooltip?: ITooltip;
|
|
35
|
+
/** Обработчик клика по элементам сортировки */
|
|
36
|
+
onSort?: (type: SortType) => void;
|
|
37
|
+
/** Дополнительные data атрибуты к внутренним элементам */
|
|
38
|
+
dataAttrs?: {
|
|
39
|
+
root?: Record<string, string>;
|
|
40
|
+
sortingUp?: Record<string, string>;
|
|
41
|
+
sortingDown?: Record<string, string>;
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
declare const TableTh: React.FC<React.PropsWithChildren<ITableThProps>>;
|
|
45
|
+
export default TableTh;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { cnCreate, filterDataAttrs } from '@megafon/ui-helpers';
|
|
4
|
+
import TableContext from "../../contexts/TableContext";
|
|
5
|
+
import TableTooltip from "../TableTooltip/TableTooltip";
|
|
6
|
+
import "./TableTh.css";
|
|
7
|
+
var InfoIcon = function InfoIcon(props) {
|
|
8
|
+
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
9
|
+
viewBox: "0 0 32 32"
|
|
10
|
+
}, props), /*#__PURE__*/React.createElement("path", {
|
|
11
|
+
d: "M16 4C9.4 4 4 9.4 4 16s5.4 12 12 12 12-5.4 12-12S22.6 4 16 4zm1 18h-2v-8h2v8zm0-10h-2v-2h2v2z"
|
|
12
|
+
}));
|
|
13
|
+
};
|
|
14
|
+
var cn = cnCreate('mfui-lkvas-table-th');
|
|
15
|
+
var TableTh = function TableTh(_ref) {
|
|
16
|
+
var className = _ref.className,
|
|
17
|
+
pinned = _ref.pinned,
|
|
18
|
+
_ref$showSorting = _ref.showSorting,
|
|
19
|
+
showSorting = _ref$showSorting === void 0 ? false : _ref$showSorting,
|
|
20
|
+
_ref$isSortActive = _ref.isSortActive,
|
|
21
|
+
isSortActive = _ref$isSortActive === void 0 ? false : _ref$isSortActive,
|
|
22
|
+
_ref$currentSortType = _ref.currentSortType,
|
|
23
|
+
currentSortType = _ref$currentSortType === void 0 ? 'up' : _ref$currentSortType,
|
|
24
|
+
minWidth = _ref.minWidth,
|
|
25
|
+
width = _ref.width,
|
|
26
|
+
infoTooltip = _ref.infoTooltip,
|
|
27
|
+
children = _ref.children,
|
|
28
|
+
dataAttrs = _ref.dataAttrs,
|
|
29
|
+
onSort = _ref.onSort;
|
|
30
|
+
var _React$useContext = React.useContext(TableContext),
|
|
31
|
+
scrollPosition = _React$useContext.scrollPosition;
|
|
32
|
+
var handleSort = function handleSort(type) {
|
|
33
|
+
return function () {
|
|
34
|
+
onSort === null || onSort === void 0 ? void 0 : onSort(type);
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
var renderSorting = function renderSorting() {
|
|
38
|
+
if (!showSorting) {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
42
|
+
className: cn('sorting')
|
|
43
|
+
}, /*#__PURE__*/React.createElement("div", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.sortingUp), {
|
|
44
|
+
className: cn('sorting-up', {
|
|
45
|
+
current: isSortActive && currentSortType === 'up'
|
|
46
|
+
}),
|
|
47
|
+
onClick: handleSort('up'),
|
|
48
|
+
role: "presentation"
|
|
49
|
+
})), /*#__PURE__*/React.createElement("div", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.sortingDown), {
|
|
50
|
+
className: cn('sorting-down', {
|
|
51
|
+
current: isSortActive && currentSortType === 'down'
|
|
52
|
+
}),
|
|
53
|
+
onClick: handleSort('down'),
|
|
54
|
+
role: "presentation"
|
|
55
|
+
})));
|
|
56
|
+
};
|
|
57
|
+
var renderNotice = function renderNotice() {
|
|
58
|
+
if (!infoTooltip) {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
return /*#__PURE__*/React.createElement(TableTooltip, _extends({}, infoTooltip, {
|
|
62
|
+
trigger: /*#__PURE__*/React.createElement(InfoIcon, {
|
|
63
|
+
className: cn('notice-icon')
|
|
64
|
+
})
|
|
65
|
+
}));
|
|
66
|
+
};
|
|
67
|
+
return /*#__PURE__*/React.createElement("th", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
|
|
68
|
+
className: cn({
|
|
69
|
+
pinned: pinned,
|
|
70
|
+
scroll: pinned && scrollPosition.horizontal,
|
|
71
|
+
active: isSortActive
|
|
72
|
+
}, [className]),
|
|
73
|
+
style: {
|
|
74
|
+
minWidth: minWidth,
|
|
75
|
+
width: width
|
|
76
|
+
}
|
|
77
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
78
|
+
className: cn('inner')
|
|
79
|
+
}, children, renderNotice(), renderSorting()));
|
|
80
|
+
};
|
|
81
|
+
export default TableTh;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
h1,h2,h3,h4,h5{margin:0}.mfui-lkvas-table-tooltip{display:-webkit-box;display:-ms-flexbox;display:flex}.mfui-lkvas-table-tooltip__trigger{cursor:pointer}.mfui-lkvas-table-tooltip__tooltip{width:288px}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import './TableTooltip.scss';
|
|
3
|
+
export interface ITableTooltipProps {
|
|
4
|
+
/** Дополнительный класс корневого элемента */
|
|
5
|
+
className?: string;
|
|
6
|
+
/** Компонент-триггер */
|
|
7
|
+
trigger: React.ReactNode;
|
|
8
|
+
/** Заголовок */
|
|
9
|
+
title: string;
|
|
10
|
+
/** Текст */
|
|
11
|
+
text: string;
|
|
12
|
+
/** Текст кнопки */
|
|
13
|
+
buttonText?: string;
|
|
14
|
+
/** Отобразить кнопку закрытия */
|
|
15
|
+
hasCloseButton?: boolean;
|
|
16
|
+
/** Дополнительные классы для внутренних элементов */
|
|
17
|
+
classes?: {
|
|
18
|
+
root?: string;
|
|
19
|
+
tooltip?: string;
|
|
20
|
+
};
|
|
21
|
+
/** Обработчик клика по кнопке */
|
|
22
|
+
onButtonClick?: (e: React.SyntheticEvent<EventTarget, Event>) => void;
|
|
23
|
+
/** Обработчик клика по кнопке закрытия */
|
|
24
|
+
onCloseButtonClick?: (e: React.SyntheticEvent<EventTarget, Event>) => void;
|
|
25
|
+
}
|
|
26
|
+
declare const TableTooltip: React.FC<React.PropsWithChildren<ITableTooltipProps>>;
|
|
27
|
+
export default TableTooltip;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Tooltip } from '@megafon/ui-core';
|
|
3
|
+
import { cnCreate } from '@megafon/ui-helpers';
|
|
4
|
+
import "./TableTooltip.css";
|
|
5
|
+
var cn = cnCreate('mfui-lkvas-table-tooltip');
|
|
6
|
+
var TableTooltip = function TableTooltip(_ref) {
|
|
7
|
+
var className = _ref.className,
|
|
8
|
+
trigger = _ref.trigger,
|
|
9
|
+
title = _ref.title,
|
|
10
|
+
text = _ref.text,
|
|
11
|
+
buttonText = _ref.buttonText,
|
|
12
|
+
hasCloseButton = _ref.hasCloseButton,
|
|
13
|
+
classes = _ref.classes,
|
|
14
|
+
onButtonClick = _ref.onButtonClick,
|
|
15
|
+
onCloseButtonClick = _ref.onCloseButtonClick;
|
|
16
|
+
var triggerRef = React.useRef(null);
|
|
17
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
18
|
+
className: cn([className, classes === null || classes === void 0 ? void 0 : classes.root])
|
|
19
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
20
|
+
className: cn('trigger'),
|
|
21
|
+
ref: triggerRef
|
|
22
|
+
}, trigger), /*#__PURE__*/React.createElement(Tooltip, {
|
|
23
|
+
className: cn('tooltip', [classes === null || classes === void 0 ? void 0 : classes.tooltip]),
|
|
24
|
+
title: title,
|
|
25
|
+
text: text,
|
|
26
|
+
buttonText: buttonText,
|
|
27
|
+
hasCloseButton: hasCloseButton,
|
|
28
|
+
onClick: onButtonClick,
|
|
29
|
+
onCloseButtonClick: onCloseButtonClick,
|
|
30
|
+
triggerElement: triggerRef,
|
|
31
|
+
placement: "bottom",
|
|
32
|
+
fallbackPlacements: ['top', 'left', 'right'],
|
|
33
|
+
triggerEvent: "click",
|
|
34
|
+
colorTheme: "blue",
|
|
35
|
+
offset: "small"
|
|
36
|
+
}));
|
|
37
|
+
};
|
|
38
|
+
export default TableTooltip;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
h1,h2,h3,h4,h5{margin:0}.mfui-lkvas-table-tr:not(:last-child) td{border-bottom:1px solid var(--spbSky1)}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import './TableTr.scss';
|
|
3
|
+
export interface ITableTr {
|
|
4
|
+
/** Дополнительный класс корневого элемента */
|
|
5
|
+
className?: string;
|
|
6
|
+
/** Дополнительные data атрибуты к внутренним элементам */
|
|
7
|
+
dataAttrs?: {
|
|
8
|
+
root?: Record<string, string>;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
declare const TableTr: React.FC<React.PropsWithChildren<ITableTr>>;
|
|
12
|
+
export default TableTr;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { cnCreate, filterDataAttrs } from '@megafon/ui-helpers';
|
|
4
|
+
import "./TableTr.css";
|
|
5
|
+
var cn = cnCreate('mfui-lkvas-table-tr');
|
|
6
|
+
var TableTr = function TableTr(_ref) {
|
|
7
|
+
var className = _ref.className,
|
|
8
|
+
dataAttrs = _ref.dataAttrs,
|
|
9
|
+
children = _ref.children;
|
|
10
|
+
return /*#__PURE__*/React.createElement("tr", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
|
|
11
|
+
className: cn([className])
|
|
12
|
+
}), children);
|
|
13
|
+
};
|
|
14
|
+
export default TableTr;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
h1,h2,h3,h4,h5{margin:0}.mfui-lkvas-dropdown{position:relative}.mfui-lkvas-dropdown__modal{background-color:var(--base);border-radius:12px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:8px;min-width:300px;opacity:0;padding:16px;position:absolute;top:100%;-webkit-transition:opacity .3s,visibility .3s;transition:opacity .3s,visibility .3s;visibility:hidden;z-index:100}.mfui-lkvas-dropdown_position_right .mfui-lkvas-dropdown__modal{right:-2px}.mfui-lkvas-dropdown_position_left .mfui-lkvas-dropdown__modal{left:-2px}.mfui-lkvas-dropdown_opened .mfui-lkvas-dropdown__modal{opacity:1;visibility:visible}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import './Dropdown.scss';
|
|
3
|
+
export interface IDropdownProps {
|
|
4
|
+
className?: string;
|
|
5
|
+
position?: 'left' | 'right';
|
|
6
|
+
renderTrigger: (isOpened: boolean) => React.ReactNode;
|
|
7
|
+
dataAttrs?: {
|
|
8
|
+
root?: Record<string, string>;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
declare const Dropdown: React.FC<React.PropsWithChildren<IDropdownProps>>;
|
|
12
|
+
export default Dropdown;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { cnCreate, filterDataAttrs } from '@megafon/ui-helpers';
|
|
5
|
+
import "./Dropdown.css";
|
|
6
|
+
var cn = cnCreate('mfui-lkvas-dropdown');
|
|
7
|
+
var Dropdown = function Dropdown(_ref) {
|
|
8
|
+
var className = _ref.className,
|
|
9
|
+
_ref$position = _ref.position,
|
|
10
|
+
position = _ref$position === void 0 ? 'right' : _ref$position,
|
|
11
|
+
renderTrigger = _ref.renderTrigger,
|
|
12
|
+
children = _ref.children,
|
|
13
|
+
dataAttrs = _ref.dataAttrs;
|
|
14
|
+
var _React$useState = React.useState(false),
|
|
15
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
16
|
+
isOpened = _React$useState2[0],
|
|
17
|
+
setIsOpened = _React$useState2[1];
|
|
18
|
+
var triggerRef = React.useRef(null);
|
|
19
|
+
var handleOutsideClick = React.useCallback(function (event) {
|
|
20
|
+
if (triggerRef.current && !triggerRef.current.contains(event.target)) {
|
|
21
|
+
setIsOpened(false);
|
|
22
|
+
}
|
|
23
|
+
}, []);
|
|
24
|
+
var handleTriggerClick = function handleTriggerClick() {
|
|
25
|
+
setIsOpened(function (state) {
|
|
26
|
+
return !state;
|
|
27
|
+
});
|
|
28
|
+
document.addEventListener('mouseup', handleOutsideClick);
|
|
29
|
+
};
|
|
30
|
+
React.useEffect(function () {
|
|
31
|
+
if (!isOpened) {
|
|
32
|
+
document.removeEventListener('mouseup', handleOutsideClick);
|
|
33
|
+
}
|
|
34
|
+
}, [handleOutsideClick, isOpened]);
|
|
35
|
+
React.useEffect(function () {
|
|
36
|
+
return function () {
|
|
37
|
+
return document.removeEventListener('mouseup', handleOutsideClick);
|
|
38
|
+
};
|
|
39
|
+
}, [handleOutsideClick]);
|
|
40
|
+
return /*#__PURE__*/React.createElement("div", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
|
|
41
|
+
className: cn({
|
|
42
|
+
opened: isOpened,
|
|
43
|
+
position: position
|
|
44
|
+
}, [className])
|
|
45
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
46
|
+
className: cn('trigger'),
|
|
47
|
+
ref: triggerRef,
|
|
48
|
+
onClick: handleTriggerClick,
|
|
49
|
+
role: "presentation"
|
|
50
|
+
}, renderTrigger(isOpened)), /*#__PURE__*/React.createElement("div", {
|
|
51
|
+
className: cn('modal')
|
|
52
|
+
}, children));
|
|
53
|
+
};
|
|
54
|
+
export default Dropdown;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
h1,h2,h3,h4,h5{margin:0}.mfui-lkvas-dropdown-info_top-border{border-top:1px solid var(--spbSky1);margin-top:8px;padding-top:8px}.mfui-lkvas-dropdown-info__inner{border-radius:12px;padding:12px 16px}.mfui-lkvas-dropdown-info__title{color:var(--spbSky3)}.mfui-lkvas-dropdown-info__subtitle{font-size:15px;font-weight:500;line-height:24px}
|