glints-aries 4.0.201 → 4.0.202
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/es/@next/DataTable/DataTable.d.ts +25 -0
- package/es/@next/DataTable/DataTable.js +97 -0
- package/es/@next/DataTable/DataTableStyle.d.ts +9 -0
- package/es/@next/DataTable/DataTableStyle.js +41 -0
- package/es/@next/DataTable/DatatTable.stories.d.ts +5 -0
- package/es/@next/DataTable/TableCell.d.ts +5 -0
- package/es/@next/DataTable/TableCell.js +13 -0
- package/es/@next/DataTable/TableFooter.d.ts +4 -0
- package/es/@next/DataTable/TableFooter.js +5 -0
- package/es/@next/DataTable/TableHeader.d.ts +8 -0
- package/es/@next/DataTable/TableHeader.js +48 -0
- package/es/@next/DataTable/TableRow.d.ts +6 -0
- package/es/@next/DataTable/TableRow.js +12 -0
- package/es/@next/DataTable/index.d.ts +4 -0
- package/es/@next/DataTable/index.js +4 -0
- package/es/@next/EmptyState/EmptyStateStyle.d.ts +3 -3
- package/es/@next/Pagination/PaginationStyle.js +1 -1
- package/es/@next/Typography/Typography.d.ts +3 -2
- package/es/@next/Typography/Typography.js +3 -1
- package/es/@next/index.d.ts +1 -0
- package/es/@next/index.js +1 -0
- package/lib/@next/DataTable/DataTable.d.ts +25 -0
- package/lib/@next/DataTable/DataTable.js +103 -0
- package/lib/@next/DataTable/DataTableStyle.d.ts +9 -0
- package/lib/@next/DataTable/DataTableStyle.js +55 -0
- package/lib/@next/DataTable/DatatTable.stories.d.ts +5 -0
- package/lib/@next/DataTable/TableCell.d.ts +5 -0
- package/lib/@next/DataTable/TableCell.js +19 -0
- package/lib/@next/DataTable/TableFooter.d.ts +4 -0
- package/lib/@next/DataTable/TableFooter.js +11 -0
- package/lib/@next/DataTable/TableHeader.d.ts +8 -0
- package/lib/@next/DataTable/TableHeader.js +55 -0
- package/lib/@next/DataTable/TableRow.d.ts +6 -0
- package/lib/@next/DataTable/TableRow.js +18 -0
- package/lib/@next/DataTable/index.d.ts +4 -0
- package/lib/@next/DataTable/index.js +27 -0
- package/lib/@next/EmptyState/EmptyStateStyle.d.ts +3 -3
- package/lib/@next/Pagination/PaginationStyle.js +1 -1
- package/lib/@next/Typography/Typography.d.ts +3 -2
- package/lib/@next/Typography/Typography.js +3 -1
- package/lib/@next/index.d.ts +1 -0
- package/lib/@next/index.js +7 -1
- package/package.json +1 -1
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { EmptyStateProps } from '../EmptyState';
|
|
3
|
+
export declare type SortDirection = 'ASCENDING' | 'DESCENDING';
|
|
4
|
+
export declare type TableHeading = React.ThHTMLAttributes<HTMLTableColElement> & {
|
|
5
|
+
title?: string;
|
|
6
|
+
id?: string;
|
|
7
|
+
defaultSortDirection?: SortDirection;
|
|
8
|
+
};
|
|
9
|
+
export declare type Total = TableHeading | null;
|
|
10
|
+
export interface DataTableProps extends React.TableHTMLAttributes<HTMLTableElement> {
|
|
11
|
+
headings: TableHeading[];
|
|
12
|
+
children: React.ReactNode;
|
|
13
|
+
emptyState: React.ReactElement<EmptyStateProps>;
|
|
14
|
+
totals?: Total[];
|
|
15
|
+
loading?: boolean;
|
|
16
|
+
loadingLabel?: string;
|
|
17
|
+
onSortChanged?: (context: string, sortDirection: SortDirection) => void;
|
|
18
|
+
}
|
|
19
|
+
export declare const DataTable: React.ForwardRefExoticComponent<DataTableProps & React.RefAttributes<HTMLTableElement>> & {
|
|
20
|
+
Row: ({ children, ...props }: import("./TableRow").TableRowProps) => JSX.Element;
|
|
21
|
+
Cell: ({ align, children }: import("./TableCell").TableCellProps) => JSX.Element;
|
|
22
|
+
Footer: ({ children }: {
|
|
23
|
+
children: React.ReactNode;
|
|
24
|
+
}) => JSX.Element;
|
|
25
|
+
};
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose";
|
|
3
|
+
var _excluded = ["headings", "totals", "onSortChanged", "children", "emptyState", "loading", "loadingLabel"];
|
|
4
|
+
function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
5
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
6
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
7
|
+
import React from 'react';
|
|
8
|
+
import { Spinner } from '../Spinner';
|
|
9
|
+
import { Typography } from '../Typography';
|
|
10
|
+
import { StyledDataTableContainer, StyledLoaderWrapper, StyledSpinnerContainer, StyledTable, StyledTableCell, StyledTableFooterRow, StyledTableLoadingRow, StyledTableRow } from './DataTableStyle';
|
|
11
|
+
import { TableCell } from './TableCell';
|
|
12
|
+
import { TableFooter } from './TableFooter';
|
|
13
|
+
import { TableHeader } from './TableHeader';
|
|
14
|
+
import { TableRow } from './TableRow';
|
|
15
|
+
var DataTableComponent = /*#__PURE__*/React.forwardRef(function DataTable(_ref, ref) {
|
|
16
|
+
var headings = _ref.headings,
|
|
17
|
+
totals = _ref.totals,
|
|
18
|
+
onSortChanged = _ref.onSortChanged,
|
|
19
|
+
children = _ref.children,
|
|
20
|
+
emptyState = _ref.emptyState,
|
|
21
|
+
loading = _ref.loading,
|
|
22
|
+
_ref$loadingLabel = _ref.loadingLabel,
|
|
23
|
+
loadingLabel = _ref$loadingLabel === void 0 ? 'loading' : _ref$loadingLabel,
|
|
24
|
+
props = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
25
|
+
var handleSortChanged = function handleSortChanged(context, sortDirection) {
|
|
26
|
+
onSortChanged == null ? void 0 : onSortChanged(context, sortDirection);
|
|
27
|
+
};
|
|
28
|
+
var rowHeaderMarkup = headings.map(function (heading, index) {
|
|
29
|
+
var id = heading.id,
|
|
30
|
+
title = heading.title,
|
|
31
|
+
defaultSortDirection = heading.defaultSortDirection,
|
|
32
|
+
align = heading.align;
|
|
33
|
+
var key = "table-header-heading-" + title + "-" + index;
|
|
34
|
+
return /*#__PURE__*/React.createElement(TableHeader, {
|
|
35
|
+
key: key,
|
|
36
|
+
title: title,
|
|
37
|
+
sortDirection: defaultSortDirection,
|
|
38
|
+
align: align,
|
|
39
|
+
onSort: function onSort(sortDirection) {
|
|
40
|
+
return handleSortChanged(id || title, sortDirection);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
var totalsRowMarkup = totals ? totals.map(function (total, index) {
|
|
45
|
+
var _ref2 = total || {
|
|
46
|
+
title: ''
|
|
47
|
+
},
|
|
48
|
+
title = _ref2.title,
|
|
49
|
+
align = _ref2.align;
|
|
50
|
+
var key = total + "-" + index;
|
|
51
|
+
return /*#__PURE__*/React.createElement(TableCell, {
|
|
52
|
+
key: key,
|
|
53
|
+
align: align
|
|
54
|
+
}, /*#__PURE__*/React.createElement(Typography, {
|
|
55
|
+
as: "div",
|
|
56
|
+
variant: "body2"
|
|
57
|
+
}, title));
|
|
58
|
+
}) : null;
|
|
59
|
+
var footer;
|
|
60
|
+
var rows = [];
|
|
61
|
+
for (var _iterator = _createForOfIteratorHelperLoose(React.Children.toArray(children)), _step; !(_step = _iterator()).done;) {
|
|
62
|
+
var child = _step.value;
|
|
63
|
+
var reactEl = child;
|
|
64
|
+
if (reactEl.type === TableFooter) {
|
|
65
|
+
footer = reactEl.props.children;
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
rows.push(reactEl);
|
|
69
|
+
}
|
|
70
|
+
var emptyRow = /*#__PURE__*/React.createElement(StyledTableRow, null, /*#__PURE__*/React.createElement(StyledTableCell, {
|
|
71
|
+
colSpan: headings.length
|
|
72
|
+
}, emptyState));
|
|
73
|
+
var hasRows = rows.length > 0;
|
|
74
|
+
var rowsMarkup = hasRows ? rows : emptyRow;
|
|
75
|
+
var showFooter = !!footer;
|
|
76
|
+
var LoadingRow = function LoadingRow() {
|
|
77
|
+
return /*#__PURE__*/React.createElement(StyledTableLoadingRow, {
|
|
78
|
+
className: "loader-container"
|
|
79
|
+
}, /*#__PURE__*/React.createElement(StyledLoaderWrapper, null, /*#__PURE__*/React.createElement(StyledSpinnerContainer, null, /*#__PURE__*/React.createElement(Spinner, null), /*#__PURE__*/React.createElement(Typography, {
|
|
80
|
+
variant: "subtitle1"
|
|
81
|
+
}, loadingLabel))));
|
|
82
|
+
};
|
|
83
|
+
return /*#__PURE__*/React.createElement(StyledDataTableContainer, null, /*#__PURE__*/React.createElement(StyledTable, _extends({
|
|
84
|
+
ref: ref,
|
|
85
|
+
"data-loading": loading,
|
|
86
|
+
"data-has-footer": showFooter
|
|
87
|
+
}, props), /*#__PURE__*/React.createElement("thead", null, /*#__PURE__*/React.createElement(StyledTableRow, null, rowHeaderMarkup)), /*#__PURE__*/React.createElement("tbody", null, /*#__PURE__*/React.createElement(LoadingRow, null), totalsRowMarkup && hasRows && /*#__PURE__*/React.createElement(StyledTableRow, {
|
|
88
|
+
"data-total": "true"
|
|
89
|
+
}, totalsRowMarkup), rowsMarkup), showFooter && /*#__PURE__*/React.createElement("tfoot", null, /*#__PURE__*/React.createElement(StyledTableFooterRow, null, /*#__PURE__*/React.createElement(StyledTableCell, {
|
|
90
|
+
colSpan: headings.length
|
|
91
|
+
}, footer)))));
|
|
92
|
+
});
|
|
93
|
+
export var DataTable = Object.assign(DataTableComponent, {
|
|
94
|
+
Row: TableRow,
|
|
95
|
+
Cell: TableCell,
|
|
96
|
+
Footer: TableFooter
|
|
97
|
+
});
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const StyledTable: import("styled-components").StyledComponent<"table", any, {}, never>;
|
|
2
|
+
export declare const StyledTableRow: import("styled-components").StyledComponent<"tr", any, {}, never>;
|
|
3
|
+
export declare const StyledTabledHeader: import("styled-components").StyledComponent<"th", any, {}, never>;
|
|
4
|
+
export declare const StyledTableCell: import("styled-components").StyledComponent<"td", any, {}, never>;
|
|
5
|
+
export declare const StyledTableFooterRow: import("styled-components").StyledComponent<"tr", any, {}, never>;
|
|
6
|
+
export declare const StyledTableLoadingRow: import("styled-components").StyledComponent<"tr", any, {}, never>;
|
|
7
|
+
export declare const StyledLoaderWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
8
|
+
export declare const StyledSpinnerContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
9
|
+
export declare const StyledDataTableContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import styled from 'styled-components';
|
|
2
|
+
import { borderRadius8 } from '../utilities/borderRadius';
|
|
3
|
+
import { Blue, Neutral } from '../utilities/colors';
|
|
4
|
+
import { space16 } from '../utilities/spacing';
|
|
5
|
+
var alignmentStyle = "\n&[data-text-align='right'] {\n > div {\n display: flex;\n justify-content: right;\n }\n}\n\n&[data-text-align='center'] {\n > div {\n display: flex;\n justify-content: center;\n }\n}\n";
|
|
6
|
+
export var StyledTable = styled.table.withConfig({
|
|
7
|
+
displayName: "DataTableStyle__StyledTable",
|
|
8
|
+
componentId: "sc-18v2ula-0"
|
|
9
|
+
})(["width:100%;height:100%;border:1px solid ", ";border-spacing:0;color:", ";max-width:100vw;border-bottom:0;&[data-has-footer='true']{border-bottom:1px solid ", ";}&[data-loading='true']{tbody{position:relative;}.loader-container{display:block;z-index:1;}}"], Neutral.B85, Neutral.B18, Neutral.B85);
|
|
10
|
+
export var StyledTableRow = styled.tr.withConfig({
|
|
11
|
+
displayName: "DataTableStyle__StyledTableRow",
|
|
12
|
+
componentId: "sc-18v2ula-1"
|
|
13
|
+
})(["background:", ";box-shadow:inset 0px -1px 0px ", ";&:hover{background:", ";}&[data-total='true']{background:", ";}"], Neutral.B100, Neutral.B85, Neutral.B99, Neutral.B99);
|
|
14
|
+
export var StyledTabledHeader = styled.th.withConfig({
|
|
15
|
+
displayName: "DataTableStyle__StyledTabledHeader",
|
|
16
|
+
componentId: "sc-18v2ula-2"
|
|
17
|
+
})(["padding:", ";text-align:left;", " button{padding:0;margin:0;height:auto;border:none;box-shadow:none;}button:hover{background:transparent;}button:active{border:none;box-shadow:none;background:transparent;}button:focus{border:none;}button svg{width:24px;height:24px;fill:", ";}"], space16, alignmentStyle, Neutral.B40);
|
|
18
|
+
export var StyledTableCell = styled.td.withConfig({
|
|
19
|
+
displayName: "DataTableStyle__StyledTableCell",
|
|
20
|
+
componentId: "sc-18v2ula-3"
|
|
21
|
+
})(["text-align:left;padding:", ";vertical-align:top;", ""], space16, alignmentStyle);
|
|
22
|
+
export var StyledTableFooterRow = styled.tr.withConfig({
|
|
23
|
+
displayName: "DataTableStyle__StyledTableFooterRow",
|
|
24
|
+
componentId: "sc-18v2ula-4"
|
|
25
|
+
})(["background:", ";border-top:0;border-radius:0px 0px ", " ", ";td{padding:", ";}"], Neutral.B99, borderRadius8, borderRadius8, space16);
|
|
26
|
+
export var StyledTableLoadingRow = styled(StyledTableRow).withConfig({
|
|
27
|
+
displayName: "DataTableStyle__StyledTableLoadingRow",
|
|
28
|
+
componentId: "sc-18v2ula-5"
|
|
29
|
+
})(["position:absolute;width:100%;height:100%;display:none;z-index:-1;"]);
|
|
30
|
+
export var StyledLoaderWrapper = styled.div.withConfig({
|
|
31
|
+
displayName: "DataTableStyle__StyledLoaderWrapper",
|
|
32
|
+
componentId: "sc-18v2ula-6"
|
|
33
|
+
})(["height:100%;width:100%;position:relative;"]);
|
|
34
|
+
export var StyledSpinnerContainer = styled.div.withConfig({
|
|
35
|
+
displayName: "DataTableStyle__StyledSpinnerContainer",
|
|
36
|
+
componentId: "sc-18v2ula-7"
|
|
37
|
+
})(["position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:", ";svg{width:48px;height:48px;fill:", ";}"], Neutral.B18, Blue.S99);
|
|
38
|
+
export var StyledDataTableContainer = styled.div.withConfig({
|
|
39
|
+
displayName: "DataTableStyle__StyledDataTableContainer",
|
|
40
|
+
componentId: "sc-18v2ula-8"
|
|
41
|
+
})(["overflow-x:auto;scroll-behavior:smooth;"]);
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Typography } from '../Typography';
|
|
3
|
+
import { StyledTableCell } from './DataTableStyle';
|
|
4
|
+
export var TableCell = function TableCell(_ref) {
|
|
5
|
+
var align = _ref.align,
|
|
6
|
+
children = _ref.children;
|
|
7
|
+
return /*#__PURE__*/React.createElement(StyledTableCell, {
|
|
8
|
+
"data-text-align": align
|
|
9
|
+
}, /*#__PURE__*/React.createElement(Typography, {
|
|
10
|
+
as: "div",
|
|
11
|
+
variant: "body1"
|
|
12
|
+
}, children));
|
|
13
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { SortDirection } from './DataTable';
|
|
3
|
+
export interface TableHeaderProps extends React.ThHTMLAttributes<HTMLTableColElement> {
|
|
4
|
+
title: string;
|
|
5
|
+
sortDirection?: SortDirection;
|
|
6
|
+
onSort?: (sortDirection: SortDirection) => void;
|
|
7
|
+
}
|
|
8
|
+
export declare const TableHeader: ({ sortDirection: sortDirectionProp, title, align, onSort, }: TableHeaderProps) => JSX.Element;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import React, { useState, useEffect } from 'react';
|
|
2
|
+
import { Button } from '../Button';
|
|
3
|
+
import { Icon } from '../Icon';
|
|
4
|
+
import { Typography } from '../Typography';
|
|
5
|
+
import { StyledTabledHeader } from './DataTableStyle';
|
|
6
|
+
export var TableHeader = function TableHeader(_ref) {
|
|
7
|
+
var sortDirectionProp = _ref.sortDirection,
|
|
8
|
+
title = _ref.title,
|
|
9
|
+
_ref$align = _ref.align,
|
|
10
|
+
align = _ref$align === void 0 ? 'left' : _ref$align,
|
|
11
|
+
onSort = _ref.onSort;
|
|
12
|
+
var _useState = useState(null),
|
|
13
|
+
sortDirection = _useState[0],
|
|
14
|
+
setSortDirection = _useState[1];
|
|
15
|
+
useEffect(function () {
|
|
16
|
+
setSortDirection(sortDirectionProp);
|
|
17
|
+
}, [sortDirectionProp]);
|
|
18
|
+
var iconName = sortDirection === 'ASCENDING' ? 'ri-arrow-xs-up-fill' : 'ri-arrow-xs-down-fill';
|
|
19
|
+
var iconMarkup = sortDirection ? /*#__PURE__*/React.createElement(Icon, {
|
|
20
|
+
name: iconName
|
|
21
|
+
}) : null;
|
|
22
|
+
var titleMarkup = /*#__PURE__*/React.createElement(Typography, {
|
|
23
|
+
as: "span",
|
|
24
|
+
variant: "body1",
|
|
25
|
+
style: {
|
|
26
|
+
whiteSpace: 'nowrap'
|
|
27
|
+
}
|
|
28
|
+
}, title);
|
|
29
|
+
var handleSortableClick = function handleSortableClick() {
|
|
30
|
+
if (!sortDirection) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
var direction = sortDirection === 'ASCENDING' ? 'DESCENDING' : 'ASCENDING';
|
|
34
|
+
setSortDirection(direction);
|
|
35
|
+
onSort == null ? void 0 : onSort(direction);
|
|
36
|
+
};
|
|
37
|
+
var sortableCellMarkup = /*#__PURE__*/React.createElement(Button, {
|
|
38
|
+
"data-testid": "data-table-sort-button-" + title,
|
|
39
|
+
icon: iconMarkup,
|
|
40
|
+
onClick: function onClick() {
|
|
41
|
+
return handleSortableClick();
|
|
42
|
+
}
|
|
43
|
+
}, titleMarkup);
|
|
44
|
+
var contentMarkup = sortDirection ? sortableCellMarkup : titleMarkup;
|
|
45
|
+
return /*#__PURE__*/React.createElement(StyledTabledHeader, {
|
|
46
|
+
"data-text-align": align
|
|
47
|
+
}, /*#__PURE__*/React.createElement("div", null, contentMarkup));
|
|
48
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose";
|
|
3
|
+
var _excluded = ["children"];
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import { StyledTableRow } from './DataTableStyle';
|
|
6
|
+
export var TableRow = function TableRow(_ref) {
|
|
7
|
+
var children = _ref.children,
|
|
8
|
+
props = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
9
|
+
return /*#__PURE__*/React.createElement(StyledTableRow, _extends({
|
|
10
|
+
"data-testid": "data-table-row"
|
|
11
|
+
}, props), children);
|
|
12
|
+
};
|
|
@@ -3,6 +3,6 @@ export declare const EmptyStateContainer: import("styled-components").StyledComp
|
|
|
3
3
|
export declare const EmptyStateContentContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
4
4
|
export declare const StyledImage: import("styled-components").StyledComponent<"img", any, {}, never>;
|
|
5
5
|
export declare const StyledButtonGroup: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("..").ButtonGroupProps & import("react").RefAttributes<HTMLDivElement>>, any, {}, never>;
|
|
6
|
-
export declare const StyledTitle: import("styled-components").StyledComponent<({ as, children, variant, ...props }: import("..").TypographyProps) => JSX.Element, any, {}, never>;
|
|
7
|
-
export declare const StyledDescription: import("styled-components").StyledComponent<({ as, children, variant, ...props }: import("..").TypographyProps) => JSX.Element, any, {}, never>;
|
|
8
|
-
export declare const StyledHelpText: import("styled-components").StyledComponent<({ as, children, variant, ...props }: import("..").TypographyProps) => JSX.Element, any, {}, never>;
|
|
6
|
+
export declare const StyledTitle: import("styled-components").StyledComponent<({ as, children, variant, style, ...props }: import("..").TypographyProps) => JSX.Element, any, {}, never>;
|
|
7
|
+
export declare const StyledDescription: import("styled-components").StyledComponent<({ as, children, variant, style, ...props }: import("..").TypographyProps) => JSX.Element, any, {}, never>;
|
|
8
|
+
export declare const StyledHelpText: import("styled-components").StyledComponent<({ as, children, variant, style, ...props }: import("..").TypographyProps) => JSX.Element, any, {}, never>;
|
|
@@ -16,7 +16,7 @@ export var SimplePaginationStyledNav = styled(StyledNav).withConfig({
|
|
|
16
16
|
export var StyledPageButton = styled.button.withConfig({
|
|
17
17
|
displayName: "PaginationStyle__StyledPageButton",
|
|
18
18
|
componentId: "sc-1hi5sa8-2"
|
|
19
|
-
})(["cursor:pointer;height:32px;min-width:32px;border:0;background:
|
|
19
|
+
})(["cursor:pointer;height:32px;min-width:32px;border:0;background:transparent;border-radius:", ";padding:", ";color:", ";&:hover{background:", ";}&:disabled{color:", ";}svg{fill:", ";width:24px;height:24px;}&[data-active='true']{background:", ";color:", ";}&:disabled svg{fill:", ";}&[data-active='true']:disabled{background:", ";color:", ";}"], borderRadius2, space4, Neutral.B18, Neutral.B95, Neutral.B85, Neutral.B40, Blue.S08, Blue.S99, Neutral.B85, Neutral.B95, Neutral.B85);
|
|
20
20
|
export var StyledSimplePaginationButton = styled(StyledPageButton).withConfig({
|
|
21
21
|
displayName: "PaginationStyle__StyledSimplePaginationButton",
|
|
22
22
|
componentId: "sc-1hi5sa8-3"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ElementType, ReactNode } from 'react';
|
|
1
|
+
import React, { ElementType, ReactNode } from 'react';
|
|
2
2
|
declare const typographyVariant: readonly ["headline1", "headline2", "headline3", "headline4", "headline5", "headline6", "subtitle1", "subtitle2", "body1", "body2", "button", "caption", "overline"];
|
|
3
3
|
export declare type Variant = typeof typographyVariant[number];
|
|
4
4
|
export interface TypographyProps {
|
|
@@ -9,6 +9,7 @@ export interface TypographyProps {
|
|
|
9
9
|
color?: string;
|
|
10
10
|
/** Sets the Typography's variant */
|
|
11
11
|
variant?: Variant;
|
|
12
|
+
style?: React.CSSProperties;
|
|
12
13
|
}
|
|
13
|
-
export declare const Typography: ({ as, children, variant, ...props }: TypographyProps) => JSX.Element;
|
|
14
|
+
export declare const Typography: ({ as, children, variant, style, ...props }: TypographyProps) => JSX.Element;
|
|
14
15
|
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose";
|
|
3
|
-
var _excluded = ["as", "children", "variant"];
|
|
3
|
+
var _excluded = ["as", "children", "variant", "style"];
|
|
4
4
|
import React from 'react';
|
|
5
5
|
import { StyledTypography } from './TypographyStyles';
|
|
6
6
|
var typographyVariant = ['headline1', 'headline2', 'headline3', 'headline4', 'headline5', 'headline6', 'subtitle1', 'subtitle2', 'body1', 'body2', 'button', 'caption', 'overline'];
|
|
@@ -12,11 +12,13 @@ export var Typography = function Typography(_ref) {
|
|
|
12
12
|
as = _ref$as === void 0 ? 'p' : _ref$as,
|
|
13
13
|
children = _ref.children,
|
|
14
14
|
variant = _ref.variant,
|
|
15
|
+
style = _ref.style,
|
|
15
16
|
props = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
16
17
|
if (!isVariant(variant)) {
|
|
17
18
|
console.warn("Variant: " + variant + " is not of type Variant | undefined. \ntype Variant " + typographyVariant);
|
|
18
19
|
}
|
|
19
20
|
return /*#__PURE__*/React.createElement(StyledTypography, _extends({
|
|
21
|
+
style: style,
|
|
20
22
|
as: as,
|
|
21
23
|
variant: variant
|
|
22
24
|
}, props), children);
|
package/es/@next/index.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export { ButtonGroup, ButtonGroupProps } from './ButtonGroup';
|
|
|
13
13
|
export { Card, CardProps } from './Card';
|
|
14
14
|
export { Checkbox, CheckboxProps } from './Checkbox';
|
|
15
15
|
export { CurrencyInput, CurrencyInputProps } from './CurrencyInput';
|
|
16
|
+
export { DataTable, DataTableProps, TableCellProps, TableHeaderProps, TableRowProps, } from './DataTable';
|
|
16
17
|
export { Divider } from './Divider';
|
|
17
18
|
export { EmptyState } from './EmptyState';
|
|
18
19
|
export { Icon, IconProps } from './Icon';
|
package/es/@next/index.js
CHANGED
|
@@ -14,6 +14,7 @@ export { ButtonGroup, ButtonGroupProps } from './ButtonGroup';
|
|
|
14
14
|
export { Card, CardProps } from './Card';
|
|
15
15
|
export { Checkbox, CheckboxProps } from './Checkbox';
|
|
16
16
|
export { CurrencyInput, CurrencyInputProps } from './CurrencyInput';
|
|
17
|
+
export { DataTable, DataTableProps, TableCellProps, TableHeaderProps, TableRowProps } from './DataTable';
|
|
17
18
|
export { Divider } from './Divider';
|
|
18
19
|
export { EmptyState } from './EmptyState';
|
|
19
20
|
export { Icon, IconProps } from './Icon';
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { EmptyStateProps } from '../EmptyState';
|
|
3
|
+
export declare type SortDirection = 'ASCENDING' | 'DESCENDING';
|
|
4
|
+
export declare type TableHeading = React.ThHTMLAttributes<HTMLTableColElement> & {
|
|
5
|
+
title?: string;
|
|
6
|
+
id?: string;
|
|
7
|
+
defaultSortDirection?: SortDirection;
|
|
8
|
+
};
|
|
9
|
+
export declare type Total = TableHeading | null;
|
|
10
|
+
export interface DataTableProps extends React.TableHTMLAttributes<HTMLTableElement> {
|
|
11
|
+
headings: TableHeading[];
|
|
12
|
+
children: React.ReactNode;
|
|
13
|
+
emptyState: React.ReactElement<EmptyStateProps>;
|
|
14
|
+
totals?: Total[];
|
|
15
|
+
loading?: boolean;
|
|
16
|
+
loadingLabel?: string;
|
|
17
|
+
onSortChanged?: (context: string, sortDirection: SortDirection) => void;
|
|
18
|
+
}
|
|
19
|
+
export declare const DataTable: React.ForwardRefExoticComponent<DataTableProps & React.RefAttributes<HTMLTableElement>> & {
|
|
20
|
+
Row: ({ children, ...props }: import("./TableRow").TableRowProps) => JSX.Element;
|
|
21
|
+
Cell: ({ align, children }: import("./TableCell").TableCellProps) => JSX.Element;
|
|
22
|
+
Footer: ({ children }: {
|
|
23
|
+
children: React.ReactNode;
|
|
24
|
+
}) => JSX.Element;
|
|
25
|
+
};
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.DataTable = void 0;
|
|
6
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
7
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _Spinner = require("../Spinner");
|
|
10
|
+
var _Typography = require("../Typography");
|
|
11
|
+
var _DataTableStyle = require("./DataTableStyle");
|
|
12
|
+
var _TableCell = require("./TableCell");
|
|
13
|
+
var _TableFooter = require("./TableFooter");
|
|
14
|
+
var _TableHeader = require("./TableHeader");
|
|
15
|
+
var _TableRow = require("./TableRow");
|
|
16
|
+
var _excluded = ["headings", "totals", "onSortChanged", "children", "emptyState", "loading", "loadingLabel"];
|
|
17
|
+
function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
18
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
19
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
20
|
+
var DataTableComponent = /*#__PURE__*/_react["default"].forwardRef(function DataTable(_ref, ref) {
|
|
21
|
+
var headings = _ref.headings,
|
|
22
|
+
totals = _ref.totals,
|
|
23
|
+
onSortChanged = _ref.onSortChanged,
|
|
24
|
+
children = _ref.children,
|
|
25
|
+
emptyState = _ref.emptyState,
|
|
26
|
+
loading = _ref.loading,
|
|
27
|
+
_ref$loadingLabel = _ref.loadingLabel,
|
|
28
|
+
loadingLabel = _ref$loadingLabel === void 0 ? 'loading' : _ref$loadingLabel,
|
|
29
|
+
props = (0, _objectWithoutPropertiesLoose2["default"])(_ref, _excluded);
|
|
30
|
+
var handleSortChanged = function handleSortChanged(context, sortDirection) {
|
|
31
|
+
onSortChanged == null ? void 0 : onSortChanged(context, sortDirection);
|
|
32
|
+
};
|
|
33
|
+
var rowHeaderMarkup = headings.map(function (heading, index) {
|
|
34
|
+
var id = heading.id,
|
|
35
|
+
title = heading.title,
|
|
36
|
+
defaultSortDirection = heading.defaultSortDirection,
|
|
37
|
+
align = heading.align;
|
|
38
|
+
var key = "table-header-heading-" + title + "-" + index;
|
|
39
|
+
return /*#__PURE__*/_react["default"].createElement(_TableHeader.TableHeader, {
|
|
40
|
+
key: key,
|
|
41
|
+
title: title,
|
|
42
|
+
sortDirection: defaultSortDirection,
|
|
43
|
+
align: align,
|
|
44
|
+
onSort: function onSort(sortDirection) {
|
|
45
|
+
return handleSortChanged(id || title, sortDirection);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
var totalsRowMarkup = totals ? totals.map(function (total, index) {
|
|
50
|
+
var _ref2 = total || {
|
|
51
|
+
title: ''
|
|
52
|
+
},
|
|
53
|
+
title = _ref2.title,
|
|
54
|
+
align = _ref2.align;
|
|
55
|
+
var key = total + "-" + index;
|
|
56
|
+
return /*#__PURE__*/_react["default"].createElement(_TableCell.TableCell, {
|
|
57
|
+
key: key,
|
|
58
|
+
align: align
|
|
59
|
+
}, /*#__PURE__*/_react["default"].createElement(_Typography.Typography, {
|
|
60
|
+
as: "div",
|
|
61
|
+
variant: "body2"
|
|
62
|
+
}, title));
|
|
63
|
+
}) : null;
|
|
64
|
+
var footer;
|
|
65
|
+
var rows = [];
|
|
66
|
+
for (var _iterator = _createForOfIteratorHelperLoose(_react["default"].Children.toArray(children)), _step; !(_step = _iterator()).done;) {
|
|
67
|
+
var child = _step.value;
|
|
68
|
+
var reactEl = child;
|
|
69
|
+
if (reactEl.type === _TableFooter.TableFooter) {
|
|
70
|
+
footer = reactEl.props.children;
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
rows.push(reactEl);
|
|
74
|
+
}
|
|
75
|
+
var emptyRow = /*#__PURE__*/_react["default"].createElement(_DataTableStyle.StyledTableRow, null, /*#__PURE__*/_react["default"].createElement(_DataTableStyle.StyledTableCell, {
|
|
76
|
+
colSpan: headings.length
|
|
77
|
+
}, emptyState));
|
|
78
|
+
var hasRows = rows.length > 0;
|
|
79
|
+
var rowsMarkup = hasRows ? rows : emptyRow;
|
|
80
|
+
var showFooter = !!footer;
|
|
81
|
+
var LoadingRow = function LoadingRow() {
|
|
82
|
+
return /*#__PURE__*/_react["default"].createElement(_DataTableStyle.StyledTableLoadingRow, {
|
|
83
|
+
className: "loader-container"
|
|
84
|
+
}, /*#__PURE__*/_react["default"].createElement(_DataTableStyle.StyledLoaderWrapper, null, /*#__PURE__*/_react["default"].createElement(_DataTableStyle.StyledSpinnerContainer, null, /*#__PURE__*/_react["default"].createElement(_Spinner.Spinner, null), /*#__PURE__*/_react["default"].createElement(_Typography.Typography, {
|
|
85
|
+
variant: "subtitle1"
|
|
86
|
+
}, loadingLabel))));
|
|
87
|
+
};
|
|
88
|
+
return /*#__PURE__*/_react["default"].createElement(_DataTableStyle.StyledDataTableContainer, null, /*#__PURE__*/_react["default"].createElement(_DataTableStyle.StyledTable, (0, _extends2["default"])({
|
|
89
|
+
ref: ref,
|
|
90
|
+
"data-loading": loading,
|
|
91
|
+
"data-has-footer": showFooter
|
|
92
|
+
}, props), /*#__PURE__*/_react["default"].createElement("thead", null, /*#__PURE__*/_react["default"].createElement(_DataTableStyle.StyledTableRow, null, rowHeaderMarkup)), /*#__PURE__*/_react["default"].createElement("tbody", null, /*#__PURE__*/_react["default"].createElement(LoadingRow, null), totalsRowMarkup && hasRows && /*#__PURE__*/_react["default"].createElement(_DataTableStyle.StyledTableRow, {
|
|
93
|
+
"data-total": "true"
|
|
94
|
+
}, totalsRowMarkup), rowsMarkup), showFooter && /*#__PURE__*/_react["default"].createElement("tfoot", null, /*#__PURE__*/_react["default"].createElement(_DataTableStyle.StyledTableFooterRow, null, /*#__PURE__*/_react["default"].createElement(_DataTableStyle.StyledTableCell, {
|
|
95
|
+
colSpan: headings.length
|
|
96
|
+
}, footer)))));
|
|
97
|
+
});
|
|
98
|
+
var DataTable = Object.assign(DataTableComponent, {
|
|
99
|
+
Row: _TableRow.TableRow,
|
|
100
|
+
Cell: _TableCell.TableCell,
|
|
101
|
+
Footer: _TableFooter.TableFooter
|
|
102
|
+
});
|
|
103
|
+
exports.DataTable = DataTable;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const StyledTable: import("styled-components").StyledComponent<"table", any, {}, never>;
|
|
2
|
+
export declare const StyledTableRow: import("styled-components").StyledComponent<"tr", any, {}, never>;
|
|
3
|
+
export declare const StyledTabledHeader: import("styled-components").StyledComponent<"th", any, {}, never>;
|
|
4
|
+
export declare const StyledTableCell: import("styled-components").StyledComponent<"td", any, {}, never>;
|
|
5
|
+
export declare const StyledTableFooterRow: import("styled-components").StyledComponent<"tr", any, {}, never>;
|
|
6
|
+
export declare const StyledTableLoadingRow: import("styled-components").StyledComponent<"tr", any, {}, never>;
|
|
7
|
+
export declare const StyledLoaderWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
8
|
+
export declare const StyledSpinnerContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
9
|
+
export declare const StyledDataTableContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.StyledTabledHeader = exports.StyledTableRow = exports.StyledTableLoadingRow = exports.StyledTableFooterRow = exports.StyledTableCell = exports.StyledTable = exports.StyledSpinnerContainer = exports.StyledLoaderWrapper = exports.StyledDataTableContainer = void 0;
|
|
6
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
7
|
+
var _borderRadius = require("../utilities/borderRadius");
|
|
8
|
+
var _colors = require("../utilities/colors");
|
|
9
|
+
var _spacing = require("../utilities/spacing");
|
|
10
|
+
var alignmentStyle = "\n&[data-text-align='right'] {\n > div {\n display: flex;\n justify-content: right;\n }\n}\n\n&[data-text-align='center'] {\n > div {\n display: flex;\n justify-content: center;\n }\n}\n";
|
|
11
|
+
var StyledTable = _styledComponents["default"].table.withConfig({
|
|
12
|
+
displayName: "DataTableStyle__StyledTable",
|
|
13
|
+
componentId: "sc-18v2ula-0"
|
|
14
|
+
})(["width:100%;height:100%;border:1px solid ", ";border-spacing:0;color:", ";max-width:100vw;border-bottom:0;&[data-has-footer='true']{border-bottom:1px solid ", ";}&[data-loading='true']{tbody{position:relative;}.loader-container{display:block;z-index:1;}}"], _colors.Neutral.B85, _colors.Neutral.B18, _colors.Neutral.B85);
|
|
15
|
+
exports.StyledTable = StyledTable;
|
|
16
|
+
var StyledTableRow = _styledComponents["default"].tr.withConfig({
|
|
17
|
+
displayName: "DataTableStyle__StyledTableRow",
|
|
18
|
+
componentId: "sc-18v2ula-1"
|
|
19
|
+
})(["background:", ";box-shadow:inset 0px -1px 0px ", ";&:hover{background:", ";}&[data-total='true']{background:", ";}"], _colors.Neutral.B100, _colors.Neutral.B85, _colors.Neutral.B99, _colors.Neutral.B99);
|
|
20
|
+
exports.StyledTableRow = StyledTableRow;
|
|
21
|
+
var StyledTabledHeader = _styledComponents["default"].th.withConfig({
|
|
22
|
+
displayName: "DataTableStyle__StyledTabledHeader",
|
|
23
|
+
componentId: "sc-18v2ula-2"
|
|
24
|
+
})(["padding:", ";text-align:left;", " button{padding:0;margin:0;height:auto;border:none;box-shadow:none;}button:hover{background:transparent;}button:active{border:none;box-shadow:none;background:transparent;}button:focus{border:none;}button svg{width:24px;height:24px;fill:", ";}"], _spacing.space16, alignmentStyle, _colors.Neutral.B40);
|
|
25
|
+
exports.StyledTabledHeader = StyledTabledHeader;
|
|
26
|
+
var StyledTableCell = _styledComponents["default"].td.withConfig({
|
|
27
|
+
displayName: "DataTableStyle__StyledTableCell",
|
|
28
|
+
componentId: "sc-18v2ula-3"
|
|
29
|
+
})(["text-align:left;padding:", ";vertical-align:top;", ""], _spacing.space16, alignmentStyle);
|
|
30
|
+
exports.StyledTableCell = StyledTableCell;
|
|
31
|
+
var StyledTableFooterRow = _styledComponents["default"].tr.withConfig({
|
|
32
|
+
displayName: "DataTableStyle__StyledTableFooterRow",
|
|
33
|
+
componentId: "sc-18v2ula-4"
|
|
34
|
+
})(["background:", ";border-top:0;border-radius:0px 0px ", " ", ";td{padding:", ";}"], _colors.Neutral.B99, _borderRadius.borderRadius8, _borderRadius.borderRadius8, _spacing.space16);
|
|
35
|
+
exports.StyledTableFooterRow = StyledTableFooterRow;
|
|
36
|
+
var StyledTableLoadingRow = (0, _styledComponents["default"])(StyledTableRow).withConfig({
|
|
37
|
+
displayName: "DataTableStyle__StyledTableLoadingRow",
|
|
38
|
+
componentId: "sc-18v2ula-5"
|
|
39
|
+
})(["position:absolute;width:100%;height:100%;display:none;z-index:-1;"]);
|
|
40
|
+
exports.StyledTableLoadingRow = StyledTableLoadingRow;
|
|
41
|
+
var StyledLoaderWrapper = _styledComponents["default"].div.withConfig({
|
|
42
|
+
displayName: "DataTableStyle__StyledLoaderWrapper",
|
|
43
|
+
componentId: "sc-18v2ula-6"
|
|
44
|
+
})(["height:100%;width:100%;position:relative;"]);
|
|
45
|
+
exports.StyledLoaderWrapper = StyledLoaderWrapper;
|
|
46
|
+
var StyledSpinnerContainer = _styledComponents["default"].div.withConfig({
|
|
47
|
+
displayName: "DataTableStyle__StyledSpinnerContainer",
|
|
48
|
+
componentId: "sc-18v2ula-7"
|
|
49
|
+
})(["position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:", ";svg{width:48px;height:48px;fill:", ";}"], _colors.Neutral.B18, _colors.Blue.S99);
|
|
50
|
+
exports.StyledSpinnerContainer = StyledSpinnerContainer;
|
|
51
|
+
var StyledDataTableContainer = _styledComponents["default"].div.withConfig({
|
|
52
|
+
displayName: "DataTableStyle__StyledDataTableContainer",
|
|
53
|
+
componentId: "sc-18v2ula-8"
|
|
54
|
+
})(["overflow-x:auto;scroll-behavior:smooth;"]);
|
|
55
|
+
exports.StyledDataTableContainer = StyledDataTableContainer;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.TableCell = void 0;
|
|
6
|
+
var _react = _interopRequireDefault(require("react"));
|
|
7
|
+
var _Typography = require("../Typography");
|
|
8
|
+
var _DataTableStyle = require("./DataTableStyle");
|
|
9
|
+
var TableCell = function TableCell(_ref) {
|
|
10
|
+
var align = _ref.align,
|
|
11
|
+
children = _ref.children;
|
|
12
|
+
return /*#__PURE__*/_react["default"].createElement(_DataTableStyle.StyledTableCell, {
|
|
13
|
+
"data-text-align": align
|
|
14
|
+
}, /*#__PURE__*/_react["default"].createElement(_Typography.Typography, {
|
|
15
|
+
as: "div",
|
|
16
|
+
variant: "body1"
|
|
17
|
+
}, children));
|
|
18
|
+
};
|
|
19
|
+
exports.TableCell = TableCell;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.TableFooter = void 0;
|
|
6
|
+
var _react = _interopRequireDefault(require("react"));
|
|
7
|
+
var TableFooter = function TableFooter(_ref) {
|
|
8
|
+
var children = _ref.children;
|
|
9
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, children);
|
|
10
|
+
};
|
|
11
|
+
exports.TableFooter = TableFooter;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { SortDirection } from './DataTable';
|
|
3
|
+
export interface TableHeaderProps extends React.ThHTMLAttributes<HTMLTableColElement> {
|
|
4
|
+
title: string;
|
|
5
|
+
sortDirection?: SortDirection;
|
|
6
|
+
onSort?: (sortDirection: SortDirection) => void;
|
|
7
|
+
}
|
|
8
|
+
export declare const TableHeader: ({ sortDirection: sortDirectionProp, title, align, onSort, }: TableHeaderProps) => JSX.Element;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.TableHeader = void 0;
|
|
5
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
6
|
+
var _Button = require("../Button");
|
|
7
|
+
var _Icon = require("../Icon");
|
|
8
|
+
var _Typography = require("../Typography");
|
|
9
|
+
var _DataTableStyle = require("./DataTableStyle");
|
|
10
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
11
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
12
|
+
var TableHeader = function TableHeader(_ref) {
|
|
13
|
+
var sortDirectionProp = _ref.sortDirection,
|
|
14
|
+
title = _ref.title,
|
|
15
|
+
_ref$align = _ref.align,
|
|
16
|
+
align = _ref$align === void 0 ? 'left' : _ref$align,
|
|
17
|
+
onSort = _ref.onSort;
|
|
18
|
+
var _useState = (0, _react.useState)(null),
|
|
19
|
+
sortDirection = _useState[0],
|
|
20
|
+
setSortDirection = _useState[1];
|
|
21
|
+
(0, _react.useEffect)(function () {
|
|
22
|
+
setSortDirection(sortDirectionProp);
|
|
23
|
+
}, [sortDirectionProp]);
|
|
24
|
+
var iconName = sortDirection === 'ASCENDING' ? 'ri-arrow-xs-up-fill' : 'ri-arrow-xs-down-fill';
|
|
25
|
+
var iconMarkup = sortDirection ? /*#__PURE__*/_react["default"].createElement(_Icon.Icon, {
|
|
26
|
+
name: iconName
|
|
27
|
+
}) : null;
|
|
28
|
+
var titleMarkup = /*#__PURE__*/_react["default"].createElement(_Typography.Typography, {
|
|
29
|
+
as: "span",
|
|
30
|
+
variant: "body1",
|
|
31
|
+
style: {
|
|
32
|
+
whiteSpace: 'nowrap'
|
|
33
|
+
}
|
|
34
|
+
}, title);
|
|
35
|
+
var handleSortableClick = function handleSortableClick() {
|
|
36
|
+
if (!sortDirection) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
var direction = sortDirection === 'ASCENDING' ? 'DESCENDING' : 'ASCENDING';
|
|
40
|
+
setSortDirection(direction);
|
|
41
|
+
onSort == null ? void 0 : onSort(direction);
|
|
42
|
+
};
|
|
43
|
+
var sortableCellMarkup = /*#__PURE__*/_react["default"].createElement(_Button.Button, {
|
|
44
|
+
"data-testid": "data-table-sort-button-" + title,
|
|
45
|
+
icon: iconMarkup,
|
|
46
|
+
onClick: function onClick() {
|
|
47
|
+
return handleSortableClick();
|
|
48
|
+
}
|
|
49
|
+
}, titleMarkup);
|
|
50
|
+
var contentMarkup = sortDirection ? sortableCellMarkup : titleMarkup;
|
|
51
|
+
return /*#__PURE__*/_react["default"].createElement(_DataTableStyle.StyledTabledHeader, {
|
|
52
|
+
"data-text-align": align
|
|
53
|
+
}, /*#__PURE__*/_react["default"].createElement("div", null, contentMarkup));
|
|
54
|
+
};
|
|
55
|
+
exports.TableHeader = TableHeader;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.TableRow = void 0;
|
|
6
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
7
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _DataTableStyle = require("./DataTableStyle");
|
|
10
|
+
var _excluded = ["children"];
|
|
11
|
+
var TableRow = function TableRow(_ref) {
|
|
12
|
+
var children = _ref.children,
|
|
13
|
+
props = (0, _objectWithoutPropertiesLoose2["default"])(_ref, _excluded);
|
|
14
|
+
return /*#__PURE__*/_react["default"].createElement(_DataTableStyle.StyledTableRow, (0, _extends2["default"])({
|
|
15
|
+
"data-testid": "data-table-row"
|
|
16
|
+
}, props), children);
|
|
17
|
+
};
|
|
18
|
+
exports.TableRow = TableRow;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
var _DataTable = require("./DataTable");
|
|
5
|
+
Object.keys(_DataTable).forEach(function (key) {
|
|
6
|
+
if (key === "default" || key === "__esModule") return;
|
|
7
|
+
if (key in exports && exports[key] === _DataTable[key]) return;
|
|
8
|
+
exports[key] = _DataTable[key];
|
|
9
|
+
});
|
|
10
|
+
var _TableRow = require("./TableRow");
|
|
11
|
+
Object.keys(_TableRow).forEach(function (key) {
|
|
12
|
+
if (key === "default" || key === "__esModule") return;
|
|
13
|
+
if (key in exports && exports[key] === _TableRow[key]) return;
|
|
14
|
+
exports[key] = _TableRow[key];
|
|
15
|
+
});
|
|
16
|
+
var _TableCell = require("./TableCell");
|
|
17
|
+
Object.keys(_TableCell).forEach(function (key) {
|
|
18
|
+
if (key === "default" || key === "__esModule") return;
|
|
19
|
+
if (key in exports && exports[key] === _TableCell[key]) return;
|
|
20
|
+
exports[key] = _TableCell[key];
|
|
21
|
+
});
|
|
22
|
+
var _TableHeader = require("./TableHeader");
|
|
23
|
+
Object.keys(_TableHeader).forEach(function (key) {
|
|
24
|
+
if (key === "default" || key === "__esModule") return;
|
|
25
|
+
if (key in exports && exports[key] === _TableHeader[key]) return;
|
|
26
|
+
exports[key] = _TableHeader[key];
|
|
27
|
+
});
|
|
@@ -3,6 +3,6 @@ export declare const EmptyStateContainer: import("styled-components").StyledComp
|
|
|
3
3
|
export declare const EmptyStateContentContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
4
4
|
export declare const StyledImage: import("styled-components").StyledComponent<"img", any, {}, never>;
|
|
5
5
|
export declare const StyledButtonGroup: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("..").ButtonGroupProps & import("react").RefAttributes<HTMLDivElement>>, any, {}, never>;
|
|
6
|
-
export declare const StyledTitle: import("styled-components").StyledComponent<({ as, children, variant, ...props }: import("..").TypographyProps) => JSX.Element, any, {}, never>;
|
|
7
|
-
export declare const StyledDescription: import("styled-components").StyledComponent<({ as, children, variant, ...props }: import("..").TypographyProps) => JSX.Element, any, {}, never>;
|
|
8
|
-
export declare const StyledHelpText: import("styled-components").StyledComponent<({ as, children, variant, ...props }: import("..").TypographyProps) => JSX.Element, any, {}, never>;
|
|
6
|
+
export declare const StyledTitle: import("styled-components").StyledComponent<({ as, children, variant, style, ...props }: import("..").TypographyProps) => JSX.Element, any, {}, never>;
|
|
7
|
+
export declare const StyledDescription: import("styled-components").StyledComponent<({ as, children, variant, style, ...props }: import("..").TypographyProps) => JSX.Element, any, {}, never>;
|
|
8
|
+
export declare const StyledHelpText: import("styled-components").StyledComponent<({ as, children, variant, style, ...props }: import("..").TypographyProps) => JSX.Element, any, {}, never>;
|
|
@@ -23,7 +23,7 @@ exports.SimplePaginationStyledNav = SimplePaginationStyledNav;
|
|
|
23
23
|
var StyledPageButton = _styledComponents["default"].button.withConfig({
|
|
24
24
|
displayName: "PaginationStyle__StyledPageButton",
|
|
25
25
|
componentId: "sc-1hi5sa8-2"
|
|
26
|
-
})(["cursor:pointer;height:32px;min-width:32px;border:0;background:
|
|
26
|
+
})(["cursor:pointer;height:32px;min-width:32px;border:0;background:transparent;border-radius:", ";padding:", ";color:", ";&:hover{background:", ";}&:disabled{color:", ";}svg{fill:", ";width:24px;height:24px;}&[data-active='true']{background:", ";color:", ";}&:disabled svg{fill:", ";}&[data-active='true']:disabled{background:", ";color:", ";}"], _borderRadius.borderRadius2, _spacing.space4, _colors.Neutral.B18, _colors.Neutral.B95, _colors.Neutral.B85, _colors.Neutral.B40, _colors.Blue.S08, _colors.Blue.S99, _colors.Neutral.B85, _colors.Neutral.B95, _colors.Neutral.B85);
|
|
27
27
|
exports.StyledPageButton = StyledPageButton;
|
|
28
28
|
var StyledSimplePaginationButton = (0, _styledComponents["default"])(StyledPageButton).withConfig({
|
|
29
29
|
displayName: "PaginationStyle__StyledSimplePaginationButton",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ElementType, ReactNode } from 'react';
|
|
1
|
+
import React, { ElementType, ReactNode } from 'react';
|
|
2
2
|
declare const typographyVariant: readonly ["headline1", "headline2", "headline3", "headline4", "headline5", "headline6", "subtitle1", "subtitle2", "body1", "body2", "button", "caption", "overline"];
|
|
3
3
|
export declare type Variant = typeof typographyVariant[number];
|
|
4
4
|
export interface TypographyProps {
|
|
@@ -9,6 +9,7 @@ export interface TypographyProps {
|
|
|
9
9
|
color?: string;
|
|
10
10
|
/** Sets the Typography's variant */
|
|
11
11
|
variant?: Variant;
|
|
12
|
+
style?: React.CSSProperties;
|
|
12
13
|
}
|
|
13
|
-
export declare const Typography: ({ as, children, variant, ...props }: TypographyProps) => JSX.Element;
|
|
14
|
+
export declare const Typography: ({ as, children, variant, style, ...props }: TypographyProps) => JSX.Element;
|
|
14
15
|
export {};
|
|
@@ -7,7 +7,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
7
7
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
var _TypographyStyles = require("./TypographyStyles");
|
|
10
|
-
var _excluded = ["as", "children", "variant"];
|
|
10
|
+
var _excluded = ["as", "children", "variant", "style"];
|
|
11
11
|
var typographyVariant = ['headline1', 'headline2', 'headline3', 'headline4', 'headline5', 'headline6', 'subtitle1', 'subtitle2', 'body1', 'body2', 'button', 'caption', 'overline'];
|
|
12
12
|
var isVariant = function isVariant(str) {
|
|
13
13
|
return typographyVariant.includes(str);
|
|
@@ -17,11 +17,13 @@ var Typography = function Typography(_ref) {
|
|
|
17
17
|
as = _ref$as === void 0 ? 'p' : _ref$as,
|
|
18
18
|
children = _ref.children,
|
|
19
19
|
variant = _ref.variant,
|
|
20
|
+
style = _ref.style,
|
|
20
21
|
props = (0, _objectWithoutPropertiesLoose2["default"])(_ref, _excluded);
|
|
21
22
|
if (!isVariant(variant)) {
|
|
22
23
|
console.warn("Variant: " + variant + " is not of type Variant | undefined. \ntype Variant " + typographyVariant);
|
|
23
24
|
}
|
|
24
25
|
return /*#__PURE__*/_react["default"].createElement(_TypographyStyles.StyledTypography, (0, _extends2["default"])({
|
|
26
|
+
style: style,
|
|
25
27
|
as: as,
|
|
26
28
|
variant: variant
|
|
27
29
|
}, props), children);
|
package/lib/@next/index.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export { ButtonGroup, ButtonGroupProps } from './ButtonGroup';
|
|
|
13
13
|
export { Card, CardProps } from './Card';
|
|
14
14
|
export { Checkbox, CheckboxProps } from './Checkbox';
|
|
15
15
|
export { CurrencyInput, CurrencyInputProps } from './CurrencyInput';
|
|
16
|
+
export { DataTable, DataTableProps, TableCellProps, TableHeaderProps, TableRowProps, } from './DataTable';
|
|
16
17
|
export { Divider } from './Divider';
|
|
17
18
|
export { EmptyState } from './EmptyState';
|
|
18
19
|
export { Icon, IconProps } from './Icon';
|
package/lib/@next/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
|
-
exports.useModal = exports.useIndexResourceState = exports.useAlert = exports.TypographyProps = exports.Typography = exports.TooltipProps = exports.TooltipPosition = exports.Tooltip = exports.TextInputProps = exports.TextInput = exports.TagProps = exports.Tag = exports.TabsProps = exports.Tabs = exports.TabProps = exports.TabModel = exports.Tab = exports.Switch = exports.SpinnerProps = exports.Spinner = exports.Spacing = exports.SimplePagination = exports.RadioButtonProps = exports.RadioButton = exports.PrimaryButton = exports.PopoverProps = exports.Popover = exports.PaginationProps = exports.Pagination = exports.OutlineMonochromeButton = exports.OutlineButton = exports.NumberInputProps = exports.NumberInput = exports.ModalProvider = exports.ModalProps = exports.ModalContext = exports.Modal = exports.LinkProps = exports.Link = exports.IndexTableProps = exports.IndexTable = exports.IconProps = exports.Icon = exports.Fonts = exports.EmptyState = exports.DropShadow = exports.Divider = exports.DestructiveButton = exports.CurrencyInputProps = exports.CurrencyInput = exports.Colors = exports.CheckboxProps = exports.Checkbox = exports.CardProps = exports.Card = exports.ButtonProps = exports.ButtonGroupProps = exports.ButtonGroup = exports.Button = exports.Breakpoints = exports.BorderRadius = exports.BannerProps = exports.Banner = exports.BadgeProps = exports.Badge = exports.AvatarProps = exports.Avatar = exports.AlertWithProvider = exports.AlertProvider = exports.AlertProps = exports.AlertContextProps = exports.AlertContext = exports.Alert = void 0;
|
|
4
|
+
exports.useModal = exports.useIndexResourceState = exports.useAlert = exports.TypographyProps = exports.Typography = exports.TooltipProps = exports.TooltipPosition = exports.Tooltip = exports.TextInputProps = exports.TextInput = exports.TagProps = exports.Tag = exports.TabsProps = exports.Tabs = exports.TableRowProps = exports.TableHeaderProps = exports.TableCellProps = exports.TabProps = exports.TabModel = exports.Tab = exports.Switch = exports.SpinnerProps = exports.Spinner = exports.Spacing = exports.SimplePagination = exports.RadioButtonProps = exports.RadioButton = exports.PrimaryButton = exports.PopoverProps = exports.Popover = exports.PaginationProps = exports.Pagination = exports.OutlineMonochromeButton = exports.OutlineButton = exports.NumberInputProps = exports.NumberInput = exports.ModalProvider = exports.ModalProps = exports.ModalContext = exports.Modal = exports.LinkProps = exports.Link = exports.IndexTableProps = exports.IndexTable = exports.IconProps = exports.Icon = exports.Fonts = exports.EmptyState = exports.DropShadow = exports.Divider = exports.DestructiveButton = exports.DataTableProps = exports.DataTable = exports.CurrencyInputProps = exports.CurrencyInput = exports.Colors = exports.CheckboxProps = exports.Checkbox = exports.CardProps = exports.Card = exports.ButtonProps = exports.ButtonGroupProps = exports.ButtonGroup = exports.Button = exports.Breakpoints = exports.BorderRadius = exports.BannerProps = exports.Banner = exports.BadgeProps = exports.Badge = exports.AvatarProps = exports.Avatar = exports.AlertWithProvider = exports.AlertProvider = exports.AlertProps = exports.AlertContextProps = exports.AlertContext = exports.Alert = void 0;
|
|
5
5
|
var BorderRadius = _interopRequireWildcard(require("./utilities/borderRadius"));
|
|
6
6
|
exports.BorderRadius = BorderRadius;
|
|
7
7
|
var Breakpoints = _interopRequireWildcard(require("./utilities/breakpoints"));
|
|
@@ -50,6 +50,12 @@ exports.CheckboxProps = _Checkbox.CheckboxProps;
|
|
|
50
50
|
var _CurrencyInput = require("./CurrencyInput");
|
|
51
51
|
exports.CurrencyInput = _CurrencyInput.CurrencyInput;
|
|
52
52
|
exports.CurrencyInputProps = _CurrencyInput.CurrencyInputProps;
|
|
53
|
+
var _DataTable = require("./DataTable");
|
|
54
|
+
exports.DataTable = _DataTable.DataTable;
|
|
55
|
+
exports.DataTableProps = _DataTable.DataTableProps;
|
|
56
|
+
exports.TableCellProps = _DataTable.TableCellProps;
|
|
57
|
+
exports.TableHeaderProps = _DataTable.TableHeaderProps;
|
|
58
|
+
exports.TableRowProps = _DataTable.TableRowProps;
|
|
53
59
|
var _Divider = require("./Divider");
|
|
54
60
|
exports.Divider = _Divider.Divider;
|
|
55
61
|
var _EmptyState = require("./EmptyState");
|