@atlaskit/table 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/LICENSE.md +13 -0
- package/README.md +83 -0
- package/constellation/index/examples.mdx +19 -0
- package/constellation/index/props.mdx +32 -0
- package/dist/cjs/body.js +105 -0
- package/dist/cjs/head-cell.js +42 -0
- package/dist/cjs/hooks/selection-provider.js +52 -0
- package/dist/cjs/hooks/use-row-id.js +26 -0
- package/dist/cjs/hooks/use-selectable.js +183 -0
- package/dist/cjs/hooks/use-sorting.js +59 -0
- package/dist/cjs/hooks/use-table-body.js +28 -0
- package/dist/cjs/hooks/use-table.js +56 -0
- package/dist/cjs/index.js +63 -0
- package/dist/cjs/row.js +70 -0
- package/dist/cjs/selectable-cell.js +53 -0
- package/dist/cjs/sortable-column.js +129 -0
- package/dist/cjs/table.js +60 -0
- package/dist/cjs/thead.js +73 -0
- package/dist/cjs/ui/base-cell.js +72 -0
- package/dist/cjs/ui/bulk-action-overlay.js +39 -0
- package/dist/cjs/ui/index.js +69 -0
- package/dist/cjs/ui/selectable-cell.js +39 -0
- package/dist/cjs/ui/table.js +31 -0
- package/dist/cjs/ui/tbody.js +38 -0
- package/dist/cjs/ui/td.js +38 -0
- package/dist/cjs/ui/th.js +40 -0
- package/dist/cjs/ui/thead.js +40 -0
- package/dist/cjs/ui/tr.js +68 -0
- package/dist/cjs/version.json +5 -0
- package/dist/es2019/body.js +66 -0
- package/dist/es2019/head-cell.js +31 -0
- package/dist/es2019/hooks/selection-provider.js +33 -0
- package/dist/es2019/hooks/use-row-id.js +13 -0
- package/dist/es2019/hooks/use-selectable.js +158 -0
- package/dist/es2019/hooks/use-sorting.js +37 -0
- package/dist/es2019/hooks/use-table-body.js +13 -0
- package/dist/es2019/hooks/use-table.js +34 -0
- package/dist/es2019/index.js +7 -0
- package/dist/es2019/row.js +41 -0
- package/dist/es2019/selectable-cell.js +25 -0
- package/dist/es2019/sortable-column.js +109 -0
- package/dist/es2019/table.js +38 -0
- package/dist/es2019/thead.js +46 -0
- package/dist/es2019/ui/base-cell.js +54 -0
- package/dist/es2019/ui/bulk-action-overlay.js +27 -0
- package/dist/es2019/ui/index.js +11 -0
- package/dist/es2019/ui/selectable-cell.js +28 -0
- package/dist/es2019/ui/table.js +22 -0
- package/dist/es2019/ui/tbody.js +26 -0
- package/dist/es2019/ui/td.js +21 -0
- package/dist/es2019/ui/th.js +26 -0
- package/dist/es2019/ui/thead.js +31 -0
- package/dist/es2019/ui/tr.js +55 -0
- package/dist/es2019/version.json +5 -0
- package/dist/esm/body.js +84 -0
- package/dist/esm/head-cell.js +31 -0
- package/dist/esm/hooks/selection-provider.js +32 -0
- package/dist/esm/hooks/use-row-id.js +15 -0
- package/dist/esm/hooks/use-selectable.js +171 -0
- package/dist/esm/hooks/use-sorting.js +46 -0
- package/dist/esm/hooks/use-table-body.js +13 -0
- package/dist/esm/hooks/use-table.js +36 -0
- package/dist/esm/index.js +7 -0
- package/dist/esm/row.js +46 -0
- package/dist/esm/selectable-cell.js +31 -0
- package/dist/esm/sortable-column.js +114 -0
- package/dist/esm/table.js +39 -0
- package/dist/esm/thead.js +51 -0
- package/dist/esm/ui/base-cell.js +58 -0
- package/dist/esm/ui/bulk-action-overlay.js +28 -0
- package/dist/esm/ui/index.js +11 -0
- package/dist/esm/ui/selectable-cell.js +28 -0
- package/dist/esm/ui/table.js +21 -0
- package/dist/esm/ui/tbody.js +27 -0
- package/dist/esm/ui/td.js +26 -0
- package/dist/esm/ui/th.js +28 -0
- package/dist/esm/ui/thead.js +30 -0
- package/dist/esm/ui/tr.js +55 -0
- package/dist/esm/version.json +5 -0
- package/dist/types/body.d.ts +15 -0
- package/dist/types/head-cell.d.ts +10 -0
- package/dist/types/hooks/selection-provider.d.ts +25 -0
- package/dist/types/hooks/use-row-id.d.ts +10 -0
- package/dist/types/hooks/use-selectable.d.ts +14 -0
- package/dist/types/hooks/use-sorting.d.ts +6 -0
- package/dist/types/hooks/use-table-body.d.ts +7 -0
- package/dist/types/hooks/use-table.d.ts +21 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/row.d.ts +14 -0
- package/dist/types/selectable-cell.d.ts +3 -0
- package/dist/types/sortable-column.d.ts +17 -0
- package/dist/types/table.d.ts +26 -0
- package/dist/types/thead.d.ts +7 -0
- package/dist/types/ui/base-cell.d.ts +30 -0
- package/dist/types/ui/bulk-action-overlay.d.ts +8 -0
- package/dist/types/ui/index.d.ts +11 -0
- package/dist/types/ui/selectable-cell.d.ts +10 -0
- package/dist/types/ui/table.d.ts +23 -0
- package/dist/types/ui/tbody.d.ts +8 -0
- package/dist/types/ui/td.d.ts +11 -0
- package/dist/types/ui/th.d.ts +11 -0
- package/dist/types/ui/thead.d.ts +10 -0
- package/dist/types/ui/tr.d.ts +16 -0
- package/package.json +101 -0
- package/primitives/package.json +15 -0
- package/report.api.md +139 -0
- package/tmp/api-report-tmp.d.ts +99 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.TableProvider = TableProvider;
|
|
11
|
+
exports.useTable = void 0;
|
|
12
|
+
|
|
13
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
14
|
+
|
|
15
|
+
var _noop = _interopRequireDefault(require("@atlaskit/ds-lib/noop"));
|
|
16
|
+
|
|
17
|
+
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); }
|
|
18
|
+
|
|
19
|
+
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; }
|
|
20
|
+
|
|
21
|
+
function generateContext() {
|
|
22
|
+
return /*#__PURE__*/(0, _react.createContext)({
|
|
23
|
+
isSelectable: false,
|
|
24
|
+
sortKey: 'unset',
|
|
25
|
+
setSortState: _noop.default
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
var TableContext = generateContext();
|
|
30
|
+
/**
|
|
31
|
+
* __Table state provider__
|
|
32
|
+
*
|
|
33
|
+
* The table context provides the data required for more complex functionality.
|
|
34
|
+
*
|
|
35
|
+
* - [Examples](https://atlassian.design/components/table/examples)
|
|
36
|
+
*/
|
|
37
|
+
|
|
38
|
+
function TableProvider(_ref) {
|
|
39
|
+
var children = _ref.children,
|
|
40
|
+
state = _ref.state;
|
|
41
|
+
return (
|
|
42
|
+
/*#__PURE__*/
|
|
43
|
+
// @ts-expect-error
|
|
44
|
+
_react.default.createElement(TableContext.Provider, {
|
|
45
|
+
value: state
|
|
46
|
+
}, children)
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
var useTable = function useTable() {
|
|
51
|
+
return (// @ts-expect-error
|
|
52
|
+
(0, _react.useContext)(TableContext)
|
|
53
|
+
);
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
exports.useTable = useTable;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
Object.defineProperty(exports, "Cell", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function get() {
|
|
11
|
+
return _ui.TD;
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
Object.defineProperty(exports, "HeadCell", {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: function get() {
|
|
17
|
+
return _headCell.default;
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
Object.defineProperty(exports, "Row", {
|
|
21
|
+
enumerable: true,
|
|
22
|
+
get: function get() {
|
|
23
|
+
return _row.default;
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
Object.defineProperty(exports, "SortableColumn", {
|
|
27
|
+
enumerable: true,
|
|
28
|
+
get: function get() {
|
|
29
|
+
return _sortableColumn.default;
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
Object.defineProperty(exports, "TBody", {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
get: function get() {
|
|
35
|
+
return _body.default;
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
Object.defineProperty(exports, "THead", {
|
|
39
|
+
enumerable: true,
|
|
40
|
+
get: function get() {
|
|
41
|
+
return _thead.default;
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
Object.defineProperty(exports, "default", {
|
|
45
|
+
enumerable: true,
|
|
46
|
+
get: function get() {
|
|
47
|
+
return _table.default;
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
var _table = _interopRequireDefault(require("./table"));
|
|
52
|
+
|
|
53
|
+
var _body = _interopRequireDefault(require("./body"));
|
|
54
|
+
|
|
55
|
+
var _row = _interopRequireDefault(require("./row"));
|
|
56
|
+
|
|
57
|
+
var _ui = require("./ui");
|
|
58
|
+
|
|
59
|
+
var _headCell = _interopRequireDefault(require("./head-cell"));
|
|
60
|
+
|
|
61
|
+
var _sortableColumn = _interopRequireDefault(require("./sortable-column"));
|
|
62
|
+
|
|
63
|
+
var _thead = _interopRequireDefault(require("./thead"));
|
package/dist/cjs/row.js
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.default = void 0;
|
|
11
|
+
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
|
|
14
|
+
var _react = require("react");
|
|
15
|
+
|
|
16
|
+
var _react2 = require("@emotion/react");
|
|
17
|
+
|
|
18
|
+
var _selectionProvider = require("./hooks/selection-provider");
|
|
19
|
+
|
|
20
|
+
var _useRowId = require("./hooks/use-row-id");
|
|
21
|
+
|
|
22
|
+
var _useTable = require("./hooks/use-table");
|
|
23
|
+
|
|
24
|
+
var _useTableBody = require("./hooks/use-table-body");
|
|
25
|
+
|
|
26
|
+
var _selectableCell = _interopRequireDefault(require("./selectable-cell"));
|
|
27
|
+
|
|
28
|
+
var Primitives = _interopRequireWildcard(require("./ui"));
|
|
29
|
+
|
|
30
|
+
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); }
|
|
31
|
+
|
|
32
|
+
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; }
|
|
33
|
+
|
|
34
|
+
/** @jsx jsx */
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* __Row__
|
|
38
|
+
*
|
|
39
|
+
* A table row.
|
|
40
|
+
*
|
|
41
|
+
* - [Examples](https://atlassian.design/components/table/examples)
|
|
42
|
+
*/
|
|
43
|
+
var Row = /*#__PURE__*/(0, _react.memo)(function (_ref) {
|
|
44
|
+
var children = _ref.children,
|
|
45
|
+
testId = _ref.testId;
|
|
46
|
+
// To ensure valid nesting
|
|
47
|
+
(0, _useTableBody.useTableBody)(); // to access table state
|
|
48
|
+
|
|
49
|
+
var table = (0, _useTable.useTable)();
|
|
50
|
+
|
|
51
|
+
var _useSelection = (0, _selectionProvider.useSelection)(),
|
|
52
|
+
_useSelection2 = (0, _slicedToArray2.default)(_useSelection, 1),
|
|
53
|
+
selectionState = _useSelection2[0];
|
|
54
|
+
|
|
55
|
+
var rowId = (0, _useRowId.useRowId)();
|
|
56
|
+
|
|
57
|
+
if (!table.isSelectable) {
|
|
58
|
+
return (0, _react2.jsx)(Primitives.TR, {
|
|
59
|
+
testId: testId
|
|
60
|
+
}, children);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
var isChecked = selectionState.allChecked || selectionState.checked.includes(rowId);
|
|
64
|
+
return (0, _react2.jsx)(Primitives.TR, {
|
|
65
|
+
isSelected: !!isChecked,
|
|
66
|
+
testId: testId
|
|
67
|
+
}, (0, _react2.jsx)(_selectableCell.default, null), children);
|
|
68
|
+
});
|
|
69
|
+
var _default = Row;
|
|
70
|
+
exports.default = _default;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.default = void 0;
|
|
11
|
+
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
|
|
14
|
+
var _react = require("react");
|
|
15
|
+
|
|
16
|
+
var _react2 = require("@emotion/react");
|
|
17
|
+
|
|
18
|
+
var _checkbox = _interopRequireDefault(require("@atlaskit/checkbox"));
|
|
19
|
+
|
|
20
|
+
var _selectionProvider = require("./hooks/selection-provider");
|
|
21
|
+
|
|
22
|
+
var _useRowId = require("./hooks/use-row-id");
|
|
23
|
+
|
|
24
|
+
var Primitives = _interopRequireWildcard(require("./ui"));
|
|
25
|
+
|
|
26
|
+
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); }
|
|
27
|
+
|
|
28
|
+
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; }
|
|
29
|
+
|
|
30
|
+
/** @jsx jsx */
|
|
31
|
+
var SelectableCell = function SelectableCell() {
|
|
32
|
+
var _useSelection = (0, _selectionProvider.useSelection)(),
|
|
33
|
+
_useSelection2 = (0, _slicedToArray2.default)(_useSelection, 2),
|
|
34
|
+
state = _useSelection2[0],
|
|
35
|
+
toggleSelection = _useSelection2[1].toggleSelection;
|
|
36
|
+
|
|
37
|
+
var idx = (0, _useRowId.useRowId)();
|
|
38
|
+
var isChecked = state.allChecked || state.checked.includes(idx);
|
|
39
|
+
var onChange = (0, _react.useCallback)(function (e) {
|
|
40
|
+
return toggleSelection(idx, e.nativeEvent.shiftKey);
|
|
41
|
+
}, // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
42
|
+
[idx]);
|
|
43
|
+
return (0, _react2.jsx)(Primitives.SelectableCell, {
|
|
44
|
+
as: "td"
|
|
45
|
+
}, (0, _react2.jsx)(_checkbox.default, {
|
|
46
|
+
isChecked: isChecked,
|
|
47
|
+
onChange: onChange
|
|
48
|
+
}));
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
var _default = /*#__PURE__*/(0, _react.memo)(SelectableCell);
|
|
52
|
+
|
|
53
|
+
exports.default = _default;
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
|
|
12
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
13
|
+
|
|
14
|
+
var _react = require("@emotion/react");
|
|
15
|
+
|
|
16
|
+
var _button = _interopRequireDefault(require("@atlaskit/button"));
|
|
17
|
+
|
|
18
|
+
var _arrowDown = _interopRequireDefault(require("@atlaskit/icon/glyph/arrow-down"));
|
|
19
|
+
|
|
20
|
+
var _arrowUp = _interopRequireDefault(require("@atlaskit/icon/glyph/arrow-up"));
|
|
21
|
+
|
|
22
|
+
var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
|
|
23
|
+
|
|
24
|
+
var _useTable2 = require("./hooks/use-table");
|
|
25
|
+
|
|
26
|
+
var _ui = require("./ui");
|
|
27
|
+
|
|
28
|
+
var _excluded = ["name", "testId", "onClick", "children"];
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* TODO these need to be i18n supported
|
|
32
|
+
*/
|
|
33
|
+
var sortingMessages = {
|
|
34
|
+
unsorted: {
|
|
35
|
+
string: 'Sort from A to Z',
|
|
36
|
+
number: 'Sort from 0 to 9'
|
|
37
|
+
},
|
|
38
|
+
ascending: {
|
|
39
|
+
string: 'Sort from A to Z',
|
|
40
|
+
number: 'Sort from 0 to 9'
|
|
41
|
+
},
|
|
42
|
+
descending: {
|
|
43
|
+
string: 'Sort from Z to A',
|
|
44
|
+
number: 'Sort from 9 to 0'
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
var overrideStyles = (0, _react.css)({
|
|
48
|
+
// eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage-spacing
|
|
49
|
+
margin: '0 -2px !important',
|
|
50
|
+
gap: "var(--ds-space-050, 4px)",
|
|
51
|
+
// eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage-spacing
|
|
52
|
+
paddingInline: "2px !important"
|
|
53
|
+
});
|
|
54
|
+
/**
|
|
55
|
+
* __SortableColumn__
|
|
56
|
+
*
|
|
57
|
+
* SortableColumn is used in place of the default Column when sorting is desired.
|
|
58
|
+
*/
|
|
59
|
+
|
|
60
|
+
var SortableColumn = function SortableColumn(_ref) {
|
|
61
|
+
var name = _ref.name,
|
|
62
|
+
testId = _ref.testId,
|
|
63
|
+
onClick = _ref.onClick,
|
|
64
|
+
children = _ref.children,
|
|
65
|
+
other = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
66
|
+
|
|
67
|
+
var _useTable = (0, _useTable2.useTable)(),
|
|
68
|
+
sortKey = _useTable.sortKey,
|
|
69
|
+
sortDirection = _useTable.sortDirection,
|
|
70
|
+
setSortState = _useTable.setSortState;
|
|
71
|
+
|
|
72
|
+
var getSortMessage = function getSortMessage() {
|
|
73
|
+
if (sortKey === name) {
|
|
74
|
+
// TODO: Change message depending on data type (string/number)
|
|
75
|
+
return sortingMessages[sortDirection || 'unsorted'].string;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return sortingMessages.unsorted.string;
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
var getSortIcon = function getSortIcon() {
|
|
82
|
+
if (sortKey === name) {
|
|
83
|
+
switch (sortDirection) {
|
|
84
|
+
case undefined:
|
|
85
|
+
return undefined;
|
|
86
|
+
|
|
87
|
+
case 'ascending':
|
|
88
|
+
return (0, _react.jsx)(_arrowUp.default, {
|
|
89
|
+
size: "small",
|
|
90
|
+
label: "",
|
|
91
|
+
primaryColor: "inherit"
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
case 'descending':
|
|
95
|
+
return (0, _react.jsx)(_arrowDown.default, {
|
|
96
|
+
size: "small",
|
|
97
|
+
label: "",
|
|
98
|
+
primaryColor: "inherit"
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
return undefined;
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
return (// eslint-disable-next-line @repo/internal/react/no-unsafe-spread-props
|
|
107
|
+
(0, _react.jsx)(_ui.TH, (0, _extends2.default)({
|
|
108
|
+
testId: testId
|
|
109
|
+
}, other), (0, _react.jsx)(_tooltip.default, {
|
|
110
|
+
content: getSortMessage(),
|
|
111
|
+
position: "top"
|
|
112
|
+
}, function (tooltipProps) {
|
|
113
|
+
return (0, _react.jsx)(_button.default, (0, _extends2.default)({
|
|
114
|
+
spacing: "compact",
|
|
115
|
+
appearance: "subtle",
|
|
116
|
+
iconAfter: getSortIcon()
|
|
117
|
+
}, tooltipProps, {
|
|
118
|
+
// @ts-expect-error
|
|
119
|
+
onClick: function onClick() {
|
|
120
|
+
return setSortState(name);
|
|
121
|
+
},
|
|
122
|
+
css: overrideStyles
|
|
123
|
+
}), children);
|
|
124
|
+
}))
|
|
125
|
+
);
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
var _default = SortableColumn;
|
|
129
|
+
exports.default = _default;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.default = void 0;
|
|
11
|
+
|
|
12
|
+
var _react = require("@emotion/react");
|
|
13
|
+
|
|
14
|
+
var _selectionProvider = _interopRequireDefault(require("./hooks/selection-provider"));
|
|
15
|
+
|
|
16
|
+
var _useSorting2 = require("./hooks/use-sorting");
|
|
17
|
+
|
|
18
|
+
var _useTable = require("./hooks/use-table");
|
|
19
|
+
|
|
20
|
+
var Primitives = _interopRequireWildcard(require("./ui"));
|
|
21
|
+
|
|
22
|
+
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); }
|
|
23
|
+
|
|
24
|
+
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; }
|
|
25
|
+
|
|
26
|
+
/** @jsx jsx */
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* __Table__
|
|
30
|
+
*
|
|
31
|
+
* A data table is used to display dynamic data.
|
|
32
|
+
*
|
|
33
|
+
* - [Examples](https://atlassian.design/components/table/examples)
|
|
34
|
+
*/
|
|
35
|
+
function Table(_ref) {
|
|
36
|
+
var children = _ref.children,
|
|
37
|
+
isSelectable = _ref.isSelectable,
|
|
38
|
+
_ref$sortKey = _ref.sortKey,
|
|
39
|
+
sortKey = _ref$sortKey === void 0 ? 'unset' : _ref$sortKey,
|
|
40
|
+
testId = _ref.testId;
|
|
41
|
+
|
|
42
|
+
var _useSorting = (0, _useSorting2.useSorting)(sortKey),
|
|
43
|
+
localSortKey = _useSorting.sortKey,
|
|
44
|
+
sortDirection = _useSorting.sortDirection,
|
|
45
|
+
setSortState = _useSorting.setSortState;
|
|
46
|
+
|
|
47
|
+
return (0, _react.jsx)(_useTable.TableProvider, {
|
|
48
|
+
state: {
|
|
49
|
+
isSelectable: isSelectable,
|
|
50
|
+
sortKey: localSortKey,
|
|
51
|
+
sortDirection: sortDirection,
|
|
52
|
+
setSortState: setSortState
|
|
53
|
+
}
|
|
54
|
+
}, (0, _react.jsx)(Primitives.Table, {
|
|
55
|
+
testId: testId
|
|
56
|
+
}, isSelectable ? (0, _react.jsx)(_selectionProvider.default, null, children) : children));
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
var _default = Table;
|
|
60
|
+
exports.default = _default;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.default = void 0;
|
|
11
|
+
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
|
|
14
|
+
var _react = require("@emotion/react");
|
|
15
|
+
|
|
16
|
+
var _checkbox = _interopRequireDefault(require("@atlaskit/checkbox"));
|
|
17
|
+
|
|
18
|
+
var _dsExplorations = require("@atlaskit/ds-explorations");
|
|
19
|
+
|
|
20
|
+
var _visuallyHidden = _interopRequireDefault(require("@atlaskit/visually-hidden"));
|
|
21
|
+
|
|
22
|
+
var _selectionProvider = require("./hooks/selection-provider");
|
|
23
|
+
|
|
24
|
+
var _useTable = require("./hooks/use-table");
|
|
25
|
+
|
|
26
|
+
var Primitives = _interopRequireWildcard(require("./ui"));
|
|
27
|
+
|
|
28
|
+
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); }
|
|
29
|
+
|
|
30
|
+
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; }
|
|
31
|
+
|
|
32
|
+
/** @jsx jsx */
|
|
33
|
+
var THead = function THead(_ref) {
|
|
34
|
+
var actions = _ref.actions,
|
|
35
|
+
children = _ref.children;
|
|
36
|
+
var table = (0, _useTable.useTable)();
|
|
37
|
+
|
|
38
|
+
var _useSelection = (0, _selectionProvider.useSelection)(),
|
|
39
|
+
_useSelection2 = (0, _slicedToArray2.default)(_useSelection, 2),
|
|
40
|
+
state = _useSelection2[0],
|
|
41
|
+
_useSelection2$ = _useSelection2[1],
|
|
42
|
+
setAll = _useSelection2$.setAll,
|
|
43
|
+
removeAll = _useSelection2$.removeAll;
|
|
44
|
+
|
|
45
|
+
var isChecked = state.allChecked || state.anyChecked;
|
|
46
|
+
|
|
47
|
+
if (!table.isSelectable) {
|
|
48
|
+
return (0, _react.jsx)(Primitives.THead, null, (0, _react.jsx)(Primitives.TR, {
|
|
49
|
+
isBodyRow: false
|
|
50
|
+
}, children));
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return (0, _react.jsx)(Primitives.THead, null, (0, _react.jsx)(Primitives.TR, {
|
|
54
|
+
isBodyRow: false
|
|
55
|
+
}, (0, _react.jsx)(Primitives.SelectableCell, {
|
|
56
|
+
as: "th"
|
|
57
|
+
}, (0, _react.jsx)(_checkbox.default, {
|
|
58
|
+
"aria-labelledby": "select-all",
|
|
59
|
+
onChange: isChecked ? removeAll : setAll,
|
|
60
|
+
isChecked: isChecked,
|
|
61
|
+
isIndeterminate: state.anyChecked && !state.allChecked
|
|
62
|
+
}), (0, _react.jsx)(_visuallyHidden.default, {
|
|
63
|
+
id: "select-all"
|
|
64
|
+
}, "Select all rows")), children, isChecked && (0, _react.jsx)(Primitives.BulkActionOverlay, null, (0, _react.jsx)(_dsExplorations.UNSAFE_Text, {
|
|
65
|
+
color: "color.text",
|
|
66
|
+
fontWeight: "500"
|
|
67
|
+
}, state.checked.length, " selected"), actions && (0, _react.jsx)(_dsExplorations.UNSAFE_Inline, {
|
|
68
|
+
gap: "scale.100"
|
|
69
|
+
}, actions(state.checked)))));
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
var _default = THead;
|
|
73
|
+
exports.default = _default;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.BaseCell = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = require("react");
|
|
11
|
+
|
|
12
|
+
var _react2 = require("@emotion/react");
|
|
13
|
+
|
|
14
|
+
var _box = _interopRequireDefault(require("@atlaskit/ds-explorations/box"));
|
|
15
|
+
|
|
16
|
+
var _inline = _interopRequireDefault(require("@atlaskit/ds-explorations/inline"));
|
|
17
|
+
|
|
18
|
+
/* eslint-disable @atlassian/tangerine/import/entry-points */
|
|
19
|
+
|
|
20
|
+
/** @jsx jsx */
|
|
21
|
+
var alignMap = {
|
|
22
|
+
text: 'flexStart',
|
|
23
|
+
number: 'flexEnd',
|
|
24
|
+
icon: 'center'
|
|
25
|
+
};
|
|
26
|
+
var baseResetStyles = (0, _react2.css)({
|
|
27
|
+
display: 'table-cell',
|
|
28
|
+
verticalAlign: 'middle',
|
|
29
|
+
'&:first-of-type': {
|
|
30
|
+
paddingLeft: "var(--ds-space-100, 8px)"
|
|
31
|
+
},
|
|
32
|
+
'&:last-of-type': {
|
|
33
|
+
paddingRight: "var(--ds-space-100, 8px)"
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
/**
|
|
37
|
+
* __BaseCell__
|
|
38
|
+
*
|
|
39
|
+
* @internal
|
|
40
|
+
*
|
|
41
|
+
* Basic cell element.
|
|
42
|
+
*/
|
|
43
|
+
|
|
44
|
+
var BaseCell = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
45
|
+
var testId = _ref.testId,
|
|
46
|
+
as = _ref.as,
|
|
47
|
+
children = _ref.children,
|
|
48
|
+
_ref$align = _ref.align,
|
|
49
|
+
align = _ref$align === void 0 ? 'text' : _ref$align,
|
|
50
|
+
_ref$paddingBlock = _ref.paddingBlock,
|
|
51
|
+
paddingBlock = _ref$paddingBlock === void 0 ? 'scale.100' : _ref$paddingBlock,
|
|
52
|
+
_ref$paddingInline = _ref.paddingInline,
|
|
53
|
+
paddingInline = _ref$paddingInline === void 0 ? 'scale.200' : _ref$paddingInline,
|
|
54
|
+
backgroundColor = _ref.backgroundColor,
|
|
55
|
+
scope = _ref.scope,
|
|
56
|
+
className = _ref.className;
|
|
57
|
+
return (0, _react2.jsx)(_box.default, {
|
|
58
|
+
css: baseResetStyles,
|
|
59
|
+
ref: ref,
|
|
60
|
+
scope: scope,
|
|
61
|
+
backgroundColor: backgroundColor,
|
|
62
|
+
paddingBlock: paddingBlock,
|
|
63
|
+
paddingInline: paddingInline,
|
|
64
|
+
as: as,
|
|
65
|
+
testId: testId,
|
|
66
|
+
className: className
|
|
67
|
+
}, (0, _react2.jsx)(_inline.default, {
|
|
68
|
+
justifyContent: alignMap[align],
|
|
69
|
+
gap: "scale.0"
|
|
70
|
+
}, children));
|
|
71
|
+
});
|
|
72
|
+
exports.BaseCell = BaseCell;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.BulkActionOverlay = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = require("@emotion/react");
|
|
9
|
+
|
|
10
|
+
var _dsExplorations = require("@atlaskit/ds-explorations");
|
|
11
|
+
|
|
12
|
+
/** @jsx jsx */
|
|
13
|
+
var overlayStyles = (0, _react.css)({
|
|
14
|
+
top: 0,
|
|
15
|
+
right: 0,
|
|
16
|
+
bottom: 0,
|
|
17
|
+
left: 32
|
|
18
|
+
});
|
|
19
|
+
/**
|
|
20
|
+
* __Bulk action overlay__
|
|
21
|
+
*
|
|
22
|
+
* A bulk action overlay is used to conditionally render when a user makes a row selection
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
var BulkActionOverlay = function BulkActionOverlay(_ref) {
|
|
26
|
+
var children = _ref.children;
|
|
27
|
+
return (0, _react.jsx)(_dsExplorations.UNSAFE_Box, {
|
|
28
|
+
as: "th",
|
|
29
|
+
position: "absolute",
|
|
30
|
+
paddingInline: "scale.100",
|
|
31
|
+
backgroundColor: "elevation.surface",
|
|
32
|
+
css: overlayStyles
|
|
33
|
+
}, (0, _react.jsx)(_dsExplorations.UNSAFE_Inline, {
|
|
34
|
+
gap: "scale.300",
|
|
35
|
+
alignItems: "center"
|
|
36
|
+
}, children));
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
exports.BulkActionOverlay = BulkActionOverlay;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "BulkActionOverlay", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _bulkActionOverlay.BulkActionOverlay;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "SelectableCell", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function get() {
|
|
15
|
+
return _selectableCell.SelectableCell;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "TBody", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function get() {
|
|
21
|
+
return _tbody.TBody;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "TD", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function get() {
|
|
27
|
+
return _td.TD;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
Object.defineProperty(exports, "TH", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function get() {
|
|
33
|
+
return _th.TH;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
Object.defineProperty(exports, "THead", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function get() {
|
|
39
|
+
return _thead.THead;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
Object.defineProperty(exports, "TR", {
|
|
43
|
+
enumerable: true,
|
|
44
|
+
get: function get() {
|
|
45
|
+
return _tr.TR;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
Object.defineProperty(exports, "Table", {
|
|
49
|
+
enumerable: true,
|
|
50
|
+
get: function get() {
|
|
51
|
+
return _table.Table;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
var _table = require("./table");
|
|
56
|
+
|
|
57
|
+
var _tbody = require("./tbody");
|
|
58
|
+
|
|
59
|
+
var _tr = require("./tr");
|
|
60
|
+
|
|
61
|
+
var _td = require("./td");
|
|
62
|
+
|
|
63
|
+
var _th = require("./th");
|
|
64
|
+
|
|
65
|
+
var _selectableCell = require("./selectable-cell");
|
|
66
|
+
|
|
67
|
+
var _thead = require("./thead");
|
|
68
|
+
|
|
69
|
+
var _bulkActionOverlay = require("./bulk-action-overlay");
|