flipper-ui 0.37.4 → 0.37.6
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/core/data-display/table/table-cell.d.ts +3 -2
- package/core/data-display/table/table-cell.js +6 -5
- package/core/data-display/table-interactive/TableInteractive.d.ts +2 -0
- package/core/data-display/table-interactive/TableInteractive.js +1 -0
- package/core/data-display/table-interactive/TableInteractiveHead.d.ts +1 -1
- package/core/data-display/table-interactive/TableInteractiveHead.js +7 -2
- package/core/data-display/table-interactive/styles.d.ts +1 -0
- package/core/data-display/table-interactive/styles.js +5 -1
- package/core/data-display/table-interactive/utils.d.ts +1 -1
- package/core/data-display/table-interactive/utils.js +6 -3
- package/icons/mui/index.d.ts +1 -0
- package/icons/mui/index.js +7 -0
- package/package.json +13 -13
- package/test/mocks/table-interactive-mock.d.ts +8 -2
|
@@ -3,10 +3,11 @@ import type { DefaultProps } from '../../types';
|
|
|
3
3
|
import type { TableCellProps } from '@mui/material/TableCell';
|
|
4
4
|
export interface ITableCellProps extends DefaultProps, Omit<TableCellProps, 'padding'> {
|
|
5
5
|
numeric?: boolean;
|
|
6
|
+
sortable?: boolean;
|
|
7
|
+
padding?: number | string;
|
|
6
8
|
variant?: 'head' | 'body' | 'footer';
|
|
7
9
|
spacing?: 'normal' | 'checkbox' | 'none';
|
|
8
|
-
padding?: number | string;
|
|
9
10
|
align?: 'inherit' | 'left' | 'center' | 'right' | 'justify';
|
|
10
11
|
}
|
|
11
|
-
declare const TableCell: ({ style, margin, padding, children, spacing, ...otherProps }: ITableCellProps) => React.JSX.Element;
|
|
12
|
+
declare const TableCell: ({ style, margin, padding, children, spacing, sortable, ...otherProps }: ITableCellProps) => React.JSX.Element;
|
|
12
13
|
export default TableCell;
|
|
@@ -13,7 +13,7 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
13
13
|
var _TableCell = _interopRequireDefault(require("@mui/material/TableCell"));
|
|
14
14
|
var _TableSortLabel = _interopRequireDefault(require("@mui/material/TableSortLabel"));
|
|
15
15
|
var _tableHead = require("./table-head");
|
|
16
|
-
var _excluded = ["style", "margin", "padding", "children", "spacing"];
|
|
16
|
+
var _excluded = ["style", "margin", "padding", "children", "spacing", "sortable"];
|
|
17
17
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
18
18
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
19
19
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
@@ -23,6 +23,7 @@ var TableCell = function TableCell(_ref) {
|
|
|
23
23
|
padding = _ref.padding,
|
|
24
24
|
children = _ref.children,
|
|
25
25
|
spacing = _ref.spacing,
|
|
26
|
+
sortable = _ref.sortable,
|
|
26
27
|
otherProps = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
|
|
27
28
|
var _useContext = (0, _react.useContext)(_tableHead.SortContext),
|
|
28
29
|
onSort = _useContext.onSort,
|
|
@@ -32,14 +33,14 @@ var TableCell = function TableCell(_ref) {
|
|
|
32
33
|
onSort === null || onSort === void 0 || onSort(otherProps.name || '');
|
|
33
34
|
};
|
|
34
35
|
return /*#__PURE__*/_react["default"].createElement(_TableCell["default"], (0, _extends2["default"])({}, otherProps, {
|
|
36
|
+
padding: spacing,
|
|
35
37
|
style: _objectSpread({
|
|
36
38
|
padding: padding,
|
|
37
39
|
margin: margin
|
|
38
|
-
}, style)
|
|
39
|
-
|
|
40
|
-
}), onSort ? /*#__PURE__*/_react["default"].createElement(_TableSortLabel["default"], {
|
|
41
|
-
active: otherProps.name === active,
|
|
40
|
+
}, style)
|
|
41
|
+
}), (sortable !== null && sortable !== void 0 ? sortable : onSort) ? /*#__PURE__*/_react["default"].createElement(_TableSortLabel["default"], {
|
|
42
42
|
direction: direction,
|
|
43
|
+
active: otherProps.name === active,
|
|
43
44
|
onClick: handleSort
|
|
44
45
|
}, children) : children);
|
|
45
46
|
};
|
|
@@ -10,12 +10,14 @@ export interface ITableInteractive extends Omit<TableProps, 'children'> {
|
|
|
10
10
|
page?: number;
|
|
11
11
|
open?: boolean;
|
|
12
12
|
total?: number;
|
|
13
|
+
fixed?: boolean;
|
|
13
14
|
active?: string;
|
|
14
15
|
headers: {
|
|
15
16
|
name: string;
|
|
16
17
|
label: string;
|
|
17
18
|
show: boolean;
|
|
18
19
|
width?: string;
|
|
20
|
+
sortable?: boolean;
|
|
19
21
|
}[];
|
|
20
22
|
className?: string;
|
|
21
23
|
paginated?: boolean;
|
|
@@ -60,6 +60,7 @@ var TableInteractive = exports.TableInteractive = function TableInteractive(prop
|
|
|
60
60
|
},
|
|
61
61
|
sx: _objectSpread({}, props.sx)
|
|
62
62
|
}, /*#__PURE__*/_react["default"].createElement(_TableInteractiveHead.TableInteractiveHead, {
|
|
63
|
+
fixed: props.fixed,
|
|
63
64
|
active: props.active,
|
|
64
65
|
headers: props.headers,
|
|
65
66
|
children: props.children,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { type ITableInteractive } from './TableInteractive';
|
|
3
|
-
export type ITableInteractiveHead = Pick<ITableInteractive, 'headers' | 'visibleColumns' | 'onSort' | 'active' | 'direction' | 'children' | 'isCollapsible'>;
|
|
3
|
+
export type ITableInteractiveHead = Pick<ITableInteractive, 'fixed' | 'headers' | 'visibleColumns' | 'onSort' | 'active' | 'direction' | 'children' | 'isCollapsible'>;
|
|
4
4
|
export declare const TableInteractiveHead: (props: ITableInteractiveHead) => React.JSX.Element;
|
|
@@ -21,6 +21,11 @@ var TableInteractiveHead = exports.TableInteractiveHead = function TableInteract
|
|
|
21
21
|
direction: props.direction,
|
|
22
22
|
onSort: props.onSort && handleSort
|
|
23
23
|
}, /*#__PURE__*/_react["default"].createElement(_tableRow["default"], null, props.headers.map(function (header) {
|
|
24
|
-
return (0, _utils.generateHeader)(header, visibleColumns);
|
|
25
|
-
}), (props.children || props.isCollapsible) && /*#__PURE__*/_react["default"].createElement(_tableCell["default"],
|
|
24
|
+
return (0, _utils.generateHeader)(header, visibleColumns, header.sortable, props.fixed);
|
|
25
|
+
}), (props.children || props.isCollapsible) && /*#__PURE__*/_react["default"].createElement(_tableCell["default"], {
|
|
26
|
+
sortable: false,
|
|
27
|
+
sx: {
|
|
28
|
+
width: '50px'
|
|
29
|
+
}
|
|
30
|
+
})));
|
|
26
31
|
};
|
|
@@ -14,4 +14,8 @@ var gray = _theme.theme.colors.gray;
|
|
|
14
14
|
var ContentWrapper = exports.ContentWrapper = _styled["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-bottom: 2px solid ", ";\n"])), gray[300]);
|
|
15
15
|
var TableHeaderContent = exports.TableHeaderContent = _styled["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n margin: 0 0 8px 0;\n\n & > div {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n }\n"])));
|
|
16
16
|
var ActionsWrapper = exports.ActionsWrapper = _styled["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n"])));
|
|
17
|
-
var TableCellInteractive = exports.TableCellInteractive = (0, _styled["default"])(_tableCell["default"])(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n && {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n @media (max-width: 1440px) {\n padding: 16px 8px;\n }\n }\n"])))
|
|
17
|
+
var TableCellInteractive = exports.TableCellInteractive = (0, _styled["default"])(_tableCell["default"])(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n && {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n min-width: 60px;\n max-width: ", ";\n\n @media (max-width: 1440px) {\n padding: 16px 8px;\n }\n }\n"])), function (props) {
|
|
18
|
+
return props.fixed ? function (props) {
|
|
19
|
+
return props.width;
|
|
20
|
+
} : 'none';
|
|
21
|
+
});
|
|
@@ -7,7 +7,7 @@ export declare const getInitialColumns: (columns: {
|
|
|
7
7
|
show: boolean;
|
|
8
8
|
}[], key: string) => string[];
|
|
9
9
|
export declare const setVisibleColumns: (columns: string[], key: string) => void;
|
|
10
|
-
export declare const generateHeader: (header: ITableInteractive["headers"][number], visibleColumns?: string[] | undefined) => React.JSX.Element | null;
|
|
10
|
+
export declare const generateHeader: (header: ITableInteractive["headers"][number], visibleColumns?: string[] | undefined, sortable?: boolean, fixed?: boolean) => React.JSX.Element | null;
|
|
11
11
|
export declare const getVisibleColumns: (headers: {
|
|
12
12
|
name: string;
|
|
13
13
|
label: string;
|
|
@@ -29,11 +29,14 @@ var setVisibleColumns = exports.setVisibleColumns = function setVisibleColumns(c
|
|
|
29
29
|
parsed[key] = columns;
|
|
30
30
|
localStorage.setItem(STORAGE_KEY, JSON.stringify(parsed));
|
|
31
31
|
};
|
|
32
|
-
var generateHeader = exports.generateHeader = function generateHeader(header, visibleColumns) {
|
|
32
|
+
var generateHeader = exports.generateHeader = function generateHeader(header, visibleColumns, sortable, fixed) {
|
|
33
33
|
if (!(visibleColumns !== null && visibleColumns !== void 0 && visibleColumns.includes(header.name))) return null;
|
|
34
34
|
return /*#__PURE__*/_react["default"].createElement(_styles.TableCellInteractive, {
|
|
35
|
-
|
|
36
|
-
name: header.name
|
|
35
|
+
fixed: fixed,
|
|
36
|
+
name: header.name,
|
|
37
|
+
sortable: sortable,
|
|
38
|
+
width: header.width,
|
|
39
|
+
key: header.name + '-header'
|
|
37
40
|
}, header.label);
|
|
38
41
|
};
|
|
39
42
|
var getVisibleColumns = exports.getVisibleColumns = function getVisibleColumns(headers, visibleColumns) {
|
package/icons/mui/index.d.ts
CHANGED
|
@@ -142,4 +142,5 @@ export { default as IconVisibilityOff } from '@mui/icons-material/VisibilityOff'
|
|
|
142
142
|
export { default as IconVpnKey } from '@mui/icons-material/VpnKey';
|
|
143
143
|
export { default as IconWarning } from '@mui/icons-material/Warning';
|
|
144
144
|
export { default as IconWaterDrop } from '@mui/icons-material/WaterDrop';
|
|
145
|
+
export { default as IconWebhook } from '@mui/icons-material/Webhook';
|
|
145
146
|
export { default as IconWifiOff } from '@mui/icons-material/WifiOff';
|
package/icons/mui/index.js
CHANGED
|
@@ -868,6 +868,12 @@ Object.defineProperty(exports, "IconWaterDrop", {
|
|
|
868
868
|
return _WaterDrop["default"];
|
|
869
869
|
}
|
|
870
870
|
});
|
|
871
|
+
Object.defineProperty(exports, "IconWebhook", {
|
|
872
|
+
enumerable: true,
|
|
873
|
+
get: function get() {
|
|
874
|
+
return _Webhook["default"];
|
|
875
|
+
}
|
|
876
|
+
});
|
|
871
877
|
Object.defineProperty(exports, "IconWifiOff", {
|
|
872
878
|
enumerable: true,
|
|
873
879
|
get: function get() {
|
|
@@ -1018,4 +1024,5 @@ var _VisibilityOff = _interopRequireDefault(require("@mui/icons-material/Visibil
|
|
|
1018
1024
|
var _VpnKey = _interopRequireDefault(require("@mui/icons-material/VpnKey"));
|
|
1019
1025
|
var _Warning = _interopRequireDefault(require("@mui/icons-material/Warning"));
|
|
1020
1026
|
var _WaterDrop = _interopRequireDefault(require("@mui/icons-material/WaterDrop"));
|
|
1027
|
+
var _Webhook = _interopRequireDefault(require("@mui/icons-material/Webhook"));
|
|
1021
1028
|
var _WifiOff = _interopRequireDefault(require("@mui/icons-material/WifiOff"));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "flipper-ui",
|
|
3
|
-
"version": "0.37.
|
|
3
|
+
"version": "0.37.6",
|
|
4
4
|
"description": "React UI based on the @mui/material toolkit for the web",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"author": "NG",
|
|
@@ -52,22 +52,22 @@
|
|
|
52
52
|
"@storybook/blocks": "8.6.12",
|
|
53
53
|
"@storybook/react": "8.6.12",
|
|
54
54
|
"@storybook/react-webpack5": "8.6.12",
|
|
55
|
-
"@stylistic/eslint-plugin": "5.
|
|
55
|
+
"@stylistic/eslint-plugin": "5.4.0",
|
|
56
56
|
"@testing-library/dom": "10.4.1",
|
|
57
|
-
"@testing-library/jest-dom": "6.
|
|
57
|
+
"@testing-library/jest-dom": "6.9.0",
|
|
58
58
|
"@testing-library/react": "16.3.0",
|
|
59
59
|
"@testing-library/user-event": "14.6.1",
|
|
60
60
|
"@types/jest": "30.0.0",
|
|
61
|
-
"@types/node": "24.
|
|
61
|
+
"@types/node": "24.6.1",
|
|
62
62
|
"@types/ramda": "0.30.2",
|
|
63
63
|
"@types/react": "18.3.12",
|
|
64
|
-
"@typescript-eslint/eslint-plugin": "8.
|
|
65
|
-
"@typescript-eslint/parser": "8.
|
|
64
|
+
"@typescript-eslint/eslint-plugin": "8.45.0",
|
|
65
|
+
"@typescript-eslint/parser": "8.45.0",
|
|
66
66
|
"babel-loader": "10.0.0",
|
|
67
67
|
"babel-plugin-import": "1.13.8",
|
|
68
68
|
"babel-plugin-module-resolver": "5.0.2",
|
|
69
69
|
"date-fns": "4.1.0",
|
|
70
|
-
"eslint": "9.
|
|
70
|
+
"eslint": "9.36.0",
|
|
71
71
|
"eslint-config-prettier": "10.1.8",
|
|
72
72
|
"eslint-import-resolver-typescript": "4.4.4",
|
|
73
73
|
"eslint-plugin-import": "2.32.0",
|
|
@@ -76,19 +76,19 @@
|
|
|
76
76
|
"eslint-plugin-react-hooks": "5.2.0",
|
|
77
77
|
"fs-extra": "11.3.2",
|
|
78
78
|
"identity-obj-proxy": "3.0.0",
|
|
79
|
-
"jest": "30.
|
|
80
|
-
"jest-environment-jsdom": "30.
|
|
79
|
+
"jest": "30.2.0",
|
|
80
|
+
"jest-environment-jsdom": "30.2.0",
|
|
81
81
|
"prettier": "3.6.2",
|
|
82
82
|
"ramda": "0.30.1",
|
|
83
83
|
"react": "18.3.1",
|
|
84
84
|
"react-dom": "18.3.1",
|
|
85
85
|
"storybook": "8.6.12",
|
|
86
|
-
"ts-jest": "29.4.
|
|
86
|
+
"ts-jest": "29.4.4",
|
|
87
87
|
"ts-loader": "9.5.4",
|
|
88
|
-
"typescript": "5.9.
|
|
89
|
-
"typescript-eslint": "8.
|
|
88
|
+
"typescript": "5.9.3",
|
|
89
|
+
"typescript-eslint": "8.45.0",
|
|
90
90
|
"uuid": "11.1.0",
|
|
91
|
-
"webpack": "5.
|
|
91
|
+
"webpack": "5.102.0"
|
|
92
92
|
},
|
|
93
93
|
"peerDependencies": {
|
|
94
94
|
"date-fns": "^4.0.0",
|
|
@@ -8,11 +8,17 @@ interface TableInteractiveWrapperProps extends Partial<ITableInteractive> {
|
|
|
8
8
|
setRowsPerPageMock?: jest.Mock;
|
|
9
9
|
setVisibleColumnsMock?: jest.Mock;
|
|
10
10
|
}
|
|
11
|
-
export declare const HEADERS: {
|
|
11
|
+
export declare const HEADERS: ({
|
|
12
12
|
name: string;
|
|
13
13
|
label: string;
|
|
14
14
|
show: boolean;
|
|
15
|
-
|
|
15
|
+
width: string;
|
|
16
|
+
} | {
|
|
17
|
+
name: string;
|
|
18
|
+
label: string;
|
|
19
|
+
show: boolean;
|
|
20
|
+
width?: undefined;
|
|
21
|
+
})[];
|
|
16
22
|
export declare const TABLE_DATA: {
|
|
17
23
|
name: string;
|
|
18
24
|
email: string;
|