playbook_ui 14.7.0.pre.rc.16 → 14.7.0.pre.rc.17
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.
- checksums.yaml +4 -4
- data/app/pb_kits/playbook/pb_advanced_table/Components/CustomCell.tsx +8 -1
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +21 -28
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table.test.jsx +37 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_custom_cell.jsx +13 -2
- data/dist/chunks/_weekday_stacked-B4YQ6Z-d.js +45 -0
- data/dist/chunks/vendor.js +1 -1
- data/dist/playbook-doc.js +1 -1
- data/lib/playbook/version.rb +1 -1
- metadata +2 -2
- data/dist/chunks/_weekday_stacked-BygKGkw1.js +0 -45
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c2072d24d3604697c8b8201173a1b3fe1384f8acdcc7fffd52442d302f5e2f38
|
|
4
|
+
data.tar.gz: 9766561957de9ca49b03df0e3cb54d11c9e2350e95031b8a732779e8acf908bf
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8eb6bf2917756b803c3d70ef69a353b9a4e5d900a2f43d5bb6fac6e6e5319e43b0687b409ab35257f7ab38e7f01bd98269650f954cd1f0cf887478899752baa9
|
|
7
|
+
data.tar.gz: 38e59e257ba51802810b8fa7164586d9b8e1e68092ce52c894240b5fb8726712dce06bd1b46524e7a1e5cd8aeefa08cddf3d1ef55b7da8ef357edd156f8b3f43
|
|
@@ -16,6 +16,7 @@ interface CustomCellProps {
|
|
|
16
16
|
onRowToggleClick?: (arg: Row<GenericObject>) => void
|
|
17
17
|
row: Row<GenericObject>
|
|
18
18
|
value?: string
|
|
19
|
+
customRenderer?: (row: Row<GenericObject>, value: string | undefined) => React.ReactNode
|
|
19
20
|
}
|
|
20
21
|
|
|
21
22
|
export const CustomCell = ({
|
|
@@ -23,6 +24,7 @@ export const CustomCell = ({
|
|
|
23
24
|
onRowToggleClick,
|
|
24
25
|
row,
|
|
25
26
|
value,
|
|
27
|
+
customRenderer,
|
|
26
28
|
}: CustomCellProps & GlobalProps) => {
|
|
27
29
|
const { setExpanded, expanded, expandedControl, inlineRowLoading } = useContext(AdvancedTableContext);
|
|
28
30
|
|
|
@@ -61,7 +63,12 @@ export const CustomCell = ({
|
|
|
61
63
|
</button>
|
|
62
64
|
) : null}
|
|
63
65
|
<FlexItem paddingLeft={renderButton? "none" : "xs"}>
|
|
64
|
-
{row.depth === 0 ?
|
|
66
|
+
{row.depth === 0 ? (
|
|
67
|
+
customRenderer ? customRenderer(row, getValue()) : getValue()
|
|
68
|
+
) :(
|
|
69
|
+
customRenderer ? customRenderer(row, value) : value
|
|
70
|
+
)
|
|
71
|
+
}
|
|
65
72
|
</FlexItem>
|
|
66
73
|
</Flex>
|
|
67
74
|
</div>
|
|
@@ -90,8 +90,8 @@ const AdvancedTable = (props: AdvancedTableProps) => {
|
|
|
90
90
|
|
|
91
91
|
const columnHelper = createColumnHelper()
|
|
92
92
|
|
|
93
|
-
//Create cells for first
|
|
94
|
-
const createCellFunction = (cellAccessors: string[], customRenderer?: (row: Row<GenericObject>, value: any) => JSX.Element) => {
|
|
93
|
+
//Create cells for columns, with customization for first column
|
|
94
|
+
const createCellFunction = (cellAccessors: string[], customRenderer?: (row: Row<GenericObject>, value: any) => JSX.Element, index?: number) => {
|
|
95
95
|
const columnCells = ({
|
|
96
96
|
row,
|
|
97
97
|
getValue,
|
|
@@ -101,19 +101,16 @@ const AdvancedTable = (props: AdvancedTableProps) => {
|
|
|
101
101
|
}) => {
|
|
102
102
|
const rowData = row.original
|
|
103
103
|
|
|
104
|
-
|
|
105
|
-
if (customRenderer) {
|
|
106
|
-
return customRenderer(row, getValue())
|
|
107
|
-
}
|
|
108
|
-
|
|
104
|
+
if (index === 0) {
|
|
109
105
|
switch (row.depth) {
|
|
110
106
|
case 0: {
|
|
111
107
|
return (
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
108
|
+
<CustomCell
|
|
109
|
+
customRenderer={customRenderer}
|
|
110
|
+
getValue={getValue}
|
|
111
|
+
onRowToggleClick={onRowToggleClick}
|
|
112
|
+
row={row}
|
|
113
|
+
/>
|
|
117
114
|
)
|
|
118
115
|
}
|
|
119
116
|
default: {
|
|
@@ -122,6 +119,7 @@ const AdvancedTable = (props: AdvancedTableProps) => {
|
|
|
122
119
|
const accessorValue = rowData[depthAccessor]
|
|
123
120
|
return accessorValue ? (
|
|
124
121
|
<CustomCell
|
|
122
|
+
customRenderer={customRenderer}
|
|
125
123
|
onRowToggleClick={onRowToggleClick}
|
|
126
124
|
row={row}
|
|
127
125
|
value={accessorValue}
|
|
@@ -132,11 +130,13 @@ const AdvancedTable = (props: AdvancedTableProps) => {
|
|
|
132
130
|
}
|
|
133
131
|
}
|
|
134
132
|
}
|
|
135
|
-
|
|
133
|
+
return customRenderer
|
|
134
|
+
? customRenderer(row, getValue())
|
|
135
|
+
: getValue()
|
|
136
|
+
}
|
|
136
137
|
return columnCells
|
|
137
138
|
}
|
|
138
|
-
|
|
139
|
-
//Create column array in format needed by Tanstack
|
|
139
|
+
//Create column array in format needed by Tanstack
|
|
140
140
|
const columns =
|
|
141
141
|
columnDefinitions &&
|
|
142
142
|
columnDefinitions.map((column, index) => {
|
|
@@ -147,19 +147,12 @@ const AdvancedTable = (props: AdvancedTableProps) => {
|
|
|
147
147
|
}),
|
|
148
148
|
}
|
|
149
149
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
)
|
|
157
|
-
}
|
|
158
|
-
} else {
|
|
159
|
-
// For the first column, apply createCellFunction without customRenderer
|
|
160
|
-
if (column.cellAccessors) {
|
|
161
|
-
columnStructure.cell = createCellFunction(column.cellAccessors)
|
|
162
|
-
}
|
|
150
|
+
if (column.cellAccessors || column.customRenderer) {
|
|
151
|
+
columnStructure.cell = createCellFunction(
|
|
152
|
+
column.cellAccessors,
|
|
153
|
+
column.customRenderer,
|
|
154
|
+
index
|
|
155
|
+
)
|
|
163
156
|
}
|
|
164
157
|
|
|
165
158
|
return columnStructure
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, {useState} from "react"
|
|
2
2
|
import { render, screen, waitFor } from "../utilities/test-utils"
|
|
3
3
|
|
|
4
|
-
import { AdvancedTable } from "playbook-ui"
|
|
4
|
+
import { AdvancedTable, Pill } from "playbook-ui"
|
|
5
5
|
|
|
6
6
|
const MOCK_DATA = [
|
|
7
7
|
{
|
|
@@ -88,6 +88,28 @@ const columnDefinitions = [
|
|
|
88
88
|
},
|
|
89
89
|
]
|
|
90
90
|
|
|
91
|
+
const columnDefinitionsCustomRenderer = [
|
|
92
|
+
{
|
|
93
|
+
accessor: "year",
|
|
94
|
+
label: "Year",
|
|
95
|
+
cellAccessors: ["quarter", "month", "day"],
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
accessor: "newEnrollments",
|
|
99
|
+
label: "New Enrollments",
|
|
100
|
+
customRenderer: (row, value) => (
|
|
101
|
+
<Pill text={value}
|
|
102
|
+
variant="success"
|
|
103
|
+
/>
|
|
104
|
+
),
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
accessor: "scheduledMeetings",
|
|
108
|
+
label: "Scheduled Meetings",
|
|
109
|
+
},
|
|
110
|
+
]
|
|
111
|
+
|
|
112
|
+
|
|
91
113
|
const subRowHeaders = ["Quarter"]
|
|
92
114
|
|
|
93
115
|
const testId = "advanced_table"
|
|
@@ -463,3 +485,17 @@ test("responsive none prop functions as expected", () => {
|
|
|
463
485
|
const kit = screen.getByTestId(testId)
|
|
464
486
|
expect(kit).toHaveClass("pb_advanced_table table-responsive-none")
|
|
465
487
|
})
|
|
488
|
+
|
|
489
|
+
test("customRenderer prop functions as expected", () => {
|
|
490
|
+
render(
|
|
491
|
+
<AdvancedTable
|
|
492
|
+
columnDefinitions={columnDefinitionsCustomRenderer}
|
|
493
|
+
data={{ testid: testId }}
|
|
494
|
+
tableData={MOCK_DATA}
|
|
495
|
+
/>
|
|
496
|
+
)
|
|
497
|
+
|
|
498
|
+
const kit = screen.getByTestId(testId)
|
|
499
|
+
const pill = kit.querySelector(".pb_pill_kit_success_lowercase")
|
|
500
|
+
expect(pill).toBeInTheDocument()
|
|
501
|
+
})
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react"
|
|
2
|
-
import { AdvancedTable, Pill, Body, Flex, Detail, Caption } from "playbook-ui"
|
|
2
|
+
import { AdvancedTable, Pill, Body, Flex, Detail, Caption, Badge, Title } from "playbook-ui"
|
|
3
3
|
import MOCK_DATA from "./advanced_table_mock_data.json"
|
|
4
4
|
|
|
5
5
|
const AdvancedTableCustomCell = (props) => {
|
|
@@ -8,7 +8,18 @@ const AdvancedTableCustomCell = (props) => {
|
|
|
8
8
|
accessor: "year",
|
|
9
9
|
label: "Year",
|
|
10
10
|
cellAccessors: ["quarter", "month", "day"],
|
|
11
|
-
|
|
11
|
+
customRenderer: (row, value) => (
|
|
12
|
+
<Flex>
|
|
13
|
+
<Title size={4}
|
|
14
|
+
text={value}
|
|
15
|
+
/>
|
|
16
|
+
<Badge dark
|
|
17
|
+
marginLeft="xxs"
|
|
18
|
+
text={row.original.newEnrollments > 20 ? "High" : "Low"}
|
|
19
|
+
variant="neutral"
|
|
20
|
+
/>
|
|
21
|
+
</Flex>
|
|
22
|
+
),
|
|
12
23
|
},
|
|
13
24
|
{
|
|
14
25
|
accessor: "newEnrollments",
|