playbook_ui 14.24.0 → 14.25.0.pre.rc.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.
- checksums.yaml +4 -4
- data/app/pb_kits/playbook/pb_advanced_table/Components/RegularTableView.tsx +4 -1
- data/app/pb_kits/playbook/pb_advanced_table/Components/TableHeaderCell.tsx +1 -2
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +34 -0
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table.test.jsx +56 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_headers_vertical_border.html.erb +43 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_headers_vertical_border.jsx +64 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_padding_control.jsx +60 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_padding_control.md +3 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_padding_control_per_row.jsx +57 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_padding_control_per_row.md +1 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +4 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +4 -1
- data/app/pb_kits/playbook/pb_advanced_table/table_row.rb +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/table_subrow_header.rb +1 -1
- data/app/pb_kits/playbook/pb_date/_date.tsx +5 -3
- data/app/pb_kits/playbook/pb_date/date.html.erb +6 -6
- data/app/pb_kits/playbook/pb_date/date.rb +2 -0
- data/app/pb_kits/playbook/pb_date/docs/_date_with_show_current_year.html.erb +4 -0
- data/app/pb_kits/playbook/pb_date/docs/_date_with_show_current_year.jsx +17 -0
- data/app/pb_kits/playbook/pb_date/docs/_date_with_show_current_year.md +1 -0
- data/app/pb_kits/playbook/pb_date/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_date/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_pagination/_pagination.test.jsx +212 -0
- data/app/pb_kits/playbook/pb_pagination/_pagination.tsx +8 -1
- data/app/pb_kits/playbook/pb_pagination/docs/_pagination_external_control.jsx +112 -0
- data/app/pb_kits/playbook/pb_pagination/docs/_pagination_external_control_react.md +3 -0
- data/app/pb_kits/playbook/pb_pagination/docs/example.yml +1 -0
- data/app/pb_kits/playbook/pb_pagination/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_table/styles/_vertical_border.scss +49 -1
- data/dist/chunks/{_line_graph-BLS62QjW.js → _line_graph-D7DgMqnT.js} +1 -1
- data/dist/chunks/_typeahead-BzYZCpJO.js +6 -0
- data/dist/chunks/{_weekday_stacked-Cv8-Sf6X.js → _weekday_stacked-CitcNYFp.js} +2 -2
- data/dist/chunks/{lib-DgtxnJqa.js → lib-CY5ZPzic.js} +2 -2
- data/dist/chunks/{pb_form_validation-_NsOWfBS.js → pb_form_validation-D3b0JKHH.js} +1 -1
- data/dist/chunks/vendor.js +1 -1
- data/dist/menu.yml +2 -2
- 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 +2 -2
- metadata +19 -7
- data/dist/chunks/_typeahead-CZL6rvfn.js +0 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f40a6c3f571115d04deb79b25929f5db0e7d3574b3e8621748c799c197478e6e
|
4
|
+
data.tar.gz: 149c9509d0200a66d3f0523e57a2d75ed6254b90ad54e8b98a7c8ed8fbb21faa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 25afeb9d1bb9418e5e2e4ce343d8899bd2a546f9e2e67384359b1315db270d674044c6f6ef0997bc19978f40f8000afc335fee6d446331905d426799a435cb99
|
7
|
+
data.tar.gz: 0baf6140f040646b25171d0150fe074c54af0a3bd276eab0ea925c8eb99ca0ad5a061c836100f16bf6699f4de3d86d37d91d654267cedde5ad6a7ba1702be98e
|
@@ -58,7 +58,9 @@ const TableCellRenderer = ({
|
|
58
58
|
// Find the “owning” colDefinition by accessor. Needed for multi column logic
|
59
59
|
const colDef = findColumnDefByAccessor(columnDefinitions ?? [], column.id)
|
60
60
|
const cellAlignment = colDef?.columnStyling?.cellAlignment ?? "right"
|
61
|
-
|
61
|
+
const paddingValue = colDef?.columnStyling?.cellPadding ?? customRowStyle?.cellPadding
|
62
|
+
const paddingClass = paddingValue ? `p_${paddingValue}` : undefined
|
63
|
+
|
62
64
|
return (
|
63
65
|
<td
|
64
66
|
align={cellAlignment}
|
@@ -68,6 +70,7 @@ const TableCellRenderer = ({
|
|
68
70
|
isPinnedLeft && 'pinned-left',
|
69
71
|
stickyLeftColumn && stickyLeftColumn.length > 0 && isPinnedLeft && 'sticky-left',
|
70
72
|
isLastCell && 'last-cell',
|
73
|
+
paddingClass
|
71
74
|
)}
|
72
75
|
key={`${cell.id}-data`}
|
73
76
|
style={{
|
@@ -113,7 +113,6 @@ export const TableHeaderCell = ({
|
|
113
113
|
return visibleSiblings.at(-1) === header.column;
|
114
114
|
})();
|
115
115
|
|
116
|
-
|
117
116
|
const cellClassName = classnames(
|
118
117
|
"table-header-cells",
|
119
118
|
`${showActionsBar && isActionBarVisible && "header-cells-with-actions"}`,
|
@@ -122,7 +121,7 @@ const cellClassName = classnames(
|
|
122
121
|
{ "pinned-left": responsive === "scroll" && isPinnedLeft },
|
123
122
|
isLastHeaderCell ? "last-header-cell" : "",
|
124
123
|
stickyLeftColumn && stickyLeftColumn.length > 0 && isPinnedLeft ? 'sticky-left' : "",
|
125
|
-
|
124
|
+
colDef?.columnStyling?.headerPadding && `p_${colDef?.columnStyling?.headerPadding}`
|
126
125
|
);
|
127
126
|
|
128
127
|
const cellId = `${loading ?
|
@@ -971,6 +971,40 @@
|
|
971
971
|
}
|
972
972
|
}
|
973
973
|
}
|
974
|
+
|
975
|
+
// Firefox-specific fix for last-header-cell and last-cell vertical borders
|
976
|
+
@-moz-document url-prefix() {
|
977
|
+
.pb_advanced_table_header {
|
978
|
+
.last-header-cell {
|
979
|
+
border-right: none !important;
|
980
|
+
box-shadow: 1px 0 0 0 $border_light !important;
|
981
|
+
}
|
982
|
+
}
|
983
|
+
|
984
|
+
.pb_advanced_table_body {
|
985
|
+
.last-cell {
|
986
|
+
border-right: none !important;
|
987
|
+
box-shadow: 1px 0 0 0 $border_light !important;
|
988
|
+
}
|
989
|
+
}
|
990
|
+
|
991
|
+
// Dark mode Firefox fixes
|
992
|
+
&.dark {
|
993
|
+
.pb_advanced_table_header {
|
994
|
+
.last-header-cell {
|
995
|
+
border-right: none !important;
|
996
|
+
box-shadow: 1px 0 0 0 $border_dark !important;
|
997
|
+
}
|
998
|
+
}
|
999
|
+
|
1000
|
+
.pb_advanced_table_body {
|
1001
|
+
.last-cell {
|
1002
|
+
border-right: none !important;
|
1003
|
+
box-shadow: 1px 0 0 0 $border_dark !important;
|
1004
|
+
}
|
1005
|
+
}
|
1006
|
+
}
|
1007
|
+
}
|
974
1008
|
}
|
975
1009
|
|
976
1010
|
// Outside of the pb_advanced_table class for popover
|
@@ -651,6 +651,36 @@ test("columnStyling.cellAlignment sets each <td> align attribute as expected", (
|
|
651
651
|
expect(firstEnrollmentCell).toHaveAttribute("align", "left");
|
652
652
|
});
|
653
653
|
|
654
|
+
test("columnStyling.cellPadding sets cell padding", () => {
|
655
|
+
const styledColumnDefs = [
|
656
|
+
{
|
657
|
+
accessor: "year",
|
658
|
+
label: "Year",
|
659
|
+
cellAccessors: ["quarter", "month", "day"],
|
660
|
+
},
|
661
|
+
{
|
662
|
+
accessor: "newEnrollments",
|
663
|
+
label: "New Enrollments",
|
664
|
+
columnStyling: { cellPadding: "none" },
|
665
|
+
},
|
666
|
+
{
|
667
|
+
accessor: "scheduledMeetings",
|
668
|
+
label: "Scheduled Meetings",
|
669
|
+
},
|
670
|
+
];
|
671
|
+
|
672
|
+
render(
|
673
|
+
<AdvancedTable
|
674
|
+
columnDefinitions={styledColumnDefs}
|
675
|
+
data={{ testid: testId }}
|
676
|
+
tableData={MOCK_DATA}
|
677
|
+
/>
|
678
|
+
);
|
679
|
+
|
680
|
+
const firstEnrollmentCell = screen.getAllByText("20")[0].closest("td");
|
681
|
+
expect(firstEnrollmentCell).toHaveClass('p_none')
|
682
|
+
});
|
683
|
+
|
654
684
|
test("renders virtualized table rows and header", () => {
|
655
685
|
render(
|
656
686
|
<AdvancedTable
|
@@ -694,6 +724,32 @@ test("rowStyling prop works as expected", () => {
|
|
694
724
|
expect(row1).toHaveStyle({backgroundColor: colors.white, color: colors.black})
|
695
725
|
})
|
696
726
|
|
727
|
+
test("rowStyling prop to allow padding control", () => {
|
728
|
+
const rowStyling = [
|
729
|
+
{
|
730
|
+
rowId: "1",
|
731
|
+
cellPadding: "lg"
|
732
|
+
},
|
733
|
+
];
|
734
|
+
|
735
|
+
render(
|
736
|
+
<AdvancedTable
|
737
|
+
columnDefinitions={columnDefinitions}
|
738
|
+
data={{ testid: testId }}
|
739
|
+
rowStyling={rowStyling}
|
740
|
+
tableData={MOCK_DATA_WITH_ID}
|
741
|
+
/>
|
742
|
+
)
|
743
|
+
|
744
|
+
const kit = screen.getByTestId(testId)
|
745
|
+
const tableBody = kit.querySelector('tbody')
|
746
|
+
const row1 = tableBody.querySelector('tr:nth-child(1)')
|
747
|
+
const cells = row1.querySelectorAll("td");
|
748
|
+
cells.forEach((cell) => {
|
749
|
+
expect(cell.classList.contains("p_lg")).toBe(true);
|
750
|
+
});
|
751
|
+
})
|
752
|
+
|
697
753
|
test("Sort icon renders with enableSort on individual columns", () => {
|
698
754
|
render(
|
699
755
|
<AdvancedTable
|
@@ -0,0 +1,43 @@
|
|
1
|
+
<% column_definitions = [
|
2
|
+
{
|
3
|
+
accessor: "year",
|
4
|
+
label: "Year",
|
5
|
+
cellAccessors: ["quarter", "month", "day"],
|
6
|
+
},
|
7
|
+
{
|
8
|
+
label: "Enrollment Data",
|
9
|
+
columns: [
|
10
|
+
{
|
11
|
+
accessor: "newEnrollments",
|
12
|
+
label: "New Enrollments",
|
13
|
+
},
|
14
|
+
{
|
15
|
+
accessor: "scheduledMeetings",
|
16
|
+
label: "Scheduled Meetings",
|
17
|
+
},
|
18
|
+
],
|
19
|
+
},
|
20
|
+
{
|
21
|
+
label: "Performance Data",
|
22
|
+
columns: [
|
23
|
+
{
|
24
|
+
accessor: "attendanceRate",
|
25
|
+
label: "Attendance Rate",
|
26
|
+
},
|
27
|
+
{
|
28
|
+
accessor: "completedClasses",
|
29
|
+
label: "Completed Classes",
|
30
|
+
},
|
31
|
+
{
|
32
|
+
accessor: "classCompletionRate",
|
33
|
+
label: "Class Completion Rate",
|
34
|
+
},
|
35
|
+
{
|
36
|
+
accessor: "graduatedStudents",
|
37
|
+
label: "Graduated Students",
|
38
|
+
},
|
39
|
+
],
|
40
|
+
},
|
41
|
+
] %>
|
42
|
+
|
43
|
+
<%= pb_rails("advanced_table", props: { id: "table_multi_headers_vertical_borders", table_data: @table_data, column_definitions: column_definitions, table_props: { vertical_border: true } }) %>
|
data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_headers_vertical_border.jsx
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
import React from "react"
|
2
|
+
import AdvancedTable from '../../pb_advanced_table/_advanced_table'
|
3
|
+
import MOCK_DATA from "./advanced_table_mock_data.json"
|
4
|
+
|
5
|
+
const AdvancedTableColumnHeadersVerticalBorder = (props) => {
|
6
|
+
const columnDefinitions = [
|
7
|
+
{
|
8
|
+
accessor: "year",
|
9
|
+
label: "Year",
|
10
|
+
cellAccessors: ["quarter", "month", "day"],
|
11
|
+
},
|
12
|
+
{
|
13
|
+
label: "Enrollment Data",
|
14
|
+
columns: [
|
15
|
+
{
|
16
|
+
accessor: "newEnrollments",
|
17
|
+
label: "New Enrollments",
|
18
|
+
},
|
19
|
+
{
|
20
|
+
accessor: "scheduledMeetings",
|
21
|
+
label: "Scheduled Meetings",
|
22
|
+
},
|
23
|
+
],
|
24
|
+
},
|
25
|
+
{
|
26
|
+
label: "Performance Data",
|
27
|
+
columns: [
|
28
|
+
{
|
29
|
+
accessor: "attendanceRate",
|
30
|
+
label: "Attendance Rate",
|
31
|
+
},
|
32
|
+
{
|
33
|
+
accessor: "completedClasses",
|
34
|
+
label: "Completed Classes",
|
35
|
+
},
|
36
|
+
{
|
37
|
+
accessor: "classCompletionRate",
|
38
|
+
label: "Class Completion Rate",
|
39
|
+
},
|
40
|
+
{
|
41
|
+
accessor: "graduatedStudents",
|
42
|
+
label: "Graduated Students",
|
43
|
+
},
|
44
|
+
],
|
45
|
+
},
|
46
|
+
];
|
47
|
+
|
48
|
+
const tableProps = {
|
49
|
+
verticalBorder: true
|
50
|
+
}
|
51
|
+
|
52
|
+
return (
|
53
|
+
<>
|
54
|
+
<AdvancedTable
|
55
|
+
columnDefinitions={columnDefinitions}
|
56
|
+
tableData={MOCK_DATA}
|
57
|
+
tableProps={tableProps}
|
58
|
+
{...props}
|
59
|
+
/>
|
60
|
+
</>
|
61
|
+
)
|
62
|
+
}
|
63
|
+
|
64
|
+
export default AdvancedTableColumnHeadersVerticalBorder
|
@@ -0,0 +1,60 @@
|
|
1
|
+
import React from "react"
|
2
|
+
import AdvancedTable from '../_advanced_table'
|
3
|
+
import Background from '../../pb_background/_background'
|
4
|
+
import MOCK_DATA from "./advanced_table_mock_data_with_id.json"
|
5
|
+
|
6
|
+
const AdvancedTablePaddingControl = (props) => {
|
7
|
+
const columnDefinitions = [
|
8
|
+
{
|
9
|
+
accessor: "year",
|
10
|
+
label: "Year",
|
11
|
+
cellAccessors: ["quarter", "month", "day"],
|
12
|
+
},
|
13
|
+
{
|
14
|
+
accessor: "newEnrollments",
|
15
|
+
label: "New Enrollments",
|
16
|
+
columnStyling:{cellPadding: "none"},
|
17
|
+
customRenderer: (row, value) => (
|
18
|
+
<Background
|
19
|
+
backgroundColor={row.original.newEnrollments > 20 ? "success_secondary" : "warning_secondary"}
|
20
|
+
padding="xs"
|
21
|
+
>
|
22
|
+
{value}
|
23
|
+
</Background>
|
24
|
+
),
|
25
|
+
|
26
|
+
},
|
27
|
+
{
|
28
|
+
accessor: "scheduledMeetings",
|
29
|
+
label: "Scheduled Meetings",
|
30
|
+
},
|
31
|
+
{
|
32
|
+
accessor: "attendanceRate",
|
33
|
+
label: "Attendance Rate",
|
34
|
+
},
|
35
|
+
{
|
36
|
+
accessor: "completedClasses",
|
37
|
+
label: "Completed Classes",
|
38
|
+
},
|
39
|
+
{
|
40
|
+
accessor: "classCompletionRate",
|
41
|
+
label: "Class Completion Rate",
|
42
|
+
},
|
43
|
+
{
|
44
|
+
accessor: "graduatedStudents",
|
45
|
+
label: "Graduated Students",
|
46
|
+
},
|
47
|
+
]
|
48
|
+
|
49
|
+
return (
|
50
|
+
<div>
|
51
|
+
<AdvancedTable
|
52
|
+
columnDefinitions={columnDefinitions}
|
53
|
+
tableData={MOCK_DATA}
|
54
|
+
{...props}
|
55
|
+
/>
|
56
|
+
</div>
|
57
|
+
)
|
58
|
+
}
|
59
|
+
|
60
|
+
export default AdvancedTablePaddingControl
|
@@ -0,0 +1,3 @@
|
|
1
|
+
`columnStyling` can also be used to control padding on all cells in a given column via the use of the `cellPadding` key/value pair. `cellPadding` lets you use 'xxs', 'xs', 'sm', 'md', 'lg', 'xl' and 'none'.
|
2
|
+
|
3
|
+
This control can be used in conjunction with the `customRenderer` item within each columnDefinition to achieve custom background colors for individual cells as seen here.
|
@@ -0,0 +1,57 @@
|
|
1
|
+
import React from "react"
|
2
|
+
import AdvancedTable from '../_advanced_table'
|
3
|
+
import MOCK_DATA from "./advanced_table_mock_data_with_id.json"
|
4
|
+
|
5
|
+
const AdvancedTablePaddingControlPerRow = (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 rowStyling = [
|
39
|
+
{
|
40
|
+
rowId: "1",
|
41
|
+
cellPadding:"md"
|
42
|
+
},
|
43
|
+
];
|
44
|
+
|
45
|
+
return (
|
46
|
+
<div>
|
47
|
+
<AdvancedTable
|
48
|
+
columnDefinitions={columnDefinitions}
|
49
|
+
rowStyling={rowStyling}
|
50
|
+
tableData={MOCK_DATA}
|
51
|
+
{...props}
|
52
|
+
/>
|
53
|
+
</div>
|
54
|
+
)
|
55
|
+
}
|
56
|
+
|
57
|
+
export default AdvancedTablePaddingControlPerRow
|
@@ -0,0 +1 @@
|
|
1
|
+
`rowStyling` can also be used to control padding on all cells in a given row via the use of the `cellPadding` key/value pair as shown here. `cellPadding` lets you use 'xxs', 'xs', 'sm', 'md', 'lg', 'xl' and 'none'.
|
@@ -13,6 +13,7 @@ examples:
|
|
13
13
|
- advanced_table_with_custom_header_rails: Custom Header Cell
|
14
14
|
- advanced_table_column_headers: Multi-Header Columns
|
15
15
|
- advanced_table_column_headers_multiple: Multi-Header Columns (Multiple Levels)
|
16
|
+
- advanced_table_column_headers_vertical_border: Multi-Header Columns with Vertical Borders
|
16
17
|
- advanced_table_no_subrows: Table with No Subrows or Expansion
|
17
18
|
- advanced_table_selectable_rows_rails: Selectable Rows
|
18
19
|
- advanced_table_selectable_rows_no_subrows_rails: Selectable Rows (No Subrows)
|
@@ -53,6 +54,7 @@ examples:
|
|
53
54
|
- advanced_table_column_headers: Multi-Header Columns
|
54
55
|
- advanced_table_column_headers_multiple: Multi-Header Columns (Multiple Levels)
|
55
56
|
- advanced_table_column_headers_custom_cell: Multi-Header Columns with Custom Cells
|
57
|
+
- advanced_table_column_headers_vertical_border: Multi-Header Columns with Vertical Borders
|
56
58
|
- advanced_table_no_subrows: Table with No Subrows or Expansion
|
57
59
|
- advanced_table_pinned_rows: Pinned Rows
|
58
60
|
- advanced_table_selectable_rows: Selectable Rows
|
@@ -66,8 +68,10 @@ examples:
|
|
66
68
|
- advanced_table_column_visibility_multi: Column Visibility Control with Multi-Header Columns
|
67
69
|
- advanced_table_scrollbar_none: Advanced Table Scrollbar None
|
68
70
|
- advanced_table_row_styling: Row Styling
|
71
|
+
- advanced_table_padding_control_per_row: Padding Control using Row Styling
|
69
72
|
- advanced_table_column_styling: Column Styling
|
70
73
|
- advanced_table_column_styling_column_headers: Column Styling with Multiple Headers
|
74
|
+
- advanced_table_padding_control: Padding Control using Column Styling
|
71
75
|
- advanced_table_column_border_color: Column Group Border Color
|
72
76
|
- advanced_table_fullscreen: Fullscreen
|
73
77
|
- advanced_table_infinite_scroll: Infinite Scroll
|
@@ -21,6 +21,7 @@ export { default as AdvancedTableSelectableRowsHeader } from './_advanced_table_
|
|
21
21
|
export { default as AdvancedTableSelectableRowsActions } from './_advanced_table_selectable_rows_actions.jsx'
|
22
22
|
export { default as AdvancedTableTablePropsStickyHeader } from './_advanced_table_table_props_sticky_header.jsx'
|
23
23
|
export { default as AdvancedTableColumnHeadersCustomCell } from './_advanced_table_column_headers_custom_cell.jsx'
|
24
|
+
export { default as AdvancedTableColumnHeadersVerticalBorder } from './_advanced_table_column_headers_vertical_border.jsx'
|
24
25
|
export { default as AdvancedTableInlineEditing } from './_advanced_table_inline_editing.jsx'
|
25
26
|
export { default as AdvancedTableFullscreen } from './_advanced_table_fullscreen.jsx'
|
26
27
|
export { default as AdvancedTableStickyColumns } from './_advanced_table_sticky_columns.jsx'
|
@@ -42,4 +43,6 @@ export {default as AdvancedTableWithCustomHeader} from './_advanced_table_with_c
|
|
42
43
|
export { default as AdvancedTableCustomSort } from './_advanced_table_custom_sort.jsx'
|
43
44
|
export { default as AdvancedTableWithCustomHeaderMultiHeader } from './_advanced_table_with_custom_header_multi_header.jsx'
|
44
45
|
export { default as AdvancedTableSortPerColumn } from './_advanced_table_sort_per_column.jsx'
|
45
|
-
export { default as AdvancedTableSortPerColumnForMultiColumn } from './_advanced_table_sort_per_column_for_multi_column.jsx'
|
46
|
+
export { default as AdvancedTableSortPerColumnForMultiColumn } from './_advanced_table_sort_per_column_for_multi_column.jsx'
|
47
|
+
export { default as AdvancedTablePaddingControl } from './_advanced_table_padding_control.jsx'
|
48
|
+
export { default as AdvancedTablePaddingControlPerRow } from './_advanced_table_padding_control_per_row.jsx'
|
@@ -43,7 +43,7 @@ module Playbook
|
|
43
43
|
end
|
44
44
|
|
45
45
|
def td_classname(column, index)
|
46
|
-
classes = %w[id-cell
|
46
|
+
classes = %w[id-cell]
|
47
47
|
classes << "last-cell" if column[:is_last_in_group]
|
48
48
|
classes << "pinned-left" if index.zero? && is_pinned_left && responsive == "scroll"
|
49
49
|
classes.join(" ")
|
@@ -19,6 +19,7 @@ type PbDateProps = {
|
|
19
19
|
htmlOptions?: { [key: string]: string | number | boolean | (() => void) };
|
20
20
|
id?: string;
|
21
21
|
showDayOfWeek?: boolean;
|
22
|
+
showCurrentYear?: boolean;
|
22
23
|
showIcon?: boolean;
|
23
24
|
size?: "sm" | "md" | "lg";
|
24
25
|
unstyled?: boolean;
|
@@ -35,6 +36,7 @@ const PbDate = (props: PbDateProps): React.ReactElement => {
|
|
35
36
|
htmlOptions = {},
|
36
37
|
id,
|
37
38
|
showDayOfWeek = false,
|
39
|
+
showCurrentYear = false,
|
38
40
|
showIcon = false,
|
39
41
|
size = "md",
|
40
42
|
unstyled = false,
|
@@ -90,7 +92,7 @@ const PbDate = (props: PbDateProps): React.ReactElement => {
|
|
90
92
|
{month} {day}
|
91
93
|
</span>
|
92
94
|
|
93
|
-
{currentYear
|
95
|
+
{(currentYear !== year || showCurrentYear) && <span>{`, ${year}`}</span>}
|
94
96
|
</span>
|
95
97
|
</>
|
96
98
|
: size == "md" || size == "lg"
|
@@ -124,7 +126,7 @@ const PbDate = (props: PbDateProps): React.ReactElement => {
|
|
124
126
|
<span>
|
125
127
|
{month} {day}
|
126
128
|
</span>
|
127
|
-
{currentYear
|
129
|
+
{(currentYear !== year || showCurrentYear) && <span>{`, ${year}`}</span>}
|
128
130
|
</Title>
|
129
131
|
)
|
130
132
|
: (
|
@@ -158,7 +160,7 @@ const PbDate = (props: PbDateProps): React.ReactElement => {
|
|
158
160
|
<Caption dark={dark}
|
159
161
|
tag="span">
|
160
162
|
{month} {day}
|
161
|
-
{currentYear
|
163
|
+
{(currentYear !== year || showCurrentYear) && <>{`, ${year}`}</>}
|
162
164
|
</Caption>
|
163
165
|
</>
|
164
166
|
)}
|
@@ -13,8 +13,8 @@
|
|
13
13
|
<% end %>
|
14
14
|
|
15
15
|
<!-- month day, year -->
|
16
|
-
<%# if not current year %>
|
17
|
-
<% if object.year.to_s == DateTime.now.year.to_s %>
|
16
|
+
<%# if not current year or show_current_year is false %>
|
17
|
+
<% if object.year.to_s == DateTime.now.year.to_s && !object.show_current_year %>
|
18
18
|
<span><%= "#{object.month} #{object.day}" %></span>
|
19
19
|
<%# if is current year %>
|
20
20
|
<% else %>
|
@@ -44,8 +44,8 @@
|
|
44
44
|
|
45
45
|
<!-- month day, year -->
|
46
46
|
|
47
|
-
<%# if not current year %>
|
48
|
-
<% if object.year.to_s == DateTime.now.year.to_s %>
|
47
|
+
<%# if not current year or show_current_year is false %>
|
48
|
+
<% if object.year.to_s == DateTime.now.year.to_s && !object.show_current_year %>
|
49
49
|
<%= pb_rails("title", props: { tag: "div", text: "#{object.month} #{object.day}", size: 4 }) %>
|
50
50
|
<%# if is current year %>
|
51
51
|
<% else %>
|
@@ -74,8 +74,8 @@
|
|
74
74
|
|
75
75
|
<!-- month day, year -->
|
76
76
|
|
77
|
-
<%# if not current year %>
|
78
|
-
<% if object.year.to_s == DateTime.now.year.to_s %>
|
77
|
+
<%# if not current year or show_current_year is false %>
|
78
|
+
<% if object.year.to_s == DateTime.now.year.to_s && !object.show_current_year %>
|
79
79
|
<%= pb_rails("caption", props: { tag: "span", text: "#{object.month} #{object.day}" }) %>
|
80
80
|
<%# if is current year %>
|
81
81
|
<% else %>
|
@@ -11,6 +11,8 @@ module Playbook
|
|
11
11
|
default: false
|
12
12
|
prop :show_day_of_week, type: Playbook::Props::Boolean,
|
13
13
|
default: false
|
14
|
+
prop :show_current_year, type: Playbook::Props::Boolean,
|
15
|
+
default: false
|
14
16
|
prop :size, type: Playbook::Props::Enum,
|
15
17
|
values: %w[lg md sm xs],
|
16
18
|
default: "md"
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
|
3
|
+
import FormattedDate from '../../pb_date/_date'
|
4
|
+
|
5
|
+
const DateWithShowCurrentYear = (props) => {
|
6
|
+
return (
|
7
|
+
<>
|
8
|
+
<FormattedDate
|
9
|
+
showCurrentYear
|
10
|
+
value={new Date()}
|
11
|
+
{...props}
|
12
|
+
/>
|
13
|
+
</>
|
14
|
+
)
|
15
|
+
}
|
16
|
+
|
17
|
+
export default DateWithShowCurrentYear
|
@@ -0,0 +1 @@
|
|
1
|
+
By default, the Date kit does NOT display the year if it is the current year. If you want to display the current year you can do so by setting `showCurrentYear`/`show_current_year` to true as shown here.
|
@@ -5,12 +5,14 @@ examples:
|
|
5
5
|
- date_variants: Variants
|
6
6
|
- date_alignment: Alignment
|
7
7
|
- date_timezone: Timezones
|
8
|
+
- date_with_show_current_year: Show Current Year
|
8
9
|
- date_unstyled: Unstyled
|
9
10
|
|
10
11
|
react:
|
11
12
|
- date_default: Default
|
12
13
|
- date_variants: Variants
|
13
14
|
- date_alignment: Alignment
|
15
|
+
- date_with_show_current_year: Show Current Year
|
14
16
|
- date_unstyled: Unstyled
|
15
17
|
|
16
18
|
swift:
|
@@ -2,3 +2,4 @@ export { default as DateDefault } from './_date_default.jsx'
|
|
2
2
|
export { default as DateVariants } from './_date_variants.jsx'
|
3
3
|
export { default as DateAlignment } from './_date_alignment.jsx'
|
4
4
|
export { default as DateUnstyled } from './_date_unstyled.jsx'
|
5
|
+
export { default as DateWithShowCurrentYear } from './_date_with_show_current_year.jsx'
|