playbook_ui 18.4.0.pre.rc.2 → 18.4.0.pre.rc.4
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/TableActionBar.tsx +62 -2
- data/app/pb_kits/playbook/pb_advanced_table/SubKits/TableHeader.tsx +31 -0
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +11 -0
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table.test.jsx +584 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_visibility.jsx +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_visibility.md +5 -2
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_visibility_custom.md +3 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_visibility_multi_select_all.jsx +82 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_visibility_multi_select_all.md +3 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_visibility_with_state.md +3 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_playground.json +7 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +1 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_advanced_table/kit.schema.json +36 -16
- data/app/pb_kits/playbook/pb_avatar/kit.schema.json +22 -10
- data/app/pb_kits/playbook/pb_background/docs/_playground.json +1 -0
- data/app/pb_kits/playbook/pb_background/kit.schema.json +10 -3
- data/app/pb_kits/playbook/pb_badge/docs/_playground.json +2 -0
- data/app/pb_kits/playbook/pb_badge/kit.schema.json +27 -13
- data/app/pb_kits/playbook/pb_body/docs/_playground.json +3 -3
- data/app/pb_kits/playbook/pb_body/kit.schema.json +14 -5
- data/app/pb_kits/playbook/pb_button/_button.tsx +3 -1
- data/app/pb_kits/playbook/pb_button/button.rb +3 -0
- data/app/pb_kits/playbook/pb_button/button.test.js +154 -0
- data/app/pb_kits/playbook/pb_button/docs/_button_options_rails.md +5 -0
- data/app/pb_kits/playbook/pb_button/docs/_button_options_react.md +9 -0
- data/app/pb_kits/playbook/pb_button/docs/_playground.json +4 -2
- data/app/pb_kits/playbook/pb_button/docs/_playground.overrides.json +1 -1
- data/app/pb_kits/playbook/pb_button/docs/example.yml +1 -1
- data/app/pb_kits/playbook/pb_button/kit.schema.json +31 -27
- data/app/pb_kits/playbook/pb_caption/kit.schema.json +17 -7
- data/app/pb_kits/playbook/pb_card/docs/_playground.json +1 -0
- data/app/pb_kits/playbook/pb_card/kit.schema.json +2 -1
- data/app/pb_kits/playbook/pb_checkbox/docs/_playground.json +6 -1
- data/app/pb_kits/playbook/pb_checkbox/kit.schema.json +10 -5
- data/app/pb_kits/playbook/pb_contact/docs/_playground.json +1 -0
- data/app/pb_kits/playbook/pb_contact/kit.schema.json +2 -1
- data/app/pb_kits/playbook/pb_copy_button/docs/_playground.json +5 -1
- data/app/pb_kits/playbook/pb_copy_button/kit.schema.json +10 -5
- data/app/pb_kits/playbook/pb_currency/docs/_playground.json +1 -1
- data/app/pb_kits/playbook/pb_currency/kit.schema.json +6 -2
- data/app/pb_kits/playbook/pb_dashboard_value/docs/_playground.json +2 -2
- data/app/pb_kits/playbook/pb_dashboard_value/kit.schema.json +4 -2
- data/app/pb_kits/playbook/pb_date/docs/_playground.json +1 -0
- data/app/pb_kits/playbook/pb_date/kit.schema.json +16 -7
- data/app/pb_kits/playbook/pb_date_picker/docs/_playground.json +4 -1
- data/app/pb_kits/playbook/pb_date_picker/kit.schema.json +32 -14
- data/app/pb_kits/playbook/pb_date_range_inline/docs/_playground.json +1 -0
- data/app/pb_kits/playbook/pb_date_range_inline/kit.schema.json +2 -1
- data/app/pb_kits/playbook/pb_date_time/docs/_playground.json +2 -1
- data/app/pb_kits/playbook/pb_date_time/kit.schema.json +2 -1
- data/app/pb_kits/playbook/pb_date_time_stacked/docs/_playground.json +1 -0
- data/app/pb_kits/playbook/pb_date_time_stacked/kit.schema.json +2 -1
- data/app/pb_kits/playbook/pb_detail/docs/_playground.json +2 -1
- data/app/pb_kits/playbook/pb_detail/kit.schema.json +2 -1
- data/app/pb_kits/playbook/pb_dialog/docs/_playground.json +1 -1
- data/app/pb_kits/playbook/pb_dialog/kit.schema.json +22 -9
- data/app/pb_kits/playbook/pb_distribution_bar/docs/_playground.json +2 -2
- data/app/pb_kits/playbook/pb_distribution_bar/kit.schema.json +2 -1
- data/app/pb_kits/playbook/pb_dropdown/docs/_playground.json +7 -2
- data/app/pb_kits/playbook/pb_dropdown/kit.schema.json +18 -8
- data/app/pb_kits/playbook/pb_empty_state/docs/_playground.json +1 -1
- data/app/pb_kits/playbook/pb_empty_state/kit.schema.json +2 -1
- data/app/pb_kits/playbook/pb_file_upload/docs/_playground.json +3 -2
- data/app/pb_kits/playbook/pb_file_upload/kit.schema.json +8 -3
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_playground.json +4 -4
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/kit.schema.json +6 -3
- data/app/pb_kits/playbook/pb_flex/docs/_playground.json +3 -0
- data/app/pb_kits/playbook/pb_flex/kit.schema.json +27 -12
- data/app/pb_kits/playbook/pb_form/kit.schema.json +1 -6
- data/app/pb_kits/playbook/pb_form_pill/docs/_playground.json +3 -0
- data/app/pb_kits/playbook/pb_form_pill/kit.schema.json +6 -3
- data/app/pb_kits/playbook/pb_full_screen/docs/_playground.json +3 -3
- data/app/pb_kits/playbook/pb_full_screen/kit.schema.json +8 -4
- data/app/pb_kits/playbook/pb_hashtag/docs/_playground.json +2 -2
- data/app/pb_kits/playbook/pb_hashtag/kit.schema.json +2 -1
- data/app/pb_kits/playbook/pb_highlight/kit.schema.json +2 -1
- data/app/pb_kits/playbook/pb_icon/docs/_playground.json +2 -2
- data/app/pb_kits/playbook/pb_icon/kit.schema.json +30 -13
- data/app/pb_kits/playbook/pb_icon_circle/docs/_playground.json +2 -2
- data/app/pb_kits/playbook/pb_icon_circle/kit.schema.json +2 -1
- data/app/pb_kits/playbook/pb_icon_stat_value/docs/_playground.json +3 -2
- data/app/pb_kits/playbook/pb_icon_stat_value/kit.schema.json +4 -2
- data/app/pb_kits/playbook/pb_image/_image.tsx +2 -2
- data/app/pb_kits/playbook/pb_image/docs/_playground.json +27 -27
- data/app/pb_kits/playbook/pb_image/kit.schema.json +56 -24
- data/app/pb_kits/playbook/pb_label_value/docs/_playground.json +2 -2
- data/app/pb_kits/playbook/pb_label_value/kit.schema.json +2 -1
- data/app/pb_kits/playbook/pb_layout/docs/_playground.json +2 -2
- data/app/pb_kits/playbook/pb_layout/kit.schema.json +43 -20
- data/app/pb_kits/playbook/pb_legend/docs/_playground.json +2 -2
- data/app/pb_kits/playbook/pb_legend/kit.schema.json +2 -1
- data/app/pb_kits/playbook/pb_lightbox/_lightbox.tsx +2 -2
- data/app/pb_kits/playbook/pb_lightbox/kit.schema.json +84 -0
- data/app/pb_kits/playbook/pb_link/docs/_playground.json +6 -3
- data/app/pb_kits/playbook/pb_link/kit.schema.json +14 -6
- data/app/pb_kits/playbook/pb_list/docs/_playground.json +2 -2
- data/app/pb_kits/playbook/pb_list/kit.schema.json +2 -1
- data/app/pb_kits/playbook/pb_loading_inline/docs/_playground.json +0 -1
- data/app/pb_kits/playbook/pb_loading_inline/kit.schema.json +4 -1
- data/app/pb_kits/playbook/pb_map/kit.schema.json +4 -6
- data/app/pb_kits/playbook/pb_message/kit.schema.json +2 -1
- data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.tsx +4 -1
- data/app/pb_kits/playbook/pb_multiple_users/docs/_playground.json +2 -1
- data/app/pb_kits/playbook/pb_multiple_users/kit.schema.json +19 -11
- data/app/pb_kits/playbook/pb_multiple_users_stacked/docs/_playground.json +1 -0
- data/app/pb_kits/playbook/pb_multiple_users_stacked/kit.schema.json +2 -1
- data/app/pb_kits/playbook/pb_nav/docs/_playground.json +2 -0
- data/app/pb_kits/playbook/pb_nav/kit.schema.json +4 -2
- data/app/pb_kits/playbook/pb_overlay/docs/_playground.json +3 -3
- data/app/pb_kits/playbook/pb_overlay/kit.schema.json +22 -12
- data/app/pb_kits/playbook/pb_pagination/kit.schema.json +6 -3
- data/app/pb_kits/playbook/pb_passphrase/docs/_playground.json +6 -4
- data/app/pb_kits/playbook/pb_passphrase/kit.schema.json +10 -5
- data/app/pb_kits/playbook/pb_pb_gauge_chart/kit.schema.json +2 -1
- data/app/pb_kits/playbook/pb_person_contact/docs/_playground.json +3 -3
- data/app/pb_kits/playbook/pb_person_contact/kit.schema.json +2 -1
- data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_validation.html.erb +1 -1
- data/app/pb_kits/playbook/pb_phone_number_input/docs/_playground.json +3 -0
- data/app/pb_kits/playbook/pb_phone_number_input/kit.schema.json +6 -3
- data/app/pb_kits/playbook/pb_popover/docs/_playground.json +1 -2
- data/app/pb_kits/playbook/pb_popover/kit.schema.json +18 -9
- data/app/pb_kits/playbook/pb_progress_pills/docs/_playground.json +1 -0
- data/app/pb_kits/playbook/pb_progress_pills/kit.schema.json +2 -1
- data/app/pb_kits/playbook/pb_progress_simple/docs/_playground.json +3 -2
- data/app/pb_kits/playbook/pb_progress_simple/kit.schema.json +4 -2
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_playground.json +9 -2
- data/app/pb_kits/playbook/pb_rich_text_editor/kit.schema.json +18 -9
- data/app/pb_kits/playbook/pb_selectable_card/docs/_playground.json +1 -0
- data/app/pb_kits/playbook/pb_selectable_card/kit.schema.json +4 -2
- data/app/pb_kits/playbook/pb_selectable_card_icon/docs/_playground.json +1 -0
- data/app/pb_kits/playbook/pb_selectable_card_icon/kit.schema.json +2 -1
- data/app/pb_kits/playbook/pb_source/docs/_playground.json +1 -0
- data/app/pb_kits/playbook/pb_source/kit.schema.json +2 -1
- data/app/pb_kits/playbook/pb_star_rating/docs/_playground.json +1 -0
- data/app/pb_kits/playbook/pb_star_rating/kit.schema.json +15 -7
- data/app/pb_kits/playbook/pb_stat_change/docs/_playground.json +1 -0
- data/app/pb_kits/playbook/pb_stat_change/kit.schema.json +2 -1
- data/app/pb_kits/playbook/pb_stat_value/docs/_playground.json +3 -1
- data/app/pb_kits/playbook/pb_stat_value/kit.schema.json +2 -1
- data/app/pb_kits/playbook/pb_table/docs/_playground.json +5 -1
- data/app/pb_kits/playbook/pb_table/kit.schema.json +28 -11
- data/app/pb_kits/playbook/pb_text_input/docs/_playground.json +3 -0
- data/app/pb_kits/playbook/pb_text_input/kit.schema.json +22 -9
- data/app/pb_kits/playbook/pb_textarea/_textarea.tsx +4 -1
- data/app/pb_kits/playbook/pb_time/kit.schema.json +13 -5
- data/app/pb_kits/playbook/pb_time_picker/docs/_playground.json +1 -0
- data/app/pb_kits/playbook/pb_time_picker/kit.schema.json +2 -1
- data/app/pb_kits/playbook/pb_time_range_inline/kit.schema.json +12 -5
- data/app/pb_kits/playbook/pb_title/kit.schema.json +23 -10
- data/app/pb_kits/playbook/pb_title_count/docs/_playground.json +1 -0
- data/app/pb_kits/playbook/pb_title_count/kit.schema.json +2 -1
- data/app/pb_kits/playbook/pb_tooltip/docs/_playground.json +5 -1
- data/app/pb_kits/playbook/pb_tooltip/kit.schema.json +10 -5
- data/app/pb_kits/playbook/pb_typeahead/_typeahead.tsx +4 -1
- data/app/pb_kits/playbook/pb_user/docs/_playground.json +3 -1
- data/app/pb_kits/playbook/pb_user/kit.schema.json +19 -9
- data/app/pb_kits/playbook/pb_weekday_stacked/docs/_playground.json +1 -0
- data/app/pb_kits/playbook/pb_weekday_stacked/kit.schema.json +2 -1
- data/dist/ai/all-schemas.json +870 -375
- data/dist/ai/forms.json +1 -1
- data/dist/ai/index.json +10 -2
- data/dist/ai/kits/advanced_table.schema.json +36 -16
- data/dist/ai/kits/avatar.schema.json +21 -9
- data/dist/ai/kits/background.schema.json +10 -3
- data/dist/ai/kits/badge.schema.json +26 -12
- data/dist/ai/kits/body.schema.json +14 -5
- data/dist/ai/kits/button.schema.json +29 -25
- data/dist/ai/kits/caption.schema.json +17 -7
- data/dist/ai/kits/card.schema.json +2 -1
- data/dist/ai/kits/checkbox.schema.json +10 -5
- data/dist/ai/kits/contact.schema.json +2 -1
- data/dist/ai/kits/copy_button.schema.json +10 -5
- data/dist/ai/kits/currency.schema.json +6 -2
- data/dist/ai/kits/dashboard_value.schema.json +4 -2
- data/dist/ai/kits/date.schema.json +15 -6
- data/dist/ai/kits/date_picker.schema.json +31 -13
- data/dist/ai/kits/date_range_inline.schema.json +2 -1
- data/dist/ai/kits/date_time.schema.json +2 -1
- data/dist/ai/kits/date_time_stacked.schema.json +2 -1
- data/dist/ai/kits/detail.schema.json +2 -1
- data/dist/ai/kits/dialog.schema.json +22 -9
- data/dist/ai/kits/distribution_bar.schema.json +2 -1
- data/dist/ai/kits/dropdown.schema.json +18 -8
- data/dist/ai/kits/empty_state.schema.json +2 -1
- data/dist/ai/kits/file_upload.schema.json +8 -3
- data/dist/ai/kits/fixed_confirmation_toast.schema.json +6 -3
- data/dist/ai/kits/flex.schema.json +27 -12
- data/dist/ai/kits/form.schema.json +1 -6
- data/dist/ai/kits/form_pill.schema.json +6 -3
- data/dist/ai/kits/full_screen.schema.json +8 -4
- data/dist/ai/kits/hashtag.schema.json +2 -1
- data/dist/ai/kits/highlight.schema.json +2 -1
- data/dist/ai/kits/icon.schema.json +30 -13
- data/dist/ai/kits/icon_circle.schema.json +2 -1
- data/dist/ai/kits/icon_stat_value.schema.json +4 -2
- data/dist/ai/kits/image.schema.json +56 -24
- data/dist/ai/kits/label_value.schema.json +2 -1
- data/dist/ai/kits/layout.schema.json +43 -20
- data/dist/ai/kits/legend.schema.json +2 -1
- data/dist/ai/kits/lightbox.schema.json +86 -0
- data/dist/ai/kits/link.schema.json +14 -6
- data/dist/ai/kits/list.schema.json +2 -1
- data/dist/ai/kits/loading_inline.schema.json +4 -1
- data/dist/ai/kits/map.schema.json +4 -7
- data/dist/ai/kits/message.schema.json +2 -1
- data/dist/ai/kits/multiple_users.schema.json +19 -11
- data/dist/ai/kits/multiple_users_stacked.schema.json +2 -1
- data/dist/ai/kits/nav.schema.json +4 -2
- data/dist/ai/kits/overlay.schema.json +22 -12
- data/dist/ai/kits/pagination.schema.json +6 -3
- data/dist/ai/kits/passphrase.schema.json +10 -5
- data/dist/ai/kits/pb_gauge_chart.schema.json +2 -1
- data/dist/ai/kits/person_contact.schema.json +2 -1
- data/dist/ai/kits/phone_number_input.schema.json +6 -3
- data/dist/ai/kits/popover.schema.json +17 -8
- data/dist/ai/kits/progress_pills.schema.json +2 -1
- data/dist/ai/kits/progress_simple.schema.json +4 -2
- data/dist/ai/kits/rich_text_editor.schema.json +18 -9
- data/dist/ai/kits/selectable_card.schema.json +4 -2
- data/dist/ai/kits/selectable_card_icon.schema.json +2 -1
- data/dist/ai/kits/source.schema.json +2 -1
- data/dist/ai/kits/star_rating.schema.json +15 -7
- data/dist/ai/kits/stat_change.schema.json +2 -1
- data/dist/ai/kits/stat_value.schema.json +2 -1
- data/dist/ai/kits/table.schema.json +28 -11
- data/dist/ai/kits/text_input.schema.json +22 -9
- data/dist/ai/kits/time.schema.json +12 -4
- data/dist/ai/kits/time_picker.schema.json +2 -1
- data/dist/ai/kits/time_range_inline.schema.json +12 -5
- data/dist/ai/kits/title.schema.json +23 -10
- data/dist/ai/kits/title_count.schema.json +2 -1
- data/dist/ai/kits/tooltip.schema.json +10 -5
- data/dist/ai/kits/user.schema.json +19 -9
- data/dist/ai/kits/weekday_stacked.schema.json +2 -1
- data/dist/ai/visual-index.json +1 -1
- data/dist/chunks/{_typeahead-C3MN3apM.js → _typeahead-CkiAf8zx.js} +1 -1
- data/dist/chunks/vendor.js +2 -2
- data/dist/menu.yml +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/changelog_generator.rb +47 -21
- data/lib/playbook/connect_message_generator.rb +15 -2
- data/lib/playbook/version.rb +1 -1
- metadata +8 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1df28cd47b46eb68946cd5c67fcef11fe973280a276bdd99aba59edb92d0184c
|
|
4
|
+
data.tar.gz: c4ddd1d22951372fb5d19551130a59d7afcc4db65137c38b304759e0e163eb22
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 94368c60f1dc816e476d40b035cb568beac72aad355eba4c9442deaa15cec42555d4f128f81490e971b8b100747aebc07dc35e7c84651e04a0c533743cd1c5a7
|
|
7
|
+
data.tar.gz: 3dd28c6b45033189fd6923b9318fe8aa468cb3616009b6b96c346e7b3826cdba4298a094c25d844eaf336cfa7b54d89331fd1a0cba7d693327a988c2504889b1
|
|
@@ -105,7 +105,7 @@ const TableActionBar: React.FC<TableActionBarProps> = ({
|
|
|
105
105
|
}
|
|
106
106
|
};
|
|
107
107
|
return (
|
|
108
|
-
|
|
108
|
+
<React.Fragment key={node.id}>
|
|
109
109
|
<Checkbox
|
|
110
110
|
checked={allOn}
|
|
111
111
|
indeterminate={!allOn && someOn}
|
|
@@ -120,7 +120,7 @@ const TableActionBar: React.FC<TableActionBarProps> = ({
|
|
|
120
120
|
child.children ? renderGroup(child) : renderLeaf(child.id, child.label),
|
|
121
121
|
)}
|
|
122
122
|
</Flex>
|
|
123
|
-
|
|
123
|
+
</React.Fragment>
|
|
124
124
|
);
|
|
125
125
|
};
|
|
126
126
|
// ------------ End of column visibility logic --------
|
|
@@ -143,6 +143,47 @@ const TableActionBar: React.FC<TableActionBarProps> = ({
|
|
|
143
143
|
const handleShouldClose = (shouldClose: boolean) =>
|
|
144
144
|
setShowPopover(!shouldClose)
|
|
145
145
|
|
|
146
|
+
// Select All only changes columns listed in the popover that can be hidden.
|
|
147
|
+
// The first column and ids omitted by includeIds stay as they are.
|
|
148
|
+
// Skip the leaf walk unless the checkbox is enabled.
|
|
149
|
+
const selectAllRequested = columnVisibilityControl?.showSelectAll === true
|
|
150
|
+
const availableColumns = selectAllRequested
|
|
151
|
+
? tree.flatMap(gatherLeafIds).flatMap((id) => {
|
|
152
|
+
const column = table.getColumn(id)
|
|
153
|
+
return column?.getCanHide() ? [column] : []
|
|
154
|
+
})
|
|
155
|
+
: []
|
|
156
|
+
const allAvailableVisible =
|
|
157
|
+
availableColumns.length > 0 &&
|
|
158
|
+
availableColumns.every((column) => column.getIsVisible())
|
|
159
|
+
const someAvailableVisible = availableColumns.some((column) => column.getIsVisible())
|
|
160
|
+
const showSelectAll = availableColumns.length > 0
|
|
161
|
+
const selectAllLabel = allAvailableVisible ? "Deselect All" : "Select All"
|
|
162
|
+
|
|
163
|
+
// Uses the same updater form as toggleVisibility, so onChange gets the same kind of value.
|
|
164
|
+
const handleSelectAllChange = () => {
|
|
165
|
+
const selectAllVisibility = Object.fromEntries(
|
|
166
|
+
availableColumns.map((column) => [column.id, !allAvailableVisible])
|
|
167
|
+
)
|
|
168
|
+
table.setColumnVisibility((previousVisibility: { [id: string]: boolean }) => ({
|
|
169
|
+
...previousVisibility,
|
|
170
|
+
...selectAllVisibility,
|
|
171
|
+
}))
|
|
172
|
+
|
|
173
|
+
if (columnVisibilityControl?.onColumnVisibilityChange) {
|
|
174
|
+
const nextVisibility = { ...table.getState().columnVisibility, ...selectAllVisibility }
|
|
175
|
+
// Same shape as the single toggles: root column ids, groups visible if any leaf is visible
|
|
176
|
+
const updatedVisibilityState = table.getAllColumns().reduce((
|
|
177
|
+
acc: { [id: string]: boolean },
|
|
178
|
+
column: { getLeafColumns: () => { id: string }[]; id: string }
|
|
179
|
+
) => {
|
|
180
|
+
acc[column.id] = column.getLeafColumns().some((leaf) => nextVisibility[leaf.id] ?? true)
|
|
181
|
+
return acc
|
|
182
|
+
}, {})
|
|
183
|
+
columnVisibilityControl.onColumnVisibilityChange(updatedVisibilityState)
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
|
|
146
187
|
const popoverReference = (
|
|
147
188
|
<Tooltip
|
|
148
189
|
placement="top"
|
|
@@ -197,6 +238,25 @@ const TableActionBar: React.FC<TableActionBarProps> = ({
|
|
|
197
238
|
textAlign="center"
|
|
198
239
|
/>
|
|
199
240
|
<SectionSeparator paddingBottom="xs" />
|
|
241
|
+
{showSelectAll && (
|
|
242
|
+
<>
|
|
243
|
+
<Flex
|
|
244
|
+
cursor="pointer"
|
|
245
|
+
flexDirection="column"
|
|
246
|
+
paddingX="xs"
|
|
247
|
+
>
|
|
248
|
+
<Checkbox
|
|
249
|
+
aria={{ label: selectAllLabel }}
|
|
250
|
+
checked={allAvailableVisible}
|
|
251
|
+
indeterminate={!allAvailableVisible && someAvailableVisible}
|
|
252
|
+
onChange={handleSelectAllChange}
|
|
253
|
+
paddingBottom="xs"
|
|
254
|
+
text={selectAllLabel}
|
|
255
|
+
/>
|
|
256
|
+
</Flex>
|
|
257
|
+
<SectionSeparator paddingBottom="xs" />
|
|
258
|
+
</>
|
|
259
|
+
)}
|
|
200
260
|
{tree.map((node: VisibilityNode) => (
|
|
201
261
|
<Flex cursor="pointer"
|
|
202
262
|
flexDirection="column"
|
|
@@ -32,6 +32,7 @@ export const TableHeader = ({
|
|
|
32
32
|
...props
|
|
33
33
|
}: TableHeaderProps) => {
|
|
34
34
|
const {
|
|
35
|
+
columnVisibilityControl,
|
|
35
36
|
enableToggleExpansion,
|
|
36
37
|
handleExpandOrCollapse,
|
|
37
38
|
loading,
|
|
@@ -63,11 +64,40 @@ export const TableHeader = ({
|
|
|
63
64
|
`${responsive === "scroll" && "pinned-left"}`,
|
|
64
65
|
);
|
|
65
66
|
|
|
67
|
+
// TanStack drops header rows when every leaf in a group is hidden.
|
|
68
|
+
// Spacer rows keep that height only when Select All can hide a whole group.
|
|
69
|
+
const showSelectAll = columnVisibilityControl?.showSelectAll === true
|
|
70
|
+
let hiddenHeaderRowCount = 0
|
|
71
|
+
let spacerColSpan = 0
|
|
72
|
+
if (showSelectAll) {
|
|
73
|
+
const columnHeaderDepth = Math.max(
|
|
74
|
+
...table.getAllFlatColumns().map((column: GenericObject) => column.depth + 1)
|
|
75
|
+
)
|
|
76
|
+
hiddenHeaderRowCount = columnHeaderDepth - table.getHeaderGroups().length
|
|
77
|
+
spacerColSpan = table.getVisibleLeafColumns().length + (!hasAnySubRows && selectableRows ? 1 : 0)
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
const renderSpacerRows = (rowClassName?: string) =>
|
|
81
|
+
Array.from({ length: Math.max(0, hiddenHeaderRowCount) }, (_, index) => (
|
|
82
|
+
<tr
|
|
83
|
+
aria-hidden="true"
|
|
84
|
+
className={classnames("header-spacer-row", rowClassName)}
|
|
85
|
+
key={`header-spacer-${index}`}
|
|
86
|
+
>
|
|
87
|
+
{/* header-spacer-cell stays off .table-header-cells so width measurement and sticky-left styles skip it. */}
|
|
88
|
+
<th
|
|
89
|
+
className="header-spacer-cell"
|
|
90
|
+
colSpan={spacerColSpan}
|
|
91
|
+
/>
|
|
92
|
+
</tr>
|
|
93
|
+
))
|
|
94
|
+
|
|
66
95
|
const renderRegularTableHeader = () => (
|
|
67
96
|
<thead className={classes}
|
|
68
97
|
id={id}
|
|
69
98
|
ref={headerRef}
|
|
70
99
|
>
|
|
100
|
+
{renderSpacerRows()}
|
|
71
101
|
{table.getHeaderGroups().map((headerGroup: HeaderGroup<GenericObject>) => (
|
|
72
102
|
<tr key={`${headerGroup.id}-headerGroup`}>
|
|
73
103
|
{!hasAnySubRows && selectableRows && (
|
|
@@ -109,6 +139,7 @@ export const TableHeader = ({
|
|
|
109
139
|
id={id}
|
|
110
140
|
ref={headerRef}
|
|
111
141
|
>
|
|
142
|
+
{renderSpacerRows("virtualized-header-row-header")}
|
|
112
143
|
{table.getHeaderGroups().map((headerGroup: HeaderGroup<GenericObject>) => (
|
|
113
144
|
<tr
|
|
114
145
|
className="virtualized-header-row-header"
|
|
@@ -251,6 +251,10 @@
|
|
|
251
251
|
th[colspan]:not([colspan="1"]) {
|
|
252
252
|
border-right: 1px solid $border_light !important;
|
|
253
253
|
}
|
|
254
|
+
// Spacer rows have no text, so give them one line of header height.
|
|
255
|
+
.header-spacer-cell::before {
|
|
256
|
+
content: "\00a0";
|
|
257
|
+
}
|
|
254
258
|
.table-header-cells-custom {
|
|
255
259
|
text-align: center;
|
|
256
260
|
[class^="pb_checkbox_kit"] .pb_checkbox_label {
|
|
@@ -292,6 +296,13 @@
|
|
|
292
296
|
.pb_tooltip_kit {
|
|
293
297
|
font-weight: unset;
|
|
294
298
|
text-transform: unset;
|
|
299
|
+
|
|
300
|
+
.tooltip_tooltip {
|
|
301
|
+
font-size: initial;
|
|
302
|
+
font-weight: normal;
|
|
303
|
+
letter-spacing: normal;
|
|
304
|
+
text-transform: none;
|
|
305
|
+
}
|
|
295
306
|
}
|
|
296
307
|
}
|
|
297
308
|
|