playbook_ui 14.11.1.pre.alpha.PBNTR768stickyrightcolumn5431 → 14.11.1.pre.alpha.PBNTR7495495
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 +18 -2
- data/app/pb_kits/playbook/pb_advanced_table/Components/TableHeaderCell.tsx +27 -5
- data/app/pb_kits/playbook/pb_advanced_table/SubKits/TableBody.tsx +17 -2
- data/app/pb_kits/playbook/pb_advanced_table/SubKits/TableHeader.tsx +23 -1
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +29 -0
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +61 -4
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_no_subrows.jsx +50 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_pagination.jsx +1 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_pagination_with_props.jsx +1 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows.jsx +60 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows.md +5 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_actions.jsx +78 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_actions.md +1 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_header.jsx +53 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_header.md +1 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_no_subrows.jsx +52 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_no_subrows.md +1 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/advanced_table_mock_data_no_subrows.json +42 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/advanced_table_mock_data_with_id.json +299 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +5 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +6 -1
- data/app/pb_kits/playbook/pb_button/button.html.erb +2 -3
- data/app/pb_kits/playbook/pb_checkbox/checkbox.html.erb +1 -6
- data/app/pb_kits/playbook/pb_date_picker/date_picker.html.erb +2 -6
- data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_list_rails.html.erb +3 -9
- data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_list_rails.md +5 -0
- data/app/pb_kits/playbook/pb_dropdown/dropdown.html.erb +7 -12
- data/app/pb_kits/playbook/pb_dropdown/dropdown_container.html.erb +9 -14
- data/app/pb_kits/playbook/pb_dropdown/dropdown_option.html.erb +6 -11
- data/app/pb_kits/playbook/pb_dropdown/dropdown_trigger.html.erb +8 -14
- data/app/pb_kits/playbook/pb_list/item.html.erb +30 -8
- data/app/pb_kits/playbook/pb_list/item.rb +7 -0
- data/app/pb_kits/playbook/pb_list/list.html.erb +31 -11
- data/app/pb_kits/playbook/pb_list/list.rb +4 -0
- data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.tsx +30 -12
- data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_format.html.erb +15 -0
- data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_format.jsx +24 -0
- data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_format.md +1 -0
- data/app/pb_kits/playbook/pb_phone_number_input/docs/example.yml +3 -1
- data/app/pb_kits/playbook/pb_phone_number_input/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_phone_number_input/phone_number_input.rb +3 -0
- data/app/pb_kits/playbook/pb_phone_number_input/phone_number_input.test.js +20 -1
- data/app/pb_kits/playbook/pb_timeline/_timeline.scss +30 -30
- data/dist/chunks/_typeahead-D_mMNEad.js +36 -0
- data/dist/chunks/_weekday_stacked-CGe59pJD.js +45 -0
- data/dist/chunks/vendor.js +1 -1
- data/dist/playbook-doc.js +1 -1
- data/dist/playbook-rails-react-bindings.js +1 -1
- data/dist/playbook-rails.js +1 -1
- data/dist/playbook.css +1 -1
- data/lib/playbook/version.rb +1 -1
- metadata +19 -4
- data/dist/chunks/_typeahead-DCD3NrAk.js +0 -36
- data/dist/chunks/_weekday_stacked-aUbMqVRj.js +0 -45
@@ -0,0 +1,78 @@
|
|
1
|
+
import React, {useState} from "react"
|
2
|
+
import { AdvancedTable, CircleIconButton, Flex } from "playbook-ui"
|
3
|
+
import MOCK_DATA from "./advanced_table_mock_data_no_subrows.json"
|
4
|
+
|
5
|
+
const AdvancedTableSelectableRowsActions = (props) => {
|
6
|
+
const columnDefinitions = [
|
7
|
+
{
|
8
|
+
accessor: "year",
|
9
|
+
label: "Year",
|
10
|
+
cellAccessors: ["quarter", "month", "day"],
|
11
|
+
},
|
12
|
+
{
|
13
|
+
accessor: "newEnrollments",
|
14
|
+
label: "New Enrollments",
|
15
|
+
},
|
16
|
+
{
|
17
|
+
accessor: "scheduledMeetings",
|
18
|
+
label: "Scheduled Meetings",
|
19
|
+
},
|
20
|
+
{
|
21
|
+
accessor: "attendanceRate",
|
22
|
+
label: "Attendance Rate",
|
23
|
+
},
|
24
|
+
{
|
25
|
+
accessor: "completedClasses",
|
26
|
+
label: "Completed Classes",
|
27
|
+
},
|
28
|
+
{
|
29
|
+
accessor: "classCompletionRate",
|
30
|
+
label: "Class Completion Rate",
|
31
|
+
},
|
32
|
+
{
|
33
|
+
accessor: "graduatedStudents",
|
34
|
+
label: "Graduated Students",
|
35
|
+
},
|
36
|
+
]
|
37
|
+
|
38
|
+
const [selectedRows, setSelectedRows] = useState()
|
39
|
+
|
40
|
+
const CustomActions = () => {
|
41
|
+
const rowIds = selectedRows ? Object.keys(selectedRows) : [];
|
42
|
+
|
43
|
+
return (
|
44
|
+
<Flex>
|
45
|
+
<CircleIconButton
|
46
|
+
icon="file-csv"
|
47
|
+
onClick={() =>
|
48
|
+
alert(rowIds.length === 0 ? "No Selection Made" : `Row ids ${rowIds.join(", ")} will be exported!`)
|
49
|
+
}
|
50
|
+
variant="link"
|
51
|
+
/>
|
52
|
+
<CircleIconButton
|
53
|
+
icon="trash-alt"
|
54
|
+
onClick={() =>
|
55
|
+
alert(rowIds.length === 0 ? "No Selection Made" : `Row ids ${rowIds.join(", ")} will be deleted!`)
|
56
|
+
}
|
57
|
+
variant="link"
|
58
|
+
/>
|
59
|
+
</Flex>
|
60
|
+
);
|
61
|
+
};
|
62
|
+
|
63
|
+
|
64
|
+
return (
|
65
|
+
<div>
|
66
|
+
<AdvancedTable
|
67
|
+
actions={<CustomActions/>}
|
68
|
+
columnDefinitions={columnDefinitions}
|
69
|
+
onRowSelectionChange={(selected) => setSelectedRows(selected)}
|
70
|
+
selectableRows
|
71
|
+
tableData={MOCK_DATA}
|
72
|
+
{...props}
|
73
|
+
/>
|
74
|
+
</div>
|
75
|
+
)
|
76
|
+
}
|
77
|
+
|
78
|
+
export default AdvancedTableSelectableRowsActions
|
@@ -0,0 +1 @@
|
|
1
|
+
Custom actions content can be rendered within the Actions Bar as shown in this doc example. The component passed to `actions` will be rendered on the right of the actionsBar. The `onRowSelectionChange` can then be used to attach the needed click events to those actions.
|
@@ -0,0 +1,53 @@
|
|
1
|
+
import React from "react"
|
2
|
+
import { AdvancedTable } from "playbook-ui"
|
3
|
+
import MOCK_DATA from "./advanced_table_mock_data_no_subrows.json"
|
4
|
+
|
5
|
+
const AdvancedTableSelectableRowsHeader = (props) => {
|
6
|
+
const columnDefinitions = [
|
7
|
+
{
|
8
|
+
accessor: "year",
|
9
|
+
label: "Year",
|
10
|
+
cellAccessors: ["quarter", "month", "day"],
|
11
|
+
},
|
12
|
+
{
|
13
|
+
accessor: "newEnrollments",
|
14
|
+
label: "New Enrollments",
|
15
|
+
},
|
16
|
+
{
|
17
|
+
accessor: "scheduledMeetings",
|
18
|
+
label: "Scheduled Meetings",
|
19
|
+
},
|
20
|
+
{
|
21
|
+
accessor: "attendanceRate",
|
22
|
+
label: "Attendance Rate",
|
23
|
+
},
|
24
|
+
{
|
25
|
+
accessor: "completedClasses",
|
26
|
+
label: "Completed Classes",
|
27
|
+
},
|
28
|
+
{
|
29
|
+
accessor: "classCompletionRate",
|
30
|
+
label: "Class Completion Rate",
|
31
|
+
},
|
32
|
+
{
|
33
|
+
accessor: "graduatedStudents",
|
34
|
+
label: "Graduated Students",
|
35
|
+
},
|
36
|
+
]
|
37
|
+
|
38
|
+
|
39
|
+
return (
|
40
|
+
<div>
|
41
|
+
<AdvancedTable
|
42
|
+
columnDefinitions={columnDefinitions}
|
43
|
+
onRowSelectionChange={(selectedRows) => console.log(selectedRows)}
|
44
|
+
selectableRows
|
45
|
+
showActionsBar={false}
|
46
|
+
tableData={MOCK_DATA}
|
47
|
+
{...props}
|
48
|
+
/>
|
49
|
+
</div>
|
50
|
+
)
|
51
|
+
}
|
52
|
+
|
53
|
+
export default AdvancedTableSelectableRowsHeader
|
@@ -0,0 +1 @@
|
|
1
|
+
`showActionsBar` is an optional prop that renders the header at the top showing the row count. This is set to `true` by default but can be toggled off by setting it to `false`
|
data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_no_subrows.jsx
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
import React from "react"
|
2
|
+
import { AdvancedTable } from "playbook-ui"
|
3
|
+
import MOCK_DATA from "./advanced_table_mock_data_no_subrows.json"
|
4
|
+
|
5
|
+
const AdvancedTableSelectableRowsNoSubrows = (props) => {
|
6
|
+
const columnDefinitions = [
|
7
|
+
{
|
8
|
+
accessor: "year",
|
9
|
+
label: "Year",
|
10
|
+
cellAccessors: ["quarter", "month", "day"],
|
11
|
+
},
|
12
|
+
{
|
13
|
+
accessor: "newEnrollments",
|
14
|
+
label: "New Enrollments",
|
15
|
+
},
|
16
|
+
{
|
17
|
+
accessor: "scheduledMeetings",
|
18
|
+
label: "Scheduled Meetings",
|
19
|
+
},
|
20
|
+
{
|
21
|
+
accessor: "attendanceRate",
|
22
|
+
label: "Attendance Rate",
|
23
|
+
},
|
24
|
+
{
|
25
|
+
accessor: "completedClasses",
|
26
|
+
label: "Completed Classes",
|
27
|
+
},
|
28
|
+
{
|
29
|
+
accessor: "classCompletionRate",
|
30
|
+
label: "Class Completion Rate",
|
31
|
+
},
|
32
|
+
{
|
33
|
+
accessor: "graduatedStudents",
|
34
|
+
label: "Graduated Students",
|
35
|
+
},
|
36
|
+
]
|
37
|
+
|
38
|
+
|
39
|
+
return (
|
40
|
+
<div>
|
41
|
+
<AdvancedTable
|
42
|
+
columnDefinitions={columnDefinitions}
|
43
|
+
onRowSelectionChange={(selectedRows) => console.log(selectedRows)}
|
44
|
+
selectableRows
|
45
|
+
tableData={MOCK_DATA}
|
46
|
+
{...props}
|
47
|
+
/>
|
48
|
+
</div>
|
49
|
+
)
|
50
|
+
}
|
51
|
+
|
52
|
+
export default AdvancedTableSelectableRowsNoSubrows
|
data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_no_subrows.md
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
`selectableRows` can also be used with tables without nested row data.
|
@@ -0,0 +1,42 @@
|
|
1
|
+
[
|
2
|
+
{
|
3
|
+
"year": "2021",
|
4
|
+
"id": "1",
|
5
|
+
"newEnrollments": "20",
|
6
|
+
"scheduledMeetings": "10",
|
7
|
+
"attendanceRate": "51%",
|
8
|
+
"completedClasses": "3",
|
9
|
+
"classCompletionRate": "33%",
|
10
|
+
"graduatedStudents": "19"
|
11
|
+
},
|
12
|
+
{
|
13
|
+
"year": "2022",
|
14
|
+
"id": "8",
|
15
|
+
"newEnrollments": "25",
|
16
|
+
"scheduledMeetings": "17",
|
17
|
+
"attendanceRate": "75%",
|
18
|
+
"completedClasses": "5",
|
19
|
+
"classCompletionRate": "45%",
|
20
|
+
"graduatedStudents": "32"
|
21
|
+
},
|
22
|
+
{
|
23
|
+
"year": "2023",
|
24
|
+
"id": "15",
|
25
|
+
"newEnrollments": "10",
|
26
|
+
"scheduledMeetings": "15",
|
27
|
+
"attendanceRate": "65%",
|
28
|
+
"completedClasses": "4",
|
29
|
+
"classCompletionRate": "49%",
|
30
|
+
"graduatedStudents": "29"
|
31
|
+
},
|
32
|
+
{
|
33
|
+
"year": "2024",
|
34
|
+
"id": "14",
|
35
|
+
"newEnrollments": "15",
|
36
|
+
"scheduledMeetings": "34",
|
37
|
+
"attendanceRate": "32%",
|
38
|
+
"completedClasses": "6",
|
39
|
+
"classCompletionRate": "67%",
|
40
|
+
"graduatedStudents": "65"
|
41
|
+
}
|
42
|
+
]
|
@@ -0,0 +1,299 @@
|
|
1
|
+
[
|
2
|
+
{
|
3
|
+
"year": "2021",
|
4
|
+
"id": "1",
|
5
|
+
"quarter": null,
|
6
|
+
"month": null,
|
7
|
+
"day": null,
|
8
|
+
"newEnrollments": "20",
|
9
|
+
"scheduledMeetings": "10",
|
10
|
+
"attendanceRate": "51%",
|
11
|
+
"completedClasses": "3",
|
12
|
+
"classCompletionRate": "33%",
|
13
|
+
"graduatedStudents": "19",
|
14
|
+
"children": [
|
15
|
+
{
|
16
|
+
"year": "2021",
|
17
|
+
"id": "2",
|
18
|
+
"quarter": "Q1",
|
19
|
+
"month": null,
|
20
|
+
"day": null,
|
21
|
+
"newEnrollments": "2",
|
22
|
+
"scheduledMeetings": "35",
|
23
|
+
"attendanceRate": "32%",
|
24
|
+
"completedClasses": "15",
|
25
|
+
"classCompletionRate": "52%",
|
26
|
+
"graduatedStudents": "36",
|
27
|
+
"children": [
|
28
|
+
{
|
29
|
+
"year": "2021",
|
30
|
+
"id": "3",
|
31
|
+
"quarter": "Q1",
|
32
|
+
"month": "January",
|
33
|
+
"day": null,
|
34
|
+
"newEnrollments": "16",
|
35
|
+
"scheduledMeetings": "20",
|
36
|
+
"attendanceRate": "11%",
|
37
|
+
"completedClasses": "13",
|
38
|
+
"classCompletionRate": "47%",
|
39
|
+
"graduatedStudents": "28",
|
40
|
+
"children": [
|
41
|
+
{
|
42
|
+
"year": "2021",
|
43
|
+
"id": "4",
|
44
|
+
"quarter": "Q1",
|
45
|
+
"month": "January",
|
46
|
+
"day": "10",
|
47
|
+
"newEnrollments": "34",
|
48
|
+
"scheduledMeetings": "28",
|
49
|
+
"attendanceRate": "97%",
|
50
|
+
"completedClasses": "20",
|
51
|
+
"classCompletionRate": "15%",
|
52
|
+
"graduatedStudents": "17"
|
53
|
+
},
|
54
|
+
{
|
55
|
+
"year": "2021",
|
56
|
+
"id": "5",
|
57
|
+
"quarter": "Q1",
|
58
|
+
"month": "January",
|
59
|
+
"day": "20",
|
60
|
+
"newEnrollments": "43",
|
61
|
+
"scheduledMeetings": "23",
|
62
|
+
"attendanceRate": "66%",
|
63
|
+
"completedClasses": "26",
|
64
|
+
"classCompletionRate": "47%",
|
65
|
+
"graduatedStudents": "9"
|
66
|
+
}
|
67
|
+
]
|
68
|
+
},
|
69
|
+
{
|
70
|
+
"year": "2021",
|
71
|
+
"id": "6",
|
72
|
+
"quarter": "Q1",
|
73
|
+
"month": "February",
|
74
|
+
"day": null,
|
75
|
+
"newEnrollments": "20",
|
76
|
+
"scheduledMeetings": "41",
|
77
|
+
"attendanceRate": "95%",
|
78
|
+
"completedClasses": "26",
|
79
|
+
"classCompletionRate": "83%",
|
80
|
+
"graduatedStudents": "43",
|
81
|
+
"children": [
|
82
|
+
{
|
83
|
+
"year": "2021",
|
84
|
+
"id": "7",
|
85
|
+
"quarter": "Q1",
|
86
|
+
"month": "February",
|
87
|
+
"day": "15",
|
88
|
+
"newEnrollments": "19",
|
89
|
+
"scheduledMeetings": "35",
|
90
|
+
"attendanceRate": "69%",
|
91
|
+
"completedClasses": "8",
|
92
|
+
"classCompletionRate": "75%",
|
93
|
+
"graduatedStudents": "23"
|
94
|
+
}
|
95
|
+
]
|
96
|
+
}
|
97
|
+
]
|
98
|
+
}
|
99
|
+
]
|
100
|
+
},
|
101
|
+
{
|
102
|
+
"year": "2022",
|
103
|
+
"id": "8",
|
104
|
+
"quarter": null,
|
105
|
+
"month": null,
|
106
|
+
"day": null,
|
107
|
+
"newEnrollments": "25",
|
108
|
+
"scheduledMeetings": "17",
|
109
|
+
"attendanceRate": "75%",
|
110
|
+
"completedClasses": "5",
|
111
|
+
"classCompletionRate": "45%",
|
112
|
+
"graduatedStudents": "32",
|
113
|
+
"children": [
|
114
|
+
{
|
115
|
+
"year": "2022",
|
116
|
+
"id": "9",
|
117
|
+
"quarter": "Q1",
|
118
|
+
"month": null,
|
119
|
+
"day": null,
|
120
|
+
"newEnrollments": "2",
|
121
|
+
"scheduledMeetings": "35",
|
122
|
+
"attendanceRate": "32%",
|
123
|
+
"completedClasses": "15",
|
124
|
+
"classCompletionRate": "52%",
|
125
|
+
"graduatedStudents": "36",
|
126
|
+
"children": [
|
127
|
+
{
|
128
|
+
"year": "2022",
|
129
|
+
"id": "10",
|
130
|
+
"quarter": "Q1",
|
131
|
+
"month": "January",
|
132
|
+
"day": null,
|
133
|
+
"newEnrollments": "16",
|
134
|
+
"scheduledMeetings": "20",
|
135
|
+
"attendanceRate": "11%",
|
136
|
+
"completedClasses": "13",
|
137
|
+
"classCompletionRate": "47%",
|
138
|
+
"graduatedStudents": "28",
|
139
|
+
"children": [
|
140
|
+
{
|
141
|
+
"year": "2022",
|
142
|
+
"id": "11",
|
143
|
+
"quarter": "Q1",
|
144
|
+
"month": "January",
|
145
|
+
"day": "15",
|
146
|
+
"newEnrollments": "34",
|
147
|
+
"scheduledMeetings": "28",
|
148
|
+
"attendanceRate": "97%",
|
149
|
+
"completedClasses": "20",
|
150
|
+
"classCompletionRate": "15%",
|
151
|
+
"graduatedStudents": "17"
|
152
|
+
},
|
153
|
+
{
|
154
|
+
"year": "2022",
|
155
|
+
"id": "12",
|
156
|
+
"quarter": "Q1",
|
157
|
+
"month": "January",
|
158
|
+
"day": "25",
|
159
|
+
"newEnrollments": "43",
|
160
|
+
"scheduledMeetings": "23",
|
161
|
+
"attendanceRate": "66%",
|
162
|
+
"completedClasses": "26",
|
163
|
+
"classCompletionRate": "47%",
|
164
|
+
"graduatedStudents": "9"
|
165
|
+
}
|
166
|
+
]
|
167
|
+
},
|
168
|
+
{
|
169
|
+
"year": "2022",
|
170
|
+
"id": "13",
|
171
|
+
"quarter": "Q1",
|
172
|
+
"month": "May",
|
173
|
+
"day": null,
|
174
|
+
"newEnrollments": "20",
|
175
|
+
"scheduledMeetings": "41",
|
176
|
+
"attendanceRate": "95%",
|
177
|
+
"completedClasses": "26",
|
178
|
+
"classCompletionRate": "83%",
|
179
|
+
"graduatedStudents": "43",
|
180
|
+
"children": [
|
181
|
+
{
|
182
|
+
"year": "2022",
|
183
|
+
"id": "14",
|
184
|
+
"quarter": "Q1",
|
185
|
+
"month": "May",
|
186
|
+
"day": "2",
|
187
|
+
"newEnrollments": "19",
|
188
|
+
"scheduledMeetings": "35",
|
189
|
+
"attendanceRate": "69%",
|
190
|
+
"completedClasses": "8",
|
191
|
+
"classCompletionRate": "75%",
|
192
|
+
"graduatedStudents": "23"
|
193
|
+
}
|
194
|
+
]
|
195
|
+
}
|
196
|
+
]
|
197
|
+
}
|
198
|
+
]
|
199
|
+
},
|
200
|
+
{
|
201
|
+
"year": "2023",
|
202
|
+
"id": "15",
|
203
|
+
"quarter": null,
|
204
|
+
"month": null,
|
205
|
+
"day": null,
|
206
|
+
"newEnrollments": "10",
|
207
|
+
"scheduledMeetings": "15",
|
208
|
+
"attendanceRate": "65%",
|
209
|
+
"completedClasses": "4",
|
210
|
+
"classCompletionRate": "49%",
|
211
|
+
"graduatedStudents": "29",
|
212
|
+
"children": [
|
213
|
+
{
|
214
|
+
"year": "2023",
|
215
|
+
"id": "16",
|
216
|
+
"quarter": "Q1",
|
217
|
+
"month": null,
|
218
|
+
"day": null,
|
219
|
+
"newEnrollments": "2",
|
220
|
+
"scheduledMeetings": "35",
|
221
|
+
"attendanceRate": "32%",
|
222
|
+
"completedClasses": "15",
|
223
|
+
"classCompletionRate": "52%",
|
224
|
+
"graduatedStudents": "36",
|
225
|
+
"children": [
|
226
|
+
{
|
227
|
+
"year": "2023",
|
228
|
+
"id": "17",
|
229
|
+
"quarter": "Q1",
|
230
|
+
"month": "March",
|
231
|
+
"day": null,
|
232
|
+
"newEnrollments": "16",
|
233
|
+
"scheduledMeetings": "20",
|
234
|
+
"attendanceRate": "11%",
|
235
|
+
"completedClasses": "13",
|
236
|
+
"classCompletionRate": "47%",
|
237
|
+
"graduatedStudents": "28",
|
238
|
+
"children": [
|
239
|
+
{
|
240
|
+
"year": "2023",
|
241
|
+
"id": "18",
|
242
|
+
"quarter": "Q1",
|
243
|
+
"month": "March",
|
244
|
+
"day": "10",
|
245
|
+
"newEnrollments": "34",
|
246
|
+
"scheduledMeetings": "28",
|
247
|
+
"attendanceRate": "97%",
|
248
|
+
"completedClasses": "20",
|
249
|
+
"classCompletionRate": "15%",
|
250
|
+
"graduatedStudents": "17"
|
251
|
+
},
|
252
|
+
{
|
253
|
+
"year": "2023",
|
254
|
+
"id": "19",
|
255
|
+
"quarter": "Q1",
|
256
|
+
"month": "March",
|
257
|
+
"day": "11",
|
258
|
+
"newEnrollments": "43",
|
259
|
+
"scheduledMeetings": "23",
|
260
|
+
"attendanceRate": "66%",
|
261
|
+
"completedClasses": "26",
|
262
|
+
"classCompletionRate": "47%",
|
263
|
+
"graduatedStudents": "9"
|
264
|
+
}
|
265
|
+
]
|
266
|
+
},
|
267
|
+
{
|
268
|
+
"year": "2023",
|
269
|
+
"id": "20",
|
270
|
+
"quarter": "Q1",
|
271
|
+
"month": "April",
|
272
|
+
"day": null,
|
273
|
+
"newEnrollments": "20",
|
274
|
+
"scheduledMeetings": "41",
|
275
|
+
"attendanceRate": "95%",
|
276
|
+
"completedClasses": "26",
|
277
|
+
"classCompletionRate": "83%",
|
278
|
+
"graduatedStudents": "43",
|
279
|
+
"children": [
|
280
|
+
{
|
281
|
+
"year": "2023",
|
282
|
+
"id": "21",
|
283
|
+
"quarter": "Q1",
|
284
|
+
"month": "April",
|
285
|
+
"day": "15",
|
286
|
+
"newEnrollments": "19",
|
287
|
+
"scheduledMeetings": "35",
|
288
|
+
"attendanceRate": "69%",
|
289
|
+
"completedClasses": "8",
|
290
|
+
"classCompletionRate": "75%",
|
291
|
+
"graduatedStudents": "23"
|
292
|
+
}
|
293
|
+
]
|
294
|
+
}
|
295
|
+
]
|
296
|
+
}
|
297
|
+
]
|
298
|
+
}
|
299
|
+
]
|
@@ -27,3 +27,8 @@ examples:
|
|
27
27
|
- advanced_table_pagination_with_props: Pagination Props
|
28
28
|
- advanced_table_column_headers: Multi-Header Columns
|
29
29
|
- advanced_table_column_headers_multiple: Multi-Header Columns (Multiple Levels)
|
30
|
+
# - advanced_table_no_subrows: Table with No Subrows
|
31
|
+
- advanced_table_selectable_rows: Selectable Rows
|
32
|
+
- advanced_table_selectable_rows_no_subrows: Selectable Rows (No Subrows)
|
33
|
+
- advanced_table_selectable_rows_actions: Selectable Rows (With Actions)
|
34
|
+
- advanced_table_selectable_rows_header: Selectable Rows (No Actions Bar)
|
@@ -13,4 +13,9 @@ export { default as AdvancedTableCustomCell } from './_advanced_table_custom_cel
|
|
13
13
|
export { default as AdvancedTablePagination } from './_advanced_table_pagination.jsx'
|
14
14
|
export { default as AdvancedTablePaginationWithProps } from './_advanced_table_pagination_with_props.jsx'
|
15
15
|
export { default as AdvancedTableColumnHeaders } from './_advanced_table_column_headers.jsx'
|
16
|
-
export { default as AdvancedTableColumnHeadersMultiple } from './_advanced_table_column_headers_multiple.jsx'
|
16
|
+
export { default as AdvancedTableColumnHeadersMultiple } from './_advanced_table_column_headers_multiple.jsx'
|
17
|
+
export { default as AdvancedTableSelectableRows } from './_advanced_table_selectable_rows.jsx'
|
18
|
+
export { default as AdvancedTableSelectableRowsNoSubrows } from './_advanced_table_selectable_rows_no_subrows.jsx'
|
19
|
+
export { default as AdvancedTableNoSubrows } from './_advanced_table_no_subrows.jsx'
|
20
|
+
export { default as AdvancedTableSelectableRowsHeader } from './_advanced_table_selectable_rows_header.jsx'
|
21
|
+
export { default as AdvancedTableSelectableRowsActions } from './_advanced_table_selectable_rows_actions.jsx'
|
@@ -1,6 +1,5 @@
|
|
1
|
-
<%=
|
2
|
-
object.tag == "button" ? object.options : object.link_options
|
3
|
-
**combined_html_options) do %>
|
1
|
+
<%= pb_content_tag(object.tag,
|
2
|
+
object.tag == "button" ? object.options : object.link_options) do %>
|
4
3
|
<% if object.variant === "reaction" %>
|
5
4
|
<% if icon && object.valid_emoji(object.icon) %>
|
6
5
|
<%= pb_rails("flex", props:{ align: "center" }) do %>
|
@@ -1,9 +1,4 @@
|
|
1
|
-
<%=
|
2
|
-
id: object.id,
|
3
|
-
data: object.data,
|
4
|
-
class: object.classname,
|
5
|
-
**combined_html_options
|
6
|
-
) do %>
|
1
|
+
<%= pb_content_tag(:label) do %>
|
7
2
|
<%= content.presence || object.input %>
|
8
3
|
<% if object.indeterminate %>
|
9
4
|
<span data-pb-checkbox-icon-span="true" class="pb_checkbox_indeterminate">
|
@@ -1,9 +1,5 @@
|
|
1
|
-
<%=
|
2
|
-
|
3
|
-
class: object.classname + object.error_class,
|
4
|
-
data: object.data,
|
5
|
-
id: object.id,
|
6
|
-
**combined_html_options) do %>
|
1
|
+
<%= pb_content_tag(:div,
|
2
|
+
class: object.classname + object.error_class) do %>
|
7
3
|
<div class="input_wrapper">
|
8
4
|
<% if content.present? %>
|
9
5
|
<%= content %>
|
@@ -6,14 +6,8 @@
|
|
6
6
|
|
7
7
|
] %>
|
8
8
|
|
9
|
-
<%= pb_rails("
|
10
|
-
|
11
|
-
<%= pb_rails("list", props:
|
12
|
-
<% initial_items.each do |item| %>
|
13
|
-
<%= pb_rails("draggable/draggable_item", props:{drag_id: item[:id]}) do %>
|
14
|
-
<%= pb_rails("list/item") do %><%= item[:name] %><% end %>
|
15
|
-
<% end %>
|
16
|
-
<% end %>
|
17
|
-
<% end %>
|
9
|
+
<%= pb_rails("list", props: { enable_drag: true, items: initial_items }) do %>
|
10
|
+
<% initial_items.each do |item| %>
|
11
|
+
<%= pb_rails("list/item", props:{drag_id: item[:id]}) do %><%= item[:name] %><% end %>
|
18
12
|
<% end %>
|
19
13
|
<% end %>
|
@@ -0,0 +1,5 @@
|
|
1
|
+
For a simplified version of the Draggable API for the List kit, you can do the following:
|
2
|
+
|
3
|
+
The List kit is optimized to work with the draggable kit. To enable drag, use the `enable_drag` prop on List kit with an array of the included items AND `drag_id` prop on ListItems. You will also need to include the `items` prop containing your array of listed items for the Draggable API.
|
4
|
+
|
5
|
+
An additional optional boolean prop (set to true by default) of `drag_handle` is also available on ListItem kit to show the drag handle icon.
|
@@ -1,19 +1,14 @@
|
|
1
|
-
<%=
|
2
|
-
aria: object.aria,
|
3
|
-
class: object.classname,
|
4
|
-
data: object.data,
|
5
|
-
id: object.id,
|
6
|
-
**combined_html_options) do %>
|
1
|
+
<%= pb_content_tag do %>
|
7
2
|
<% if object.label.present? %>
|
8
3
|
<%= pb_rails("caption", props: {text: object.label, margin_bottom:"xs"}) %>
|
9
4
|
<% end %>
|
10
5
|
<div class="dropdown_wrapper<%= error_class %>" style="position: relative">
|
11
|
-
<input
|
12
|
-
data-default-value="<%= input_default_value %>"
|
13
|
-
id="dropdown-selected-option"
|
14
|
-
name="<%= object.name %>"
|
15
|
-
style="display: none"
|
16
|
-
<%= object.required ? "required" : ""%>
|
6
|
+
<input
|
7
|
+
data-default-value="<%= input_default_value %>"
|
8
|
+
id="dropdown-selected-option"
|
9
|
+
name="<%= object.name %>"
|
10
|
+
style="display: none"
|
11
|
+
<%= object.required ? "required" : ""%>
|
17
12
|
/>
|
18
13
|
<% if content.present? %>
|
19
14
|
<%= content.presence %>
|
@@ -1,20 +1,15 @@
|
|
1
|
-
<%=
|
2
|
-
aria: object.aria,
|
3
|
-
class: object.classname,
|
4
|
-
data: object.data,
|
5
|
-
id: object.id,
|
6
|
-
**combined_html_options) do %>
|
1
|
+
<%= pb_content_tag do %>
|
7
2
|
<%= pb_rails("list", props: {ordered: false, borderless: false}) do %>
|
8
|
-
<% if content.present? %>
|
3
|
+
<% if content.present? %>
|
9
4
|
<%= content.presence %>
|
10
|
-
<% else %>
|
5
|
+
<% else %>
|
11
6
|
<%= pb_rails("list/item", props: {
|
12
|
-
display: "flex",
|
13
|
-
justify_content: "center",
|
14
|
-
padding:"xs",
|
15
|
-
}) do %>
|
7
|
+
display: "flex",
|
8
|
+
justify_content: "center",
|
9
|
+
padding:"xs",
|
10
|
+
}) do %>
|
16
11
|
<%= pb_rails("body", props: {text: "No option"}) %>
|
17
12
|
<% end %>
|
18
13
|
<% end %>
|
19
|
-
<% end %>
|
20
|
-
<% end %>
|
14
|
+
<% end %>
|
15
|
+
<% end %>
|