@instructure/ui-table 10.16.1-snapshot-0 → 10.16.1
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 +1 -1
- package/es/Table/Body/index.js +23 -21
- package/es/Table/Cell/index.js +7 -5
- package/es/Table/ColHeader/index.js +18 -14
- package/es/Table/Head/index.js +35 -29
- package/es/Table/Row/index.js +19 -17
- package/es/Table/RowHeader/index.js +7 -5
- package/es/Table/__new-tests__/Table.test.js +170 -53
- package/es/Table/index.js +26 -19
- package/lib/Table/Body/index.js +22 -20
- package/lib/Table/Cell/index.js +6 -4
- package/lib/Table/ColHeader/index.js +17 -14
- package/lib/Table/Head/index.js +34 -28
- package/lib/Table/Row/index.js +18 -16
- package/lib/Table/RowHeader/index.js +6 -4
- package/lib/Table/__new-tests__/Table.test.js +170 -54
- package/lib/Table/index.js +25 -18
- package/package.json +17 -17
- package/src/Table/Body/index.tsx +1 -2
- package/src/Table/Cell/index.tsx +1 -2
- package/src/Table/ColHeader/index.tsx +2 -3
- package/src/Table/ColHeader/props.ts +1 -1
- package/src/Table/Head/index.tsx +1 -2
- package/src/Table/README.md +2 -2
- package/src/Table/Row/index.tsx +1 -2
- package/src/Table/RowHeader/index.tsx +1 -2
- package/src/Table/__new-tests__/Table.test.tsx +5 -5
- package/src/Table/index.tsx +1 -2
- package/tsconfig.build.tsbuildinfo +1 -1
- package/types/Table/Body/index.d.ts +1 -3
- package/types/Table/Body/index.d.ts.map +1 -1
- package/types/Table/Cell/index.d.ts +1 -3
- package/types/Table/Cell/index.d.ts.map +1 -1
- package/types/Table/ColHeader/index.d.ts +3 -5
- package/types/Table/ColHeader/index.d.ts.map +1 -1
- package/types/Table/ColHeader/props.d.ts +1 -1
- package/types/Table/ColHeader/props.d.ts.map +1 -1
- package/types/Table/Head/index.d.ts +2 -4
- package/types/Table/Head/index.d.ts.map +1 -1
- package/types/Table/Row/index.d.ts +1 -3
- package/types/Table/Row/index.d.ts.map +1 -1
- package/types/Table/RowHeader/index.d.ts +1 -3
- package/types/Table/RowHeader/index.d.ts.map +1 -1
- package/types/Table/index.d.ts +1 -3
- package/types/Table/index.d.ts.map +1 -1
@@ -23,13 +23,14 @@ var _Table$Head, _Table$Body, _Table, _Table2, _Table3, _span, _span2, _Table$Ro
|
|
23
23
|
* SOFTWARE.
|
24
24
|
*/
|
25
25
|
|
26
|
-
import
|
26
|
+
import { Component } from 'react';
|
27
27
|
import { render, screen, waitFor } from '@testing-library/react';
|
28
28
|
import { vi } from 'vitest';
|
29
29
|
import { userEvent } from '@testing-library/user-event';
|
30
30
|
import '@testing-library/jest-dom';
|
31
31
|
import { Table } from '../index';
|
32
32
|
import { runAxeCheck } from '@instructure/ui-axe-check';
|
33
|
+
import { jsx as _jsx, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
|
33
34
|
describe('<Table />', async () => {
|
34
35
|
let consoleErrorMock;
|
35
36
|
beforeEach(() => {
|
@@ -39,13 +40,29 @@ describe('<Table />', async () => {
|
|
39
40
|
afterEach(() => {
|
40
41
|
consoleErrorMock.mockRestore();
|
41
42
|
});
|
42
|
-
const renderTable = props => render(
|
43
|
-
caption: "Test table"
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
43
|
+
const renderTable = props => render(_jsxs(Table, {
|
44
|
+
caption: "Test table",
|
45
|
+
...props,
|
46
|
+
children: [_Table$Head || (_Table$Head = _jsx(Table.Head, {
|
47
|
+
children: _jsxs(Table.Row, {
|
48
|
+
children: [_jsx(Table.ColHeader, {
|
49
|
+
id: "foo",
|
50
|
+
children: "ColHeader"
|
51
|
+
}), _jsx(Table.ColHeader, {
|
52
|
+
id: "bar",
|
53
|
+
children: "Bar-header"
|
54
|
+
})]
|
55
|
+
})
|
56
|
+
})), _Table$Body || (_Table$Body = _jsx(Table.Body, {
|
57
|
+
children: _jsxs(Table.Row, {
|
58
|
+
children: [_jsx(Table.RowHeader, {
|
59
|
+
children: "RowHeader"
|
60
|
+
}), _jsx(Table.Cell, {
|
61
|
+
children: "Cell"
|
62
|
+
})]
|
63
|
+
})
|
64
|
+
}))]
|
65
|
+
}));
|
49
66
|
it('should render a caption', async () => {
|
50
67
|
const _renderTable = renderTable(),
|
51
68
|
container = _renderTable.container;
|
@@ -103,48 +120,96 @@ describe('<Table />', async () => {
|
|
103
120
|
expect(stackedTable).not.toHaveTextContent('ColHeader');
|
104
121
|
});
|
105
122
|
it('can handle non-existent head in stacked layout', async () => {
|
106
|
-
render(_Table || (_Table =
|
123
|
+
render(_Table || (_Table = _jsx(Table, {
|
107
124
|
caption: "Test table",
|
108
|
-
layout: "stacked"
|
109
|
-
|
125
|
+
layout: "stacked",
|
126
|
+
children: _jsx(Table.Body, {})
|
127
|
+
})));
|
110
128
|
const stackedTable = screen.getByRole('table');
|
111
129
|
expect(stackedTable).toBeInTheDocument();
|
112
130
|
});
|
113
131
|
it('can handle empty head in stacked layout', async () => {
|
114
|
-
render(_Table2 || (_Table2 =
|
132
|
+
render(_Table2 || (_Table2 = _jsx(Table, {
|
115
133
|
caption: "Test table",
|
116
|
-
layout: "stacked"
|
117
|
-
|
134
|
+
layout: "stacked",
|
135
|
+
children: _jsx(Table.Head, {})
|
136
|
+
})));
|
118
137
|
const stackedTable = screen.getByRole('table');
|
119
138
|
expect(stackedTable).toBeInTheDocument();
|
120
139
|
});
|
121
140
|
it('can handle invalid header in stacked layout', async () => {
|
122
|
-
render(_Table3 || (_Table3 =
|
141
|
+
render(_Table3 || (_Table3 = _jsx(Table, {
|
123
142
|
caption: "Test table",
|
124
|
-
layout: "stacked"
|
125
|
-
|
143
|
+
layout: "stacked",
|
144
|
+
children: _jsx(Table.Head, {
|
145
|
+
children: _jsx(Table.Row, {
|
146
|
+
children: _jsx(Table.Cell, {
|
147
|
+
children: "Foo"
|
148
|
+
})
|
149
|
+
})
|
150
|
+
})
|
151
|
+
})));
|
126
152
|
const stackedTable = screen.getByRole('table');
|
127
153
|
expect(stackedTable).toBeInTheDocument();
|
128
154
|
expect(stackedTable).not.toHaveTextContent('Foo');
|
129
155
|
});
|
130
156
|
it('does not crash for invalid children', async () => {
|
131
|
-
render(
|
157
|
+
render(_jsxs(Table, {
|
132
158
|
caption: "Test table",
|
133
|
-
layout: "stacked"
|
134
|
-
|
159
|
+
layout: "stacked",
|
160
|
+
children: ["test1", _span || (_span = _jsx("span", {
|
161
|
+
children: "test"
|
162
|
+
})), _jsxs(Table.Head, {
|
163
|
+
children: [_span2 || (_span2 = _jsx("span", {
|
164
|
+
children: "test"
|
165
|
+
})), "test2", _Table$Row || (_Table$Row = _jsxs(Table.Row, {
|
166
|
+
children: ["test3", _jsx("span", {
|
167
|
+
children: "test"
|
168
|
+
}), _jsx(Table.Cell, {
|
169
|
+
children: "Foo"
|
170
|
+
})]
|
171
|
+
})), "test4", _span3 || (_span3 = _jsx("span", {
|
172
|
+
children: "test"
|
173
|
+
}))]
|
174
|
+
}), "test5", _jsxs(Table.Body, {
|
175
|
+
children: ["test", _span4 || (_span4 = _jsx("span", {
|
176
|
+
children: "test"
|
177
|
+
})), _Table$Row2 || (_Table$Row2 = _jsxs(Table.Row, {
|
178
|
+
children: ["test", _jsx("span", {
|
179
|
+
children: "test"
|
180
|
+
}), _jsx(Table.Cell, {
|
181
|
+
children: "Foo"
|
182
|
+
}), "test", _jsx("span", {
|
183
|
+
children: "test"
|
184
|
+
})]
|
185
|
+
}))]
|
186
|
+
})]
|
187
|
+
}));
|
135
188
|
const table = screen.getByRole('table');
|
136
189
|
expect(table).toBeInTheDocument();
|
137
190
|
expect(table).toHaveTextContent('Foo');
|
138
191
|
});
|
139
192
|
describe('when table is sortable', async () => {
|
140
|
-
const renderSortableTable = (props, handlers = {}, layout = 'auto') => render(
|
193
|
+
const renderSortableTable = (props, handlers = {}, layout = 'auto') => render(_jsxs(Table, {
|
141
194
|
caption: "Sortable table",
|
142
|
-
layout: layout
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
195
|
+
layout: layout,
|
196
|
+
children: [_jsx(Table.Head, {
|
197
|
+
children: _jsxs(Table.Row, {
|
198
|
+
children: [_jsx(Table.ColHeader, {
|
199
|
+
id: "foo",
|
200
|
+
...props,
|
201
|
+
...handlers,
|
202
|
+
children: "Foo"
|
203
|
+
}), _jsx(Table.ColHeader, {
|
204
|
+
id: "bar",
|
205
|
+
...handlers,
|
206
|
+
children: "Bar"
|
207
|
+
})]
|
208
|
+
})
|
209
|
+
}), _Table$Body2 || (_Table$Body2 = _jsxs(Table.Body, {
|
210
|
+
children: [_jsx(Table.Row, {}), _jsx(Table.Row, {})]
|
211
|
+
}))]
|
212
|
+
}));
|
148
213
|
it('can render up arrow for ascending order', async () => {
|
149
214
|
const _renderSortableTable = renderSortableTable({
|
150
215
|
id: 'id',
|
@@ -228,27 +293,57 @@ describe('<Table />', async () => {
|
|
228
293
|
describe('when using custom components', () => {
|
229
294
|
it('should render wrapper HOCs', () => {
|
230
295
|
var _CustomTableCell2;
|
231
|
-
class CustomTableCell extends
|
296
|
+
class CustomTableCell extends Component {
|
232
297
|
render() {
|
233
|
-
return
|
298
|
+
return _jsx(Table.Cell, {
|
299
|
+
...this.props,
|
300
|
+
children: this.props.children
|
301
|
+
});
|
234
302
|
}
|
235
303
|
}
|
236
304
|
CustomTableCell.displayName = "CustomTableCell";
|
237
|
-
class CustomTableRow extends
|
305
|
+
class CustomTableRow extends Component {
|
238
306
|
render() {
|
239
|
-
return
|
307
|
+
return _jsxs(Table.Row, {
|
308
|
+
...this.props,
|
309
|
+
children: [_Table$RowHeader || (_Table$RowHeader = _jsx(Table.RowHeader, {
|
310
|
+
children: "1"
|
311
|
+
})), _Table$Cell || (_Table$Cell = _jsx(Table.Cell, {
|
312
|
+
children: "The Shawshank Redemption"
|
313
|
+
})), _CustomTableCell2 || (_CustomTableCell2 = _jsx(CustomTableCell, {
|
314
|
+
children: "9.3"
|
315
|
+
}))]
|
316
|
+
});
|
240
317
|
}
|
241
318
|
}
|
242
319
|
CustomTableRow.displayName = "CustomTableRow";
|
243
|
-
const table = render(
|
244
|
-
caption: "Test custom table"
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
320
|
+
const table = render(_jsxs(Table, {
|
321
|
+
caption: "Test custom table",
|
322
|
+
children: [_Table$Head2 || (_Table$Head2 = _jsx(Table.Head, {
|
323
|
+
children: _jsxs(Table.Row, {
|
324
|
+
children: [_jsx(Table.ColHeader, {
|
325
|
+
id: "foo",
|
326
|
+
children: "ColHeader"
|
327
|
+
}), _jsx(Table.ColHeader, {
|
328
|
+
id: "bar",
|
329
|
+
children: "Bar-header"
|
330
|
+
}), _jsx(Table.ColHeader, {
|
331
|
+
id: "baz",
|
332
|
+
children: "Bar-header"
|
333
|
+
})]
|
334
|
+
})
|
335
|
+
})), _jsxs(Table.Body, {
|
336
|
+
children: [_jsx(CustomTableRow, {}), _Table$Row3 || (_Table$Row3 = _jsxs(Table.Row, {
|
337
|
+
children: [_jsx(Table.RowHeader, {
|
338
|
+
children: "RowHeader"
|
339
|
+
}), _jsx(Table.Cell, {
|
340
|
+
children: "Cell"
|
341
|
+
}), _jsx(Table.Cell, {
|
342
|
+
children: "Cell2"
|
343
|
+
})]
|
344
|
+
}))]
|
345
|
+
})]
|
346
|
+
}));
|
252
347
|
const stackedTable = screen.getByRole('table');
|
253
348
|
expect(stackedTable).toBeInTheDocument();
|
254
349
|
const container = table.container;
|
@@ -257,27 +352,49 @@ describe('<Table />', async () => {
|
|
257
352
|
expect(container).toHaveTextContent('9.3');
|
258
353
|
});
|
259
354
|
it('should render fully custom components', () => {
|
260
|
-
class CustomTableCell extends
|
355
|
+
class CustomTableCell extends Component {
|
261
356
|
render() {
|
262
|
-
return
|
357
|
+
return _jsx("td", {
|
358
|
+
children: this.props.children
|
359
|
+
});
|
263
360
|
}
|
264
361
|
}
|
265
362
|
CustomTableCell.displayName = "CustomTableCell";
|
266
|
-
class CustomTableRow extends
|
363
|
+
class CustomTableRow extends Component {
|
267
364
|
render() {
|
268
|
-
return
|
365
|
+
return _jsx("tr", {
|
366
|
+
children: this.props.children
|
367
|
+
});
|
269
368
|
}
|
270
369
|
}
|
271
370
|
CustomTableRow.displayName = "CustomTableRow";
|
272
|
-
const table = render(
|
273
|
-
caption: "Test custom table"
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
371
|
+
const table = render(_jsxs(Table, {
|
372
|
+
caption: "Test custom table",
|
373
|
+
children: [_jsx(Table.Head, {
|
374
|
+
children: _jsxs(CustomTableRow, {
|
375
|
+
children: [_jsx(CustomTableCell, {
|
376
|
+
id: "foo",
|
377
|
+
children: "ColHeader"
|
378
|
+
}), _jsx(CustomTableCell, {
|
379
|
+
id: "bar",
|
380
|
+
children: "Bar-header"
|
381
|
+
}), _Table$ColHeader || (_Table$ColHeader = _jsx(Table.ColHeader, {
|
382
|
+
id: "baz",
|
383
|
+
children: "Bar-header"
|
384
|
+
}))]
|
385
|
+
})
|
386
|
+
}), _jsx(Table.Body, {
|
387
|
+
children: _jsxs(CustomTableRow, {
|
388
|
+
children: [_Table$RowHeader2 || (_Table$RowHeader2 = _jsx(Table.RowHeader, {
|
389
|
+
children: "RowHeader2"
|
390
|
+
})), _jsx(CustomTableCell, {
|
391
|
+
children: "Cell"
|
392
|
+
}), _Table$Cell2 || (_Table$Cell2 = _jsx(Table.Cell, {
|
393
|
+
children: "Cell2"
|
394
|
+
}))]
|
395
|
+
})
|
396
|
+
})]
|
397
|
+
}));
|
281
398
|
const stackedTable = screen.getByRole('table');
|
282
399
|
expect(stackedTable).toBeInTheDocument();
|
283
400
|
const container = table.container;
|
package/es/Table/index.js
CHANGED
@@ -24,12 +24,11 @@ var _dec, _class, _Table;
|
|
24
24
|
* SOFTWARE.
|
25
25
|
*/
|
26
26
|
|
27
|
-
/** @jsx jsx */
|
28
27
|
import { Component, Children, isValidElement } from 'react';
|
29
28
|
import { safeCloneElement, omitProps } from '@instructure/ui-react-utils';
|
30
29
|
import { View } from '@instructure/ui-view';
|
31
30
|
import { ScreenReaderContent } from '@instructure/ui-a11y-content';
|
32
|
-
import { withStyle
|
31
|
+
import { withStyle } from '@instructure/emotion';
|
33
32
|
import generateStyle from './styles';
|
34
33
|
import generateComponentTheme from './theme';
|
35
34
|
import { Head } from './Head';
|
@@ -46,6 +45,7 @@ import TableContext from './TableContext';
|
|
46
45
|
category: components
|
47
46
|
---
|
48
47
|
**/
|
48
|
+
import { jsx as _jsx, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
|
49
49
|
let Table = (_dec = withStyle(generateStyle, generateComponentTheme), _dec(_class = (_Table = class Table extends Component {
|
50
50
|
constructor(...args) {
|
51
51
|
super(...args);
|
@@ -90,27 +90,34 @@ let Table = (_dec = withStyle(generateStyle, generateComponentTheme), _dec(_clas
|
|
90
90
|
styles = _this$props3.styles;
|
91
91
|
const isStacked = layout === 'stacked';
|
92
92
|
const headers = isStacked ? this.getHeaders() : void 0;
|
93
|
-
return
|
93
|
+
return _jsx(TableContext.Provider, {
|
94
94
|
value: {
|
95
95
|
isStacked: isStacked,
|
96
96
|
hover: hover,
|
97
97
|
headers: headers
|
98
|
-
}
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
98
|
+
},
|
99
|
+
children: _jsxs(View, {
|
100
|
+
...View.omitViewProps(omitProps(this.props, Table.allowedProps), Table),
|
101
|
+
as: isStacked ? 'div' : 'table',
|
102
|
+
margin: margin,
|
103
|
+
elementRef: this.handleRef,
|
104
|
+
css: styles === null || styles === void 0 ? void 0 : styles.table,
|
105
|
+
role: isStacked ? 'table' : void 0,
|
106
|
+
"aria-label": isStacked ? caption : void 0,
|
107
|
+
children: [!isStacked && _jsx("caption", {
|
108
|
+
children: _jsx(ScreenReaderContent, {
|
109
|
+
children: caption
|
110
|
+
})
|
111
|
+
}), Children.map(children, child => {
|
112
|
+
if (/*#__PURE__*/isValidElement(child)) {
|
113
|
+
return safeCloneElement(child, {
|
114
|
+
key: child.props.name
|
115
|
+
});
|
116
|
+
}
|
117
|
+
return child;
|
118
|
+
})]
|
119
|
+
})
|
120
|
+
});
|
114
121
|
}
|
115
122
|
}, _Table.displayName = "Table", _Table.componentId = 'Table', _Table.allowedProps = allowedProps, _Table.propTypes = propTypes, _Table.defaultProps = {
|
116
123
|
children: null,
|
package/lib/Table/Body/index.js
CHANGED
@@ -14,6 +14,7 @@ var _styles = _interopRequireDefault(require("./styles"));
|
|
14
14
|
var _theme = _interopRequireDefault(require("./theme"));
|
15
15
|
var _props = require("./props");
|
16
16
|
var _TableContext = _interopRequireDefault(require("../TableContext"));
|
17
|
+
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
17
18
|
var _dec, _class, _Body;
|
18
19
|
/*
|
19
20
|
* The MIT License (MIT)
|
@@ -38,7 +39,6 @@ var _dec, _class, _Body;
|
|
38
39
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
39
40
|
* SOFTWARE.
|
40
41
|
*/
|
41
|
-
/** @jsx jsx */
|
42
42
|
/**
|
43
43
|
---
|
44
44
|
parent: Table
|
@@ -62,27 +62,29 @@ let Body = exports.Body = (_dec = (0, _emotion.withStyle)(_styles.default, _them
|
|
62
62
|
isStacked = _this$context.isStacked,
|
63
63
|
hover = _this$context.hover,
|
64
64
|
headers = _this$context.headers;
|
65
|
-
return (0,
|
65
|
+
return (0, _jsxRuntime.jsx)(_View.View, {
|
66
|
+
..._View.View.omitViewProps((0, _omitProps.omitProps)(this.props, Body.allowedProps), Body),
|
66
67
|
as: isStacked ? 'div' : 'tbody',
|
67
68
|
css: styles === null || styles === void 0 ? void 0 : styles.body,
|
68
|
-
role: isStacked ? 'rowgroup' : void 0
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
69
|
+
role: isStacked ? 'rowgroup' : void 0,
|
70
|
+
children: _react.Children.map(children, child => {
|
71
|
+
if (/*#__PURE__*/(0, _react.isValidElement)(child)) {
|
72
|
+
return (0, _safeCloneElement.safeCloneElement)(child, {
|
73
|
+
key: child.props.name,
|
74
|
+
// Sent down for compatibility with custom components
|
75
|
+
// TODO DEPRECATED, remove in v11
|
76
|
+
hover,
|
77
|
+
// Sent down for compatibility with custom components
|
78
|
+
// TODO DEPRECATED, remove in v11
|
79
|
+
isStacked,
|
80
|
+
// Sent down for compatibility with custom components
|
81
|
+
// TODO DEPRECATED, remove in v11
|
82
|
+
headers
|
83
|
+
});
|
84
|
+
}
|
85
|
+
return child;
|
86
|
+
})
|
87
|
+
});
|
86
88
|
}
|
87
89
|
}, _Body.displayName = "Body", _Body.componentId = 'Table.Body', _Body.contextType = _TableContext.default, _Body.allowedProps = _props.allowedProps, _Body.propTypes = _props.propTypes, _Body.defaultProps = {
|
88
90
|
children: null
|
package/lib/Table/Cell/index.js
CHANGED
@@ -14,6 +14,7 @@ var _styles = _interopRequireDefault(require("./styles"));
|
|
14
14
|
var _theme = _interopRequireDefault(require("./theme"));
|
15
15
|
var _props = require("./props");
|
16
16
|
var _TableContext = _interopRequireDefault(require("../TableContext"));
|
17
|
+
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
17
18
|
var _dec, _class, _Cell;
|
18
19
|
/*
|
19
20
|
* The MIT License (MIT)
|
@@ -38,7 +39,6 @@ var _dec, _class, _Cell;
|
|
38
39
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
39
40
|
* SOFTWARE.
|
40
41
|
*/
|
41
|
-
/** @jsx jsx */
|
42
42
|
/**
|
43
43
|
---
|
44
44
|
parent: Table
|
@@ -60,11 +60,13 @@ let Cell = exports.Cell = (_dec = (0, _emotion.withStyle)(_styles.default, _them
|
|
60
60
|
styles = _this$props3.styles,
|
61
61
|
header = _this$props3.header;
|
62
62
|
const isStacked = this.context.isStacked;
|
63
|
-
return (0,
|
63
|
+
return (0, _jsxRuntime.jsxs)(_View.View, {
|
64
|
+
..._View.View.omitViewProps((0, _omitProps.omitProps)(this.props, Cell.allowedProps), Cell),
|
64
65
|
as: isStacked ? 'div' : 'td',
|
65
66
|
css: styles === null || styles === void 0 ? void 0 : styles.cell,
|
66
|
-
role: isStacked ? 'cell' : void 0
|
67
|
-
|
67
|
+
role: isStacked ? 'cell' : void 0,
|
68
|
+
children: [header && (0, _callRenderProp.callRenderProp)(header), header && ': ', (0, _callRenderProp.callRenderProp)(children)]
|
69
|
+
});
|
68
70
|
}
|
69
71
|
}, _Cell.displayName = "Cell", _Cell.componentId = 'Table.Cell', _Cell.contextType = _TableContext.default, _Cell.allowedProps = _props.allowedProps, _Cell.propTypes = _props.propTypes, _Cell.defaultProps = {
|
70
72
|
textAlign: 'start',
|
@@ -1,12 +1,11 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
4
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
6
5
|
value: true
|
7
6
|
});
|
8
7
|
exports.default = exports.ColHeader = void 0;
|
9
|
-
var _react =
|
8
|
+
var _react = require("react");
|
10
9
|
var _omitProps = require("@instructure/ui-react-utils/lib/omitProps.js");
|
11
10
|
var _callRenderProp = require("@instructure/ui-react-utils/lib/callRenderProp.js");
|
12
11
|
var _IconMiniArrowUpLine = require("@instructure/ui-icons/lib/IconMiniArrowUpLine.js");
|
@@ -16,6 +15,7 @@ var _emotion = require("@instructure/emotion");
|
|
16
15
|
var _styles = _interopRequireDefault(require("./styles"));
|
17
16
|
var _theme = _interopRequireDefault(require("./theme"));
|
18
17
|
var _props = require("./props");
|
18
|
+
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
19
19
|
var _dec, _class, _ColHeader;
|
20
20
|
/*
|
21
21
|
* The MIT License (MIT)
|
@@ -40,7 +40,6 @@ var _dec, _class, _ColHeader;
|
|
40
40
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
41
41
|
* SOFTWARE.
|
42
42
|
*/
|
43
|
-
/** @jsx jsx */
|
44
43
|
/**
|
45
44
|
---
|
46
45
|
parent: Table
|
@@ -73,17 +72,17 @@ let ColHeader = exports.ColHeader = (_dec = (0, _emotion.withStyle)(_styles.defa
|
|
73
72
|
onRequestSort = _this$props4.onRequestSort,
|
74
73
|
styles = _this$props4.styles;
|
75
74
|
if (sortDirection === 'ascending') {
|
76
|
-
return (0,
|
75
|
+
return (0, _jsxRuntime.jsx)(_IconMiniArrowUpLine.IconMiniArrowUpLine, {
|
77
76
|
css: styles === null || styles === void 0 ? void 0 : styles.sortedIconColor
|
78
77
|
});
|
79
78
|
}
|
80
79
|
if (sortDirection === 'descending') {
|
81
|
-
return (0,
|
80
|
+
return (0, _jsxRuntime.jsx)(_IconMiniArrowDownLine.IconMiniArrowDownLine, {
|
82
81
|
css: styles === null || styles === void 0 ? void 0 : styles.sortedIconColor
|
83
82
|
});
|
84
83
|
}
|
85
84
|
if (onRequestSort) {
|
86
|
-
return (0,
|
85
|
+
return (0, _jsxRuntime.jsx)(_IconMiniArrowDoubleLine.IconMiniArrowDoubleLine, {
|
87
86
|
css: styles === null || styles === void 0 ? void 0 : styles.unSortedIconColor
|
88
87
|
});
|
89
88
|
}
|
@@ -97,19 +96,23 @@ let ColHeader = exports.ColHeader = (_dec = (0, _emotion.withStyle)(_styles.defa
|
|
97
96
|
sortDirection = _this$props5.sortDirection,
|
98
97
|
scope = _this$props5.scope,
|
99
98
|
styles = _this$props5.styles;
|
100
|
-
return (0,
|
99
|
+
return (0, _jsxRuntime.jsxs)("th", {
|
100
|
+
...(0, _omitProps.omitProps)(this.props, ColHeader.allowedProps),
|
101
101
|
css: styles === null || styles === void 0 ? void 0 : styles.colHeader,
|
102
102
|
style: {
|
103
103
|
width
|
104
104
|
},
|
105
105
|
scope: scope,
|
106
|
-
"aria-sort": sortDirection
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
106
|
+
"aria-sort": sortDirection,
|
107
|
+
children: [onRequestSort && (0, _jsxRuntime.jsx)("button", {
|
108
|
+
onClick: this.handleClick,
|
109
|
+
css: styles === null || styles === void 0 ? void 0 : styles.button,
|
110
|
+
children: (0, _jsxRuntime.jsxs)("div", {
|
111
|
+
css: styles === null || styles === void 0 ? void 0 : styles.buttonContent,
|
112
|
+
children: [(0, _callRenderProp.callRenderProp)(children), this.renderSortArrow()]
|
113
|
+
})
|
114
|
+
}), !onRequestSort && children, !onRequestSort && this.renderSortArrow()]
|
115
|
+
});
|
113
116
|
}
|
114
117
|
}, _ColHeader.displayName = "ColHeader", _ColHeader.componentId = 'Table.ColHeader', _ColHeader.allowedProps = _props.allowedProps, _ColHeader.propTypes = _props.propTypes, _ColHeader.defaultProps = {
|
115
118
|
textAlign: 'start',
|
package/lib/Table/Head/index.js
CHANGED
@@ -18,6 +18,7 @@ var _styles = _interopRequireDefault(require("./styles"));
|
|
18
18
|
var _theme = _interopRequireDefault(require("./theme"));
|
19
19
|
var _props = require("./props");
|
20
20
|
var _TableContext = _interopRequireDefault(require("../TableContext"));
|
21
|
+
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
21
22
|
var _dec, _class, _Head, _ScreenReaderContent;
|
22
23
|
/*
|
23
24
|
* The MIT License (MIT)
|
@@ -42,7 +43,6 @@ var _dec, _class, _Head, _ScreenReaderContent;
|
|
42
43
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
43
44
|
* SOFTWARE.
|
44
45
|
*/
|
45
|
-
/** @jsx jsx */
|
46
46
|
/**
|
47
47
|
---
|
48
48
|
parent: Table
|
@@ -133,31 +133,35 @@ let Head = exports.Head = (_dec = (0, _emotion.withStyle)(_styles.default, _them
|
|
133
133
|
});
|
134
134
|
}
|
135
135
|
};
|
136
|
-
return (0,
|
137
|
-
role: "rowgroup"
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
136
|
+
return (0, _jsxRuntime.jsx)("div", {
|
137
|
+
role: "rowgroup",
|
138
|
+
children: (0, _jsxRuntime.jsx)("div", {
|
139
|
+
role: "row",
|
140
|
+
children: (0, _jsxRuntime.jsx)("div", {
|
141
|
+
role: "cell",
|
142
|
+
"aria-colspan": count,
|
143
|
+
children: (0, _jsxRuntime.jsx)(_SimpleSelect.SimpleSelect, {
|
144
|
+
renderLabel: renderSortLabel ? (0, _callRenderProp.callRenderProp)(renderSortLabel) : _ScreenReaderContent || (_ScreenReaderContent = (0, _jsxRuntime.jsx)(_ScreenReaderContent2.ScreenReaderContent, {})),
|
145
|
+
renderBeforeInput: selectedOption && _IconCheckLine.IconCheckLine,
|
146
|
+
value: selectedOption,
|
147
|
+
onChange: handleSelect,
|
148
|
+
children: options.map(({
|
149
|
+
id,
|
150
|
+
label
|
151
|
+
}) => (0, _jsxRuntime.jsx)(_SimpleSelect.SimpleSelect.Option, {
|
152
|
+
id: id,
|
153
|
+
value: id,
|
154
|
+
renderBeforeLabel: id === selectedOption ? _IconCheckLine.IconCheckLine : () => (0, _jsxRuntime.jsx)(_IconCheckLine.IconCheckLine, {
|
155
|
+
style: {
|
156
|
+
color: 'transparent'
|
157
|
+
}
|
158
|
+
}),
|
159
|
+
children: label
|
160
|
+
}, id))
|
161
|
+
})
|
162
|
+
})
|
159
163
|
})
|
160
|
-
}
|
164
|
+
});
|
161
165
|
}
|
162
166
|
render() {
|
163
167
|
const _this$props4 = this.props,
|
@@ -165,9 +169,11 @@ let Head = exports.Head = (_dec = (0, _emotion.withStyle)(_styles.default, _them
|
|
165
169
|
styles = _this$props4.styles;
|
166
170
|
return this.context.isStacked ? this.renderSelect() :
|
167
171
|
// TODO remove 'hover' exclude in v11, its passed down for compatibility with custom components
|
168
|
-
(0,
|
169
|
-
|
170
|
-
|
172
|
+
(0, _jsxRuntime.jsx)("thead", {
|
173
|
+
...(0, _omitProps.omitProps)(this.props, Head.allowedProps, ['hover']),
|
174
|
+
css: styles === null || styles === void 0 ? void 0 : styles.head,
|
175
|
+
children: children
|
176
|
+
});
|
171
177
|
}
|
172
178
|
}, _Head.displayName = "Head", _Head.componentId = 'Table.Head', _Head.contextType = _TableContext.default, _Head.allowedProps = _props.allowedProps, _Head.propTypes = _props.propTypes, _Head.defaultProps = {
|
173
179
|
children: null
|