playbook_ui 14.21.2.pre.alpha.PLAY2256stickydataidreact8446 → 14.21.2.pre.alpha.PLAY18938263
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 +1 -4
- data/app/pb_kits/playbook/pb_advanced_table/Components/RegularTableView.tsx +0 -8
- data/app/pb_kits/playbook/pb_advanced_table/Components/VirtualizedTableView.tsx +16 -36
- data/app/pb_kits/playbook/pb_advanced_table/Context/AdvancedTableContext.tsx +5 -18
- data/app/pb_kits/playbook/pb_advanced_table/Hooks/useTableActions.ts +17 -37
- data/app/pb_kits/playbook/pb_advanced_table/Hooks/useTableState.ts +5 -30
- data/app/pb_kits/playbook/pb_advanced_table/SubKits/TableBody.tsx +0 -3
- data/app/pb_kits/playbook/pb_advanced_table/SubKits/TableHeader.tsx +40 -91
- data/app/pb_kits/playbook/pb_advanced_table/Utilities/CellRendererUtils.tsx +1 -4
- data/app/pb_kits/playbook/pb_advanced_table/Utilities/TableContainerStyles.ts +2 -3
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +4 -49
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +18 -36
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table.test.jsx +2 -45
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_beta_sort.html.erb +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_beta_subrow_headers.html.erb +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_border_color_rails.html.erb +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_loading.html.erb +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_pinned_rows.jsx +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_pinned_rows_react.md +3 -5
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_actions.jsx +2 -2
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_actions_rails.html.erb +2 -3
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header.html.erb +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +0 -2
- data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +1 -3
- data/app/pb_kits/playbook/pb_advanced_table/index.js +0 -21
- data/app/pb_kits/playbook/pb_contact/contact.test.js +2 -2
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_blank_selection.html.erb +3 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_blank_selection.jsx +4 -7
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_clear_selection.jsx +3 -6
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default.jsx +3 -6
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default_rails.html.erb +3 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default_value.html.erb +3 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default_value.jsx +4 -7
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_error.html.erb +3 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_error.jsx +4 -7
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select.jsx +10 -19
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_display.jsx +10 -19
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_display_rails.html.erb +10 -10
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_rails.html.erb +10 -10
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_autocomplete.html.erb +10 -10
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_autocomplete.jsx +11 -20
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_custom_options.html.erb +3 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_custom_options.jsx +8 -8
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_default.html.erb +10 -10
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_default.jsx +14 -23
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_separators_hidden.html.erb +3 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_separators_hidden.jsx +3 -6
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_subcomponent_structure.jsx +3 -6
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_subcomponent_structure_rails.html.erb +3 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_subtle_variant.html.erb +3 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_subtle_variant.jsx +3 -6
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_autocomplete.html.erb +3 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_autocomplete.jsx +3 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_autocomplete_with_subcomponents.html.erb +4 -4
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_autocomplete_with_subcomponents.jsx +4 -4
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_display.jsx +4 -4
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_display_rails.html.erb +4 -4
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_options.jsx +3 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_options_rails.html.erb +3 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_padding.html.erb +3 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_padding.jsx +3 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_trigger.jsx +3 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_trigger_rails.html.erb +3 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_external_control.jsx +3 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_label.html.erb +3 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_label.jsx +3 -6
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_search.jsx +3 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_search_rails.html.erb +3 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/example.yml +0 -4
- data/app/pb_kits/playbook/pb_dropdown/docs/index.js +1 -3
- data/app/pb_kits/playbook/pb_filter/Filter/index.tsx +0 -13
- data/app/pb_kits/playbook/pb_filter/_filter.scss +0 -4
- data/app/pb_kits/playbook/pb_filter/docs/example.yml +0 -1
- data/app/pb_kits/playbook/pb_filter/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_filter/filter.test.js +2 -2
- data/app/pb_kits/playbook/pb_table/_table.tsx +4 -4
- data/app/pb_kits/playbook/pb_table/docs/_table_sticky_columns.html.erb +8 -8
- data/app/pb_kits/playbook/pb_table/docs/_table_sticky_columns.jsx +8 -8
- data/app/pb_kits/playbook/pb_table/docs/_table_sticky_columns_rails.md +1 -1
- data/app/pb_kits/playbook/pb_table/docs/_table_sticky_columns_react.md +1 -1
- data/app/pb_kits/playbook/pb_table/docs/_table_sticky_left_columns.html.erb +12 -12
- data/app/pb_kits/playbook/pb_table/docs/_table_sticky_left_columns.jsx +12 -12
- data/app/pb_kits/playbook/pb_table/docs/_table_sticky_left_columns_rails.md +2 -2
- data/app/pb_kits/playbook/pb_table/docs/_table_sticky_left_columns_react.md +3 -3
- data/app/pb_kits/playbook/pb_table/docs/_table_sticky_right_columns.html.erb +12 -12
- data/app/pb_kits/playbook/pb_table/docs/_table_sticky_right_columns.jsx +12 -12
- data/app/pb_kits/playbook/pb_table/docs/_table_sticky_right_columns_rails.md +2 -2
- data/app/pb_kits/playbook/pb_table/docs/_table_sticky_right_columns_react.md +3 -3
- data/app/pb_kits/playbook/pb_table/index.ts +4 -4
- data/app/pb_kits/playbook/pb_table/styles/_vertical_border.scss +0 -4
- data/app/pb_kits/playbook/pb_tooltip/_tooltip.tsx +22 -34
- data/app/pb_kits/playbook/pb_tooltip/docs/example.yml +0 -1
- data/app/pb_kits/playbook/pb_tooltip/docs/index.js +0 -1
- data/dist/chunks/_typeahead-CoOpeYom.js +22 -0
- data/dist/chunks/_weekday_stacked-JnoR3mIy.js +45 -0
- data/dist/chunks/lib-D7Va7yqa.js +29 -0
- data/dist/chunks/{pb_form_validation-BVF3TmcL.js → pb_form_validation-DSkdRDMf.js} +1 -1
- data/dist/chunks/vendor.js +1 -1
- data/dist/playbook-doc.js +3 -3
- 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 +6 -22
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_infinite_scroll.md +0 -3
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_row_styling.jsx +0 -64
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_row_styling.md +0 -7
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_icon_options.html.erb +0 -52
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_icon_options.jsx +0 -99
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_icon_options_rails.md +0 -1
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_icon_options_react.md +0 -1
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_radio_options.html.erb +0 -28
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_radio_options.jsx +0 -47
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_radio_options_rails.md +0 -1
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_radio_options_react.md +0 -1
- data/app/pb_kits/playbook/pb_filter/Filter/FilterSection.tsx +0 -49
- data/app/pb_kits/playbook/pb_filter/Filter/FilterSidebar.tsx +0 -69
- data/app/pb_kits/playbook/pb_filter/docs/_filter_sidebar.jsx +0 -224
- data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_click_open.jsx +0 -25
- data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_click_open.md +0 -1
- data/dist/chunks/_typeahead-BaWcHxpx.js +0 -22
- data/dist/chunks/_weekday_stacked-DI-oMuSE.js +0 -45
- data/dist/chunks/lib-CTkMyvfQ.js +0 -29
@@ -63,30 +63,11 @@
|
|
63
63
|
width: 100%;
|
64
64
|
}
|
65
65
|
|
66
|
-
// Virtualized
|
67
|
-
scrollbar-gutter: stable right-edges;
|
68
|
-
.virtualized-header-row-header {
|
69
|
-
width: 100% !important;
|
70
|
-
.table-header-cells:first-child {
|
71
|
-
min-width: 180px;
|
72
|
-
}
|
73
|
-
}
|
74
|
-
|
75
|
-
.virtualized-footer {
|
76
|
-
width: 100% !important;
|
77
|
-
td {
|
78
|
-
border-bottom-left-radius: 4px !important;
|
79
|
-
border-bottom-right-radius: 4px !important;
|
80
|
-
display: flex;
|
81
|
-
justify-content: center;
|
82
|
-
align-items: center;
|
83
|
-
}
|
84
|
-
}
|
85
|
-
|
66
|
+
// Virtualized table styles
|
86
67
|
.virtualized-table-row {
|
87
68
|
display: table !important;
|
88
69
|
table-layout: fixed !important;
|
89
|
-
|
70
|
+
width: 100% !important;
|
90
71
|
|
91
72
|
td {
|
92
73
|
display: table-cell !important;
|
@@ -123,7 +104,7 @@
|
|
123
104
|
|
124
105
|
-ms-overflow-style: none !important;
|
125
106
|
scrollbar-width: none !important;
|
126
|
-
|
107
|
+
}
|
127
108
|
|
128
109
|
|
129
110
|
.row-selection-actions-card {
|
@@ -212,6 +193,7 @@
|
|
212
193
|
|
213
194
|
// Fix virtualized row borders
|
214
195
|
tr.virtualized-table-row {
|
196
|
+
border-bottom: 1px solid $border_light;
|
215
197
|
|
216
198
|
&.bg-silver {
|
217
199
|
td:first-child {
|
@@ -624,16 +606,6 @@
|
|
624
606
|
td.sticky-left {
|
625
607
|
border-right: 1px solid $border_light !important;
|
626
608
|
}
|
627
|
-
// Virtualized Table in Responsive Styles
|
628
|
-
.virtualized-header,
|
629
|
-
.virtualized-header-row-header,
|
630
|
-
.virtualized-table-row,
|
631
|
-
.virtualized-footer {
|
632
|
-
border-right: 1px solid $border_light !important;
|
633
|
-
.table-header-cells:first-child {
|
634
|
-
box-shadow: 0 0 10px 0 rgba($shadow, 0.16) !important;
|
635
|
-
}
|
636
|
-
}
|
637
609
|
}
|
638
610
|
}
|
639
611
|
}
|
@@ -649,23 +621,6 @@
|
|
649
621
|
box-shadow: 0 4px 10px 0 rgba($shadow, 0.16) !important;
|
650
622
|
}
|
651
623
|
|
652
|
-
// For Rails, we can't target the &:last-child since collapsed rows are display: none;
|
653
|
-
// With JS, we add a .last-visible-row class and add rounded corners to bottom row
|
654
|
-
.last-visible-row {
|
655
|
-
td, .pb_table_td {
|
656
|
-
border-width: 0 0 1px 0;
|
657
|
-
|
658
|
-
&:first-child {
|
659
|
-
border-radius: 0 0 0 4px;
|
660
|
-
border-width: 0 0 1px 1px;
|
661
|
-
}
|
662
|
-
&:last-child {
|
663
|
-
border-radius: 0 0 4px 0;
|
664
|
-
border-width: 0 1px 1px 0;
|
665
|
-
}
|
666
|
-
}
|
667
|
-
}
|
668
|
-
|
669
624
|
&.dark {
|
670
625
|
// Override default border color for dark mode
|
671
626
|
--column-border-color: #{$border_dark};
|
@@ -57,7 +57,6 @@ type AdvancedTableProps = {
|
|
57
57
|
onChange?: (value: RowPinningState) => void;
|
58
58
|
};
|
59
59
|
responsive?: "scroll" | "none",
|
60
|
-
rowStyling?: GenericObject[],
|
61
60
|
scrollBarNone?: boolean,
|
62
61
|
selectableRows?: boolean,
|
63
62
|
showActionsBar?: boolean,
|
@@ -99,7 +98,6 @@ const AdvancedTable = (props: AdvancedTableProps) => {
|
|
99
98
|
paginationProps,
|
100
99
|
pinnedRows,
|
101
100
|
responsive = "scroll",
|
102
|
-
rowStyling,
|
103
101
|
scrollBarNone= false,
|
104
102
|
showActionsBar = true,
|
105
103
|
selectableRows,
|
@@ -146,7 +144,6 @@ const AdvancedTable = (props: AdvancedTableProps) => {
|
|
146
144
|
onRowSelectionChange,
|
147
145
|
columnVisibilityControl,
|
148
146
|
pinnedRows,
|
149
|
-
rowStyling
|
150
147
|
});
|
151
148
|
|
152
149
|
// Initialize table actions
|
@@ -269,29 +266,6 @@ const AdvancedTable = (props: AdvancedTableProps) => {
|
|
269
266
|
// Visibility flag for action bar
|
270
267
|
const isActionBarVisible = (selectableRows && showActionsBar && selectedRowsLength > 0) || columnVisibilityControl;
|
271
268
|
|
272
|
-
// The actual Main <Table /> element
|
273
|
-
const tableElement = (
|
274
|
-
<Table
|
275
|
-
className={`${loading ? "content-loading" : ""}`}
|
276
|
-
dark={dark}
|
277
|
-
dataTable
|
278
|
-
numberSpacing="tabular"
|
279
|
-
responsive="none"
|
280
|
-
{...tableProps}
|
281
|
-
>
|
282
|
-
{children ? (
|
283
|
-
children
|
284
|
-
) : (
|
285
|
-
<>
|
286
|
-
<TableHeader />
|
287
|
-
<TableBody
|
288
|
-
isFetching={isFetching}
|
289
|
-
/>
|
290
|
-
</>
|
291
|
-
)}
|
292
|
-
</Table>
|
293
|
-
)
|
294
|
-
|
295
269
|
return (
|
296
270
|
<>
|
297
271
|
{/* Top Pagination */}
|
@@ -339,7 +313,6 @@ const AdvancedTable = (props: AdvancedTableProps) => {
|
|
339
313
|
onExpandByDepthClick={onExpandByDepthClick}
|
340
314
|
pinnedRows={pinnedRows}
|
341
315
|
responsive={responsive}
|
342
|
-
rowStyling={rowStyling}
|
343
316
|
selectableRows={selectableRows}
|
344
317
|
setExpanded={setExpanded}
|
345
318
|
showActionsBar={showActionsBar}
|
@@ -349,7 +322,6 @@ const AdvancedTable = (props: AdvancedTableProps) => {
|
|
349
322
|
table={table}
|
350
323
|
tableContainerRef={tableWrapperRef}
|
351
324
|
toggleExpansionIcon={toggleExpansionIcon}
|
352
|
-
totalAvailableCount={fullData.length}
|
353
325
|
virtualizedRows={virtualizedRows}
|
354
326
|
>
|
355
327
|
<React.Fragment>
|
@@ -361,14 +333,24 @@ const AdvancedTable = (props: AdvancedTableProps) => {
|
|
361
333
|
type={columnVisibilityControl ? "column-visibility" : "row-selection"}
|
362
334
|
/>
|
363
335
|
|
364
|
-
{/*
|
365
|
-
|
366
|
-
|
367
|
-
{
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
336
|
+
{/* Main Table */}
|
337
|
+
<Table
|
338
|
+
className={`${loading ? "content-loading" : ""}`}
|
339
|
+
dark={dark}
|
340
|
+
dataTable
|
341
|
+
numberSpacing="tabular"
|
342
|
+
responsive="none"
|
343
|
+
{...tableProps}
|
344
|
+
>
|
345
|
+
{children ? (
|
346
|
+
children
|
347
|
+
) : (
|
348
|
+
<>
|
349
|
+
<TableHeader />
|
350
|
+
<TableBody />
|
351
|
+
</>
|
352
|
+
)}
|
353
|
+
</Table>
|
372
354
|
</React.Fragment>
|
373
355
|
</AdvancedTableProvider>
|
374
356
|
|
@@ -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, Pill
|
4
|
+
import { AdvancedTable, Pill } from "playbook-ui"
|
5
5
|
|
6
6
|
global.ResizeObserver = class {
|
7
7
|
observe() {}
|
@@ -632,47 +632,4 @@ test("columnStyling.cellAlignment sets each <td> align attribute as expected", (
|
|
632
632
|
|
633
633
|
const firstEnrollmentCell = screen.getAllByText("20")[0].closest("td");
|
634
634
|
expect(firstEnrollmentCell).toHaveAttribute("align", "left");
|
635
|
-
});
|
636
|
-
|
637
|
-
test("renders virtualized table rows and header", () => {
|
638
|
-
render(
|
639
|
-
<AdvancedTable
|
640
|
-
columnDefinitions={columnDefinitions}
|
641
|
-
data={{ testid: testId }}
|
642
|
-
tableData={MOCK_DATA_WITH_ID}
|
643
|
-
virtualizedRows
|
644
|
-
/>
|
645
|
-
)
|
646
|
-
|
647
|
-
const kit = screen.getByTestId(testId)
|
648
|
-
|
649
|
-
const virtualizedHeader = kit.querySelector('.virtualized-header-row-header')
|
650
|
-
expect(virtualizedHeader).toBeInTheDocument()
|
651
|
-
|
652
|
-
const virtualizedRows = kit.querySelectorAll('.virtualized-table-row')
|
653
|
-
expect(virtualizedRows.length).toBeLessThan(MOCK_DATA_WITH_ID.length)
|
654
|
-
})
|
655
|
-
|
656
|
-
test("rowStyling prop works as expected", () => {
|
657
|
-
const rowStyling = [
|
658
|
-
{
|
659
|
-
rowId: "1",
|
660
|
-
backgroundColor: colors.white,
|
661
|
-
fontColor: colors.black
|
662
|
-
},
|
663
|
-
];
|
664
|
-
|
665
|
-
render(
|
666
|
-
<AdvancedTable
|
667
|
-
columnDefinitions={columnDefinitions}
|
668
|
-
data={{ testid: testId }}
|
669
|
-
rowStyling={rowStyling}
|
670
|
-
tableData={MOCK_DATA_WITH_ID}
|
671
|
-
/>
|
672
|
-
)
|
673
|
-
|
674
|
-
const kit = screen.getByTestId(testId)
|
675
|
-
const tableBody = kit.querySelector('tbody')
|
676
|
-
const row1 = tableBody.querySelector('tr:nth-child(1)')
|
677
|
-
expect(row1).toHaveStyle({backgroundColor: colors.white, color: colors.black})
|
678
|
-
})
|
635
|
+
});
|
@@ -51,7 +51,7 @@
|
|
51
51
|
]
|
52
52
|
%>
|
53
53
|
|
54
|
-
<%= pb_rails("advanced_table", props: { table_data: @table_data, column_definitions: column_definitions
|
54
|
+
<%= pb_rails("advanced_table", props: { table_data: @table_data, column_definitions: column_definitions }) do %>
|
55
55
|
<%= pb_rails("advanced_table/table_header", props: { column_definitions: column_definitions }) %>
|
56
56
|
<%= pb_rails("advanced_table/table_body", props: { id: "beta_sort", table_data: @table_data, column_definitions: column_definitions, enable_toggle_expansion: "all" }) %>
|
57
57
|
<% end %>
|
data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_beta_subrow_headers.html.erb
CHANGED
@@ -34,7 +34,7 @@
|
|
34
34
|
subrow_headers = ["Quarter", "Month", "Day"]
|
35
35
|
%>
|
36
36
|
|
37
|
-
<%= pb_rails("advanced_table", props: { table_data: @table_data, column_definitions: column_definitions
|
37
|
+
<%= pb_rails("advanced_table", props: { table_data: @table_data, column_definitions: column_definitions }) do %>
|
38
38
|
<%= pb_rails("advanced_table/table_header", props: { column_definitions: column_definitions }) %>
|
39
39
|
<%= pb_rails("advanced_table/table_body", props: { id: "test_table", table_data: @table_data, column_definitions: column_definitions, subrow_headers: subrow_headers, enable_toggle_expansion: "all" }) %>
|
40
40
|
<% end %>
|
data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_border_color_rails.html.erb
CHANGED
@@ -55,4 +55,4 @@
|
|
55
55
|
},
|
56
56
|
] %>
|
57
57
|
|
58
|
-
<%= pb_rails("advanced_table", props: { id: "
|
58
|
+
<%= pb_rails("advanced_table", props: { id: "beta_table_with_muilti_headers", table_data: @table_data, column_definitions: column_definitions, column_group_border_color: "text_lt_default", table_props: { vertical_border: true } }) %>
|
@@ -30,4 +30,4 @@
|
|
30
30
|
}
|
31
31
|
] %>
|
32
32
|
|
33
|
-
<%= pb_rails("advanced_table", props: { id: "
|
33
|
+
<%= pb_rails("advanced_table", props: { id: "beta_table", table_data: @table_data, column_definitions: column_definitions, loading: true }) %>
|
@@ -1,7 +1,5 @@
|
|
1
|
-
Use the `pinnedRows` prop to pin specific rows to the top of an Advanced Table. Pinned rows will remain at the top when scrolling through table data and
|
1
|
+
Use the `pinnedRows` prop to pin specific rows to the top of an Advanced Table. Pinned rows will remain at the top when scrolling through table data and reorganizing via sorting.
|
2
2
|
|
3
|
-
**NOTE:**
|
3
|
+
**NOTE:** This prop is in Beta. Current Requirements for V1:
|
4
4
|
- Sticky header required: Pinned rows must be used with `sticky: true` via `tableProps` (works with both responsive and non-responsive tables)
|
5
|
-
- Row ids required:
|
6
|
-
- `pinnedRows` takes an array of row ids to the `top` property as shown in the code snippet below.
|
7
|
-
- For expandable rows, use the parent id in `pinnedRows`, all its children will automatically be pinned with it. If id for a child is passed in without parent being pinned, nothing will be pinned.
|
5
|
+
- Row ids required: Pass an array of row ids to the `top` property. For expandable rows, both parent and all its child row ids must be included individually
|
data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_actions.jsx
CHANGED
@@ -47,14 +47,14 @@ const CustomActions = () => {
|
|
47
47
|
<CircleIconButton
|
48
48
|
icon="file-csv"
|
49
49
|
onClick={() =>
|
50
|
-
alert(rowIds.length === 0 ? "No Selection Made" :
|
50
|
+
alert(rowIds.length === 0 ? "No Selection Made" : `Row ids ${rowIds.join(", ")} will be exported!`)
|
51
51
|
}
|
52
52
|
variant="link"
|
53
53
|
/>
|
54
54
|
<CircleIconButton
|
55
55
|
icon="trash-alt"
|
56
56
|
onClick={() =>
|
57
|
-
alert(rowIds.length === 0 ? "No Selection Made" :
|
57
|
+
alert(rowIds.length === 0 ? "No Selection Made" : `Row ids ${rowIds.join(", ")} will be deleted!`)
|
58
58
|
}
|
59
59
|
variant="link"
|
60
60
|
/>
|
@@ -88,11 +88,10 @@ actions = [
|
|
88
88
|
if (!selectedRowIds || selectedRowIds.length === 0) {
|
89
89
|
alert('No Selection Made');
|
90
90
|
} else {
|
91
|
-
const selectedRowsString = selectedRowIds.join(', ');
|
92
91
|
if (actionType === 'export') {
|
93
|
-
alert(
|
92
|
+
alert(`Row ids ${selectedRowIds.join(', ')} will be exported!`);
|
94
93
|
} else if (actionType === 'delete') {
|
95
|
-
alert(
|
94
|
+
alert(`Row ids ${selectedRowIds.join(', ')} will be deleted!`);
|
96
95
|
}
|
97
96
|
}
|
98
97
|
};
|
data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header.html.erb
CHANGED
@@ -30,4 +30,4 @@
|
|
30
30
|
}
|
31
31
|
] %>
|
32
32
|
|
33
|
-
<%= pb_rails("advanced_table", props: { id: "
|
33
|
+
<%= pb_rails("advanced_table", props: { id: "table_props_table", table_data: @table_data, column_definitions: column_definitions, max_height: "xs", table_props: { sticky: true }}) %>
|
@@ -59,7 +59,5 @@ examples:
|
|
59
59
|
- advanced_table_column_visibility_multi: Column Visibility Control with Multi-Header Columns
|
60
60
|
- advanced_table_pinned_rows: Pinned Rows
|
61
61
|
- advanced_table_scrollbar_none: Advanced Table Scrollbar None
|
62
|
-
- advanced_table_row_styling: Row Styling
|
63
62
|
- advanced_table_column_styling: Column Styling
|
64
63
|
- advanced_table_column_styling_column_headers: Column Styling with Multiple Headers
|
65
|
-
- advanced_table_infinite_scroll: Infinite Scroll
|
@@ -34,7 +34,5 @@ export { default as AdvancedTableColumnVisibilityMulti } from './_advanced_table
|
|
34
34
|
export { default as AdvancedTableColumnVisibilityWithState } from './_advanced_table_column_visibility_with_state.jsx'
|
35
35
|
export { default as AdvancedTablePinnedRows } from './_advanced_table_pinned_rows.jsx'
|
36
36
|
export { default as AdvancedTableScrollbarNone} from './_advanced_table_scrollbar_none.jsx'
|
37
|
-
export { default as AdvancedTableRowStyling } from './_advanced_table_row_styling.jsx'
|
38
37
|
export { default as AdvancedTableColumnStyling } from './_advanced_table_column_styling.jsx'
|
39
|
-
export { default as AdvancedTableColumnStylingColumnHeaders } from './_advanced_table_column_styling_column_headers.jsx'
|
40
|
-
export { default as AdvancedTableInfiniteScroll} from './_advanced_table_infinite_scroll.jsx'
|
38
|
+
export { default as AdvancedTableColumnStylingColumnHeaders } from './_advanced_table_column_styling_column_headers.jsx'
|
@@ -266,25 +266,6 @@ export default class PbAdvancedTable extends PbEnhancedElement {
|
|
266
266
|
this.updateTableSelectedRowsAttribute();
|
267
267
|
});
|
268
268
|
}
|
269
|
-
this.addBorderRadiusOnLastVisibleRow()
|
270
|
-
}
|
271
|
-
|
272
|
-
addBorderRadiusOnLastVisibleRow() {
|
273
|
-
const parentElement = this.element.closest('.pb_advanced_table');
|
274
|
-
|
275
|
-
const table = document.getElementById(parentElement.id);
|
276
|
-
|
277
|
-
if (table) {
|
278
|
-
const visibleRows = table.querySelectorAll('tr.is-visible, tr:not(.toggle-content)');
|
279
|
-
|
280
|
-
visibleRows.forEach(row => row.classList.remove('last-visible-row'));
|
281
|
-
|
282
|
-
const lastVisibleRow = visibleRows[visibleRows.length - 1];
|
283
|
-
|
284
|
-
if (lastVisibleRow) {
|
285
|
-
lastVisibleRow.classList.add('last-visible-row');
|
286
|
-
}
|
287
|
-
}
|
288
269
|
}
|
289
270
|
|
290
271
|
|
@@ -386,8 +367,6 @@ export default class PbAdvancedTable extends PbEnhancedElement {
|
|
386
367
|
row.classList.toggle("bg-silver", !isVisible);
|
387
368
|
row.classList.toggle("bg-white", isVisible);
|
388
369
|
}
|
389
|
-
|
390
|
-
this.addBorderRadiusOnLastVisibleRow();
|
391
370
|
}
|
392
371
|
|
393
372
|
displayDownArrow() {
|
@@ -77,12 +77,12 @@ test('returns correct icon', () => {
|
|
77
77
|
|
78
78
|
expect(screen.getByTestId('test-cell').querySelector('.pb_custom_icon')).toBeInTheDocument()
|
79
79
|
expect(screen.getByTestId('test-home').querySelector('.pb_custom_icon')).toBeInTheDocument()
|
80
|
-
expect(screen.getByTestId('test-work').querySelector('.
|
80
|
+
expect(screen.getByTestId('test-work').querySelector('.pb_icon_kit')).toHaveClass('fa-phone-office')
|
81
81
|
expect(screen.getByTestId('test-work-cell').querySelector('.pb_custom_icon')).toBeInTheDocument()
|
82
82
|
expect(screen.getByTestId('test-email').querySelector('.pb_custom_icon')).toBeInTheDocument()
|
83
83
|
expect(screen.getByTestId('test-wrong-phone').querySelector('.pb_custom_icon')).toBeInTheDocument()
|
84
84
|
expect(screen.getByTestId('test-wrong-type').querySelector('.pb_custom_icon')).toBeInTheDocument()
|
85
|
-
expect(screen.getByTestId('test-extension').querySelector('.
|
85
|
+
expect(screen.getByTestId('test-extension').querySelector('.pb_icon_kit')).toHaveClass('fa-phone-plus')
|
86
86
|
expect(screen.getByTestId('test-empty').querySelector('.pb_custom_icon')).toBeInTheDocument()
|
87
87
|
})
|
88
88
|
|
@@ -1,8 +1,8 @@
|
|
1
1
|
<%
|
2
2
|
options = [
|
3
|
-
{ label: 'United States', value: '
|
4
|
-
{ label: 'Canada', value: '
|
5
|
-
{ label: 'Pakistan', value: '
|
3
|
+
{ label: 'United States', value: 'United States', id: 'us' },
|
4
|
+
{ label: 'Canada', value: 'Canada', id: 'ca' },
|
5
|
+
{ label: 'Pakistan', value: 'Pakistan', id: 'pk' },
|
6
6
|
]
|
7
7
|
|
8
8
|
%>
|
@@ -5,20 +5,17 @@ const DropdownBlankSelection = (props) => {
|
|
5
5
|
const options = [
|
6
6
|
{
|
7
7
|
label: "United States",
|
8
|
-
value: "
|
9
|
-
id: "us"
|
8
|
+
value: "United States",
|
10
9
|
},
|
11
10
|
{
|
12
11
|
label: "Canada",
|
13
|
-
value: "
|
14
|
-
id: "ca"
|
12
|
+
value: "Canada",
|
15
13
|
},
|
16
14
|
{
|
17
15
|
label: "Pakistan",
|
18
|
-
value: "
|
19
|
-
id: "pk"
|
16
|
+
value: "Pakistan",
|
20
17
|
}
|
21
|
-
];
|
18
|
+
];
|
22
19
|
|
23
20
|
return (
|
24
21
|
<>
|
@@ -6,18 +6,15 @@ import Dropdown from '../../pb_dropdown/_dropdown'
|
|
6
6
|
const options = [
|
7
7
|
{
|
8
8
|
label: "United States",
|
9
|
-
value: "
|
10
|
-
id: "us"
|
9
|
+
value: "United States",
|
11
10
|
},
|
12
11
|
{
|
13
12
|
label: "Canada",
|
14
|
-
value: "
|
15
|
-
id: "ca"
|
13
|
+
value: "Canada",
|
16
14
|
},
|
17
15
|
{
|
18
16
|
label: "Pakistan",
|
19
|
-
value: "
|
20
|
-
id: "pk"
|
17
|
+
value: "Pakistan",
|
21
18
|
}
|
22
19
|
]
|
23
20
|
|
@@ -6,18 +6,15 @@ const DropdownDefault = (props) => {
|
|
6
6
|
const options = [
|
7
7
|
{
|
8
8
|
label: "United States",
|
9
|
-
value: "
|
10
|
-
id: "us"
|
9
|
+
value: "United States",
|
11
10
|
},
|
12
11
|
{
|
13
12
|
label: "Canada",
|
14
|
-
value: "
|
15
|
-
id: "ca"
|
13
|
+
value: "Canada",
|
16
14
|
},
|
17
15
|
{
|
18
16
|
label: "Pakistan",
|
19
|
-
value: "
|
20
|
-
id: "pk"
|
17
|
+
value: "Pakistan",
|
21
18
|
}
|
22
19
|
];
|
23
20
|
|
@@ -1,8 +1,8 @@
|
|
1
1
|
<%
|
2
2
|
options = [
|
3
|
-
{ label: 'United States', value: '
|
4
|
-
{ label: 'Canada', value: '
|
5
|
-
{ label: 'Pakistan', value: '
|
3
|
+
{ label: 'United States', value: 'United States', id: 'us' },
|
4
|
+
{ label: 'Canada', value: 'Canada', id: 'ca' },
|
5
|
+
{ label: 'Pakistan', value: 'Pakistan', id: 'pk' },
|
6
6
|
]
|
7
7
|
|
8
8
|
%>
|
@@ -1,8 +1,8 @@
|
|
1
1
|
<%
|
2
2
|
options = [
|
3
|
-
{ label: 'United States', value: '
|
4
|
-
{ label: 'Canada', value: '
|
5
|
-
{ label: 'Pakistan', value: '
|
3
|
+
{ label: 'United States', value: 'United States', id: 'us' },
|
4
|
+
{ label: 'Canada', value: 'Canada', id: 'ca' },
|
5
|
+
{ label: 'Pakistan', value: 'Pakistan', id: 'pk' },
|
6
6
|
]
|
7
7
|
|
8
8
|
%>
|
@@ -5,20 +5,17 @@ const DropdownDefaultValue = (props) => {
|
|
5
5
|
const options = [
|
6
6
|
{
|
7
7
|
label: "United States",
|
8
|
-
value: "
|
9
|
-
id: "us"
|
8
|
+
value: "United States",
|
10
9
|
},
|
11
10
|
{
|
12
11
|
label: "Canada",
|
13
|
-
value: "
|
14
|
-
id: "ca"
|
12
|
+
value: "Canada",
|
15
13
|
},
|
16
14
|
{
|
17
15
|
label: "Pakistan",
|
18
|
-
value: "
|
19
|
-
id: "pk"
|
16
|
+
value: "Pakistan",
|
20
17
|
}
|
21
|
-
];
|
18
|
+
];
|
22
19
|
|
23
20
|
return (
|
24
21
|
<>
|
@@ -1,8 +1,8 @@
|
|
1
1
|
<%
|
2
2
|
options = [
|
3
|
-
{ label: 'United States', value: '
|
4
|
-
{ label: 'Canada', value: '
|
5
|
-
{ label: 'Pakistan', value: '
|
3
|
+
{ label: 'United States', value: 'United States', id: 'us' },
|
4
|
+
{ label: 'Canada', value: 'Canada', id: 'ca' },
|
5
|
+
{ label: 'Pakistan', value: 'Pakistan', id: 'pk' },
|
6
6
|
]
|
7
7
|
%>
|
8
8
|
|
@@ -10,20 +10,17 @@ const DropdownError = (props) => {
|
|
10
10
|
const options = [
|
11
11
|
{
|
12
12
|
label: "United States",
|
13
|
-
value: "
|
14
|
-
id: "us"
|
13
|
+
value: "United States",
|
15
14
|
},
|
16
15
|
{
|
17
16
|
label: "Canada",
|
18
|
-
value: "
|
19
|
-
id: "ca"
|
17
|
+
value: "Canada",
|
20
18
|
},
|
21
19
|
{
|
22
20
|
label: "Pakistan",
|
23
|
-
value: "
|
24
|
-
id: "pk"
|
21
|
+
value: "Pakistan",
|
25
22
|
}
|
26
|
-
]
|
23
|
+
]
|
27
24
|
|
28
25
|
return (
|
29
26
|
<>
|
@@ -6,48 +6,39 @@ const DropdownMultiSelect = (props) => {
|
|
6
6
|
const options = [
|
7
7
|
{
|
8
8
|
label: "United States",
|
9
|
-
value: "
|
10
|
-
id: "us"
|
9
|
+
value: "United States",
|
11
10
|
},
|
12
11
|
{
|
13
|
-
|
14
|
-
|
15
|
-
id: "gb"
|
12
|
+
label: "United Kingdom",
|
13
|
+
value: "United Kingdom",
|
16
14
|
},
|
17
15
|
{
|
18
16
|
label: "Canada",
|
19
|
-
value: "
|
20
|
-
id: "ca"
|
17
|
+
value: "Canada",
|
21
18
|
},
|
22
19
|
{
|
23
20
|
label: "Pakistan",
|
24
|
-
value: "
|
25
|
-
id: "pk"
|
21
|
+
value: "Pakistan",
|
26
22
|
},
|
27
23
|
{
|
28
24
|
label: "India",
|
29
|
-
value: "
|
30
|
-
id: "in"
|
25
|
+
value: "India",
|
31
26
|
},
|
32
27
|
{
|
33
28
|
label: "Australia",
|
34
|
-
value: "
|
35
|
-
id: "au"
|
29
|
+
value: "Australia",
|
36
30
|
},
|
37
31
|
{
|
38
32
|
label: "New Zealand",
|
39
|
-
value: "
|
40
|
-
id: "nz"
|
33
|
+
value: "New Zealand",
|
41
34
|
},
|
42
35
|
{
|
43
36
|
label: "Italy",
|
44
|
-
value: "
|
45
|
-
id: "it"
|
37
|
+
value: "Italy",
|
46
38
|
},
|
47
39
|
{
|
48
40
|
label: "Spain",
|
49
|
-
value: "
|
50
|
-
id: "es"
|
41
|
+
value: "Spain",
|
51
42
|
}
|
52
43
|
];
|
53
44
|
|