playbook_ui 15.0.0.pre.alpha.PLAY2316advancedtablerightsidedoubleborder10726 → 15.0.0.pre.alpha.PLAY2361datepickerarrownav10322
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/_playbook.scss +0 -3
- data/app/pb_kits/playbook/pb_advanced_table/Components/RegularTableView.tsx +11 -24
- data/app/pb_kits/playbook/pb_advanced_table/Components/VirtualizedTableView.tsx +7 -7
- data/app/pb_kits/playbook/pb_advanced_table/Utilities/RowUtils.ts +2 -7
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +13 -67
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_headers_vertical_border.html.erb +2 -4
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_headers_vertical_border.jsx +9 -12
- data/app/pb_kits/playbook/pb_bar_graph/docs/example.yml +1 -0
- data/app/pb_kits/playbook/pb_card/_card.scss +4 -12
- data/app/pb_kits/playbook/pb_card/_card.tsx +3 -3
- data/app/pb_kits/playbook/pb_card/_card_mixin.scss +0 -10
- data/app/pb_kits/playbook/pb_card/docs/_card_highlight.html.erb +0 -3
- data/app/pb_kits/playbook/pb_card/docs/_card_highlight.jsx +0 -8
- data/app/pb_kits/playbook/pb_circle_icon_button/_circle_icon_button.tsx +0 -2
- data/app/pb_kits/playbook/pb_circle_icon_button/circle_icon_button.html.erb +0 -1
- data/app/pb_kits/playbook/pb_collapsible/__snapshots__/collapsible.test.js.snap +0 -1
- data/app/pb_kits/playbook/pb_contact/_contact.tsx +0 -5
- data/app/pb_kits/playbook/pb_contact/contact.rb +0 -4
- data/app/pb_kits/playbook/pb_contact/contact.test.js +1 -21
- data/app/pb_kits/playbook/pb_contact/docs/_contact_default.html.erb +1 -16
- data/app/pb_kits/playbook/pb_contact/docs/_contact_default.jsx +0 -15
- data/app/pb_kits/playbook/pb_contact/docs/_contact_with_detail.html.erb +0 -6
- data/app/pb_kits/playbook/pb_contact/docs/_contact_with_detail.jsx +0 -6
- data/app/pb_kits/playbook/pb_date_picker/_date_picker.tsx +4 -6
- data/app/pb_kits/playbook/pb_date_picker/date_picker_helper.ts +5 -37
- data/app/pb_kits/playbook/pb_dialog/_close_icon.tsx +1 -5
- data/app/pb_kits/playbook/pb_dialog/_dialog.tsx +8 -6
- data/app/pb_kits/playbook/pb_dialog/dialog.html.erb +1 -1
- data/app/pb_kits/playbook/pb_dialog/dialogHelper.js +65 -0
- data/app/pb_kits/playbook/pb_dialog/dialog_header.html.erb +2 -2
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.tsx +0 -9
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.html.erb +3 -3
- data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +0 -1
- data/app/pb_kits/playbook/pb_icon/_icon.tsx +2 -13
- data/app/pb_kits/playbook/pb_icon/icon.rb +1 -9
- data/app/pb_kits/playbook/pb_icon_button/_icon_button.tsx +0 -1
- data/app/pb_kits/playbook/pb_icon_button/icon_button.html.erb +1 -2
- data/app/pb_kits/playbook/pb_icon_circle/icon_circle.html.erb +1 -1
- data/app/pb_kits/playbook/pb_loading_inline/_loading_inline.tsx +1 -3
- data/app/pb_kits/playbook/pb_loading_inline/docs/example.yml +0 -2
- data/app/pb_kits/playbook/pb_loading_inline/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_loading_inline/loading_inline.html.erb +1 -1
- data/app/pb_kits/playbook/pb_loading_inline/loading_inline.rb +0 -11
- data/app/pb_kits/playbook/pb_nav/_item.tsx +5 -19
- data/app/pb_kits/playbook/pb_nav/item.html.erb +2 -6
- data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_breached.html.erb +3 -3
- data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_common.html.erb +3 -3
- data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_confirmation.html.erb +3 -3
- data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_meter_settings.html.erb +3 -3
- data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_strength_change.html.erb +3 -3
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_preview.html.erb +2 -2
- data/app/pb_kits/playbook/pb_section_separator/_section_separator.scss +5 -13
- data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_children.html.erb +0 -23
- data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_children.jsx +7 -45
- data/app/pb_kits/playbook/pb_section_separator/section_separator.html.erb +1 -4
- data/app/pb_kits/playbook/pb_text_input/_text_input.tsx +0 -3
- data/app/pb_kits/playbook/pb_text_input/docs/example.yml +0 -3
- data/app/pb_kits/playbook/pb_text_input/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_text_input/text_input.rb +3 -2
- data/app/pb_kits/playbook/pb_text_input/text_input.test.js +0 -38
- data/app/pb_kits/playbook/pb_timestamp/_timestamp.tsx +8 -24
- data/app/pb_kits/playbook/pb_timestamp/docs/_time_stamp_default.md +1 -0
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_align.html.erb +10 -0
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_align.jsx +9 -0
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_default.html.erb +17 -3
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_default.jsx +15 -0
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_elapsed.html.erb +2 -0
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_elapsed.jsx +2 -0
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_timezones.html.erb +14 -0
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_timezones.jsx +14 -0
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_unstyled.html.erb +4 -0
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_unstyled.jsx +4 -0
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated.jsx +1 -0
- data/app/pb_kits/playbook/pb_timestamp/docs/example.yml +6 -18
- data/app/pb_kits/playbook/pb_timestamp/docs/index.js +0 -6
- data/app/pb_kits/playbook/pb_timestamp/timestamp.rb +7 -29
- data/app/pb_kits/playbook/pb_timestamp/timestamp.test.js +4 -69
- data/dist/chunks/{_line_graph-DeH7NK-i.js → _line_graph-DHO-uYxy.js} +1 -1
- data/dist/chunks/_typeahead-_kMvPVfz.js +6 -0
- data/dist/chunks/_weekday_stacked-B1esXFeA.js +37 -0
- data/dist/chunks/{lib-QZuu1ltS.js → lib-C43ywQsO.js} +1 -1
- data/dist/chunks/{pb_form_validation-CleM960_.js → pb_form_validation-Cqj3itLG.js} +1 -1
- data/dist/chunks/vendor.js +1 -1
- data/dist/menu.yml +1 -15
- data/dist/playbook-doc.js +2 -2
- 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/engine.rb +1 -0
- data/lib/playbook/forms/builder/form_field_builder.rb +2 -37
- data/lib/playbook/kit_base.rb +2 -23
- data/lib/playbook/version.rb +1 -1
- metadata +28 -108
- data/app/pb_kits/playbook/pb_contact/docs/_contact_default.md +0 -5
- data/app/pb_kits/playbook/pb_loading_inline/docs/_loading_inline_variant.html.erb +0 -5
- data/app/pb_kits/playbook/pb_loading_inline/docs/_loading_inline_variant.jsx +0 -24
- data/app/pb_kits/playbook/pb_pb_bar_graph/_pb_bar_graph.scss +0 -0
- data/app/pb_kits/playbook/pb_pb_bar_graph/_pb_bar_graph.tsx +0 -62
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_colors.html.erb +0 -35
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_colors.jsx +0 -49
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_colors_rails.md +0 -1
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_colors_react.md +0 -2
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_default.html.erb +0 -38
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_default.jsx +0 -51
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_height.html.erb +0 -46
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_height.jsx +0 -62
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_height.md +0 -3
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_horizontal.html.erb +0 -47
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_horizontal.jsx +0 -60
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_legend.html.erb +0 -25
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_legend.jsx +0 -36
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_legend_non_clickable.jsx +0 -44
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_legend_position.html.erb +0 -100
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_legend_position.jsx +0 -126
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_negative_numbers.html.erb +0 -32
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_negative_numbers.jsx +0 -48
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_secondary_y_axis.html.erb +0 -68
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_secondary_y_axis.jsx +0 -81
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_spline.html.erb +0 -31
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_spline.jsx +0 -42
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_spline.md +0 -2
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_stacked.html.erb +0 -35
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_stacked.jsx +0 -51
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/example.yml +0 -27
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/index.js +0 -11
- data/app/pb_kits/playbook/pb_pb_bar_graph/pbBarGraphTheme.ts +0 -106
- data/app/pb_kits/playbook/pb_pb_bar_graph/pb_bar_graph.html.erb +0 -1
- data/app/pb_kits/playbook/pb_pb_bar_graph/pb_bar_graph.rb +0 -28
- data/app/pb_kits/playbook/pb_pb_bar_graph/pbbargraph.test.jsx +0 -31
- data/app/pb_kits/playbook/pb_pb_circle_chart/_pb_circle_chart.scss +0 -3
- data/app/pb_kits/playbook/pb_pb_circle_chart/_pb_circle_chart.tsx +0 -62
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_block_content.html.erb +0 -31
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_block_content.jsx +0 -81
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_color_overrides.html.erb +0 -25
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_color_overrides.jsx +0 -40
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_color_overrides.md +0 -5
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_custom_tooltip.html.erb +0 -27
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_custom_tooltip.jsx +0 -39
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_custom_tooltip.md +0 -5
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_data_legend_position.html.erb +0 -93
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_data_legend_position.jsx +0 -131
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_data_legend_position.md +0 -14
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_data_with_labels.html.erb +0 -42
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_data_with_labels.jsx +0 -58
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_data_with_legend.html.erb +0 -24
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_data_with_legend.jsx +0 -38
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_default.html.erb +0 -22
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_default.jsx +0 -33
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_inner_sizes.html.erb +0 -118
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_inner_sizes.jsx +0 -144
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_live_data.jsx +0 -60
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_rounded.html.erb +0 -24
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_rounded.jsx +0 -42
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_with_title.html.erb +0 -38
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_with_title.jsx +0 -52
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/example.yml +0 -29
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/index.js +0 -11
- data/app/pb_kits/playbook/pb_pb_circle_chart/pbCircleChartTheme.ts +0 -88
- data/app/pb_kits/playbook/pb_pb_circle_chart/pb_circle_chart.html.erb +0 -1
- data/app/pb_kits/playbook/pb_pb_circle_chart/pb_circle_chart.rb +0 -28
- data/app/pb_kits/playbook/pb_pb_circle_chart/pb_circle_chart.test.jsx +0 -51
- data/app/pb_kits/playbook/pb_section_separator/section_separator.test.js +0 -165
- data/app/pb_kits/playbook/pb_text_input/docs/_text_input_autocomplete.html.erb +0 -41
- data/app/pb_kits/playbook/pb_text_input/docs/_text_input_autocomplete.jsx +0 -80
- data/app/pb_kits/playbook/pb_text_input/docs/_text_input_autocomplete.md +0 -1
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_align.md +0 -1
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_default.md +0 -1
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_elapsed.md +0 -5
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_show_current_year.html.erb +0 -12
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_show_current_year.jsx +0 -25
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_show_current_year.md +0 -1
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_show_date.html.erb +0 -4
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_show_date.jsx +0 -17
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_show_date.md +0 -1
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_show_time.html.erb +0 -18
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_show_time.jsx +0 -44
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_show_time.md +0 -1
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_timezones.md +0 -1
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated.md +0 -5
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated_show_current_year.html.erb +0 -16
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated_show_current_year.jsx +0 -30
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated_show_current_year.md +0 -1
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated_show_date.html.erb +0 -16
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated_show_date.jsx +0 -30
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated_show_date.md +0 -1
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated_show_time.html.erb +0 -26
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated_show_time.jsx +0 -41
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated_show_time.md +0 -1
- data/dist/chunks/_typeahead-CCGp0OQe.js +0 -6
- data/dist/chunks/_weekday_stacked-Dy1jab6x.js +0 -37
- data/dist/chunks/componentRegistry-DzmmLR2x.js +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 31438297024b3fbb6e584829495fe6e8aa6ea98094112fea6c18121768f7bec5
|
4
|
+
data.tar.gz: 9c4f9ad913d1b459fe57544d70905181911fc09d7c0e48777e75998d44dd4e32
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b66ec13b8b0fa36915feb7b9b1aad85ce4e800059c555b54b96c67c0f9603c48ffcc2a8d5a678ef612cad8aeeaa4bef705b93cfbf2301b007850580a4943cae0
|
7
|
+
data.tar.gz: 1e7c437b51419f24422599984a12fdd2963c582c92177a342bb5f7dc9b2b7a6942785ac6b6b27c4903a49043b7c3c8fcd487d2c2d4f1ba8ee9fbd88c06c38fdf
|
@@ -1,6 +1,5 @@
|
|
1
1
|
|
2
2
|
|
3
|
-
|
4
3
|
@import 'pb_advanced_table/advanced_table';
|
5
4
|
@import 'pb_avatar/avatar';
|
6
5
|
@import 'pb_background/background';
|
@@ -109,8 +108,6 @@
|
|
109
108
|
@import 'pb_user_badge/user_badge';
|
110
109
|
@import 'pb_weekday_stacked/weekday_stacked';
|
111
110
|
@import 'pb_empty_state/empty_state';
|
112
|
-
@import 'pb_pb_bar_graph/pb_bar_graph';
|
113
|
-
@import 'pb_pb_circle_chart/pb_circle_chart';
|
114
111
|
@import 'utilities/mixins';
|
115
112
|
@import 'utilities/spacing';
|
116
113
|
@import 'utilities/cursor';
|
@@ -5,7 +5,6 @@ import { flexRender, Row, Cell } from "@tanstack/react-table"
|
|
5
5
|
import { GenericObject } from "../../types"
|
6
6
|
import { isChrome } from "../Utilities/BrowserCheck"
|
7
7
|
import { findColumnDefByAccessor } from "../Utilities/ColumnStylingHelper"
|
8
|
-
import { getRowColorClass, shouldShowLoadingIndicator } from "../Utilities/RowUtils"
|
9
8
|
|
10
9
|
import LoadingInline from "../../pb_loading_inline/_loading_inline"
|
11
10
|
import Checkbox from "../../pb_checkbox/_checkbox"
|
@@ -30,7 +29,6 @@ const TableCellRenderer = ({
|
|
30
29
|
columnPinning,
|
31
30
|
customRowStyle,
|
32
31
|
columnDefinitions,
|
33
|
-
isMultiHeaderColumn = false,
|
34
32
|
}: {
|
35
33
|
row: Row<GenericObject>
|
36
34
|
collapsibleTrail?: boolean
|
@@ -39,18 +37,12 @@ const TableCellRenderer = ({
|
|
39
37
|
columnPinning: { left: string[] }
|
40
38
|
customRowStyle?: GenericObject
|
41
39
|
columnDefinitions?: {[key:string]:any}[]
|
42
|
-
isMultiHeaderColumn?: boolean
|
43
40
|
}) => {
|
44
41
|
return (
|
45
42
|
<>
|
46
43
|
{row.getVisibleCells().map((cell: Cell<GenericObject, unknown>, i: number) => {
|
47
44
|
const isPinnedLeft = columnPinning.left.includes(cell.column.id);
|
48
|
-
// Add a border to the right of each group of columns for multi-header column tables
|
49
45
|
const isLastCell = (() => {
|
50
|
-
if (!isMultiHeaderColumn) {
|
51
|
-
return false;
|
52
|
-
}
|
53
|
-
|
54
46
|
const parent = cell.column.parent;
|
55
47
|
if (!parent) {
|
56
48
|
const last = row.getVisibleCells().at(-1);
|
@@ -68,7 +60,7 @@ const TableCellRenderer = ({
|
|
68
60
|
const cellAlignment = colDef?.columnStyling?.cellAlignment ?? "right"
|
69
61
|
const paddingValue = colDef?.columnStyling?.cellPadding ?? customRowStyle?.cellPadding
|
70
62
|
const paddingClass = paddingValue ? `p_${paddingValue}` : undefined
|
71
|
-
|
63
|
+
|
72
64
|
return (
|
73
65
|
<td
|
74
66
|
align={cellAlignment}
|
@@ -140,10 +132,6 @@ export const RegularTableView = ({
|
|
140
132
|
|
141
133
|
const columnPinning = table.getState().columnPinning || { left: [] };
|
142
134
|
const columnDefinitions = table.options.meta?.columnDefinitions || [];
|
143
|
-
const isMultiHeaderColumn = columnDefinitions.some(
|
144
|
-
(obj: Record<string, unknown>) => "columns" in obj
|
145
|
-
);
|
146
|
-
|
147
135
|
// Row pinning
|
148
136
|
function PinnedRow({ row }: { row: Row<any> }) {
|
149
137
|
const customRowStyle = rowStyling?.length > 0 && rowStyling?.find((s: GenericObject) => s?.rowId === row.id);
|
@@ -156,7 +144,7 @@ export const RegularTableView = ({
|
|
156
144
|
backgroundColor: customRowStyle?.backgroundColor ? customRowStyle?.backgroundColor : 'white',
|
157
145
|
color: customRowStyle?.fontColor,
|
158
146
|
position: 'sticky',
|
159
|
-
top:
|
147
|
+
top:
|
160
148
|
row.getIsPinned() === 'top'
|
161
149
|
? `${row.getPinnedIndex() * rowHeight + headerHeight}px`
|
162
150
|
: undefined,
|
@@ -168,7 +156,6 @@ export const RegularTableView = ({
|
|
168
156
|
columnDefinitions={columnDefinitions}
|
169
157
|
columnPinning={columnPinning}
|
170
158
|
customRowStyle={customRowStyle}
|
171
|
-
isMultiHeaderColumn={isMultiHeaderColumn}
|
172
159
|
loading={loading}
|
173
160
|
row={row}
|
174
161
|
stickyLeftColumn={stickyLeftColumn}
|
@@ -182,20 +169,21 @@ export const RegularTableView = ({
|
|
182
169
|
return (
|
183
170
|
<>
|
184
171
|
{pinnedRows && table.getTopRows().map((row: Row<GenericObject>) => (
|
185
|
-
<PinnedRow key={row.id}
|
186
|
-
row={row}
|
172
|
+
<PinnedRow key={row.id}
|
173
|
+
row={row}
|
187
174
|
/>
|
188
175
|
))}
|
189
176
|
{totalRows.map((row: Row<GenericObject>, rowIndex: number) => {
|
177
|
+
const isExpandable = row.getIsExpanded();
|
190
178
|
const isFirstChildofSubrow = row.depth > 0 && row.index === 0;
|
179
|
+
const rowHasNoChildren = row.original?.children && !row.original.children.length ? true : false;
|
191
180
|
const numberOfColumns = table.getAllFlatColumns().length;
|
181
|
+
const isDataLoading = isExpandable && (inlineRowLoading && rowHasNoChildren) && (row.depth < columnDefinitions[0]?.cellAccessors?.length);
|
182
|
+
const rowBackground = isExpandable && ((!inlineRowLoading && row.getCanExpand()) || (inlineRowLoading && rowHasNoChildren));
|
183
|
+
const rowColor = row.getIsSelected() ? "bg-row-selection" : rowBackground ? "bg-silver" : "bg-white";
|
192
184
|
const isFirstRegularRow = rowIndex === 0 && !row.getIsPinned();
|
193
185
|
const customRowStyle = rowStyling?.length > 0 && rowStyling?.find((s: GenericObject) => s?.rowId === row.id);
|
194
186
|
|
195
|
-
// Use functions from RowUtils for consistent cell coloring
|
196
|
-
const rowColor = getRowColorClass(row, inlineRowLoading || false);
|
197
|
-
const isDataLoading = shouldShowLoadingIndicator(row, inlineRowLoading || false, columnDefinitions[0]?.cellAccessors?.length || 0);
|
198
|
-
|
199
187
|
return (
|
200
188
|
<React.Fragment key={`${row.index}-${row.id}-${row.depth}-row`}>
|
201
189
|
{isFirstChildofSubrow && subRowHeaders && (
|
@@ -232,7 +220,6 @@ export const RegularTableView = ({
|
|
232
220
|
columnDefinitions={columnDefinitions}
|
233
221
|
columnPinning={columnPinning}
|
234
222
|
customRowStyle={customRowStyle}
|
235
|
-
isMultiHeaderColumn={isMultiHeaderColumn}
|
236
223
|
loading={loading}
|
237
224
|
row={row}
|
238
225
|
stickyLeftColumn={stickyLeftColumn}
|
@@ -241,7 +228,7 @@ export const RegularTableView = ({
|
|
241
228
|
|
242
229
|
{/* Display LoadingInline if Row Data is querying and there are no children already */}
|
243
230
|
{isDataLoading && (
|
244
|
-
<tr key={`${row.id}-
|
231
|
+
<tr key={`${row.id}-row`}>
|
245
232
|
<td colSpan={numberOfColumns}
|
246
233
|
style={{ paddingLeft: `${row.depth === 0 ? 0.5 : (row.depth * 2)}em` }}
|
247
234
|
>
|
@@ -256,4 +243,4 @@ export const RegularTableView = ({
|
|
256
243
|
);
|
257
244
|
}
|
258
245
|
|
259
|
-
export default RegularTableView;
|
246
|
+
export default RegularTableView;
|
@@ -7,7 +7,6 @@ import { GenericObject } from "../../types"
|
|
7
7
|
|
8
8
|
import { isChrome } from "../Utilities/BrowserCheck"
|
9
9
|
import { getVirtualizedRowStyle } from "../Utilities/TableContainerStyles"
|
10
|
-
import { getRowColorClass } from "../Utilities/RowUtils"
|
11
10
|
|
12
11
|
import LoadingInline from "../../pb_loading_inline/_loading_inline"
|
13
12
|
import Checkbox from "../../pb_checkbox/_checkbox"
|
@@ -46,10 +45,10 @@ export const VirtualizedTableView = ({
|
|
46
45
|
|
47
46
|
const columnPinning = table.getState().columnPinning || { left: [] };
|
48
47
|
const sortingState = JSON.stringify(table.getState().sorting || []);
|
49
|
-
|
48
|
+
|
50
49
|
// Store column widths extracted from header
|
51
50
|
const [columnWidths, setColumnWidths] = useState<{[key: string]: string}>({});
|
52
|
-
|
51
|
+
|
53
52
|
// Function to get header cell widths
|
54
53
|
const getHeaderCellWidths = () => {
|
55
54
|
const widths: {[key: string]: string} = {};
|
@@ -137,7 +136,7 @@ export const VirtualizedTableView = ({
|
|
137
136
|
</tr>
|
138
137
|
);
|
139
138
|
}
|
140
|
-
|
139
|
+
|
141
140
|
// Establish # of Parent Rows (so that Footer count does not include every single row)
|
142
141
|
const topLevelRowCount = table.getRowModel().flatRows.filter((row: Row<GenericObject>) => row.depth === 0).length;
|
143
142
|
|
@@ -173,9 +172,10 @@ export const VirtualizedTableView = ({
|
|
173
172
|
|
174
173
|
if (item.type === 'row') {
|
175
174
|
const row = item.row;
|
176
|
-
|
177
|
-
|
178
|
-
const
|
175
|
+
const isExpandable = row.getIsExpanded();
|
176
|
+
const rowHasNoChildren = row.original?.children && !row.original.children.length;
|
177
|
+
const rowBackground = isExpandable && ((!inlineRowLoading && row.getCanExpand()) || (inlineRowLoading && rowHasNoChildren));
|
178
|
+
const rowColor = row.getIsSelected() ? "bg-row-selection" : rowBackground ? "bg-silver" : "bg-white";
|
179
179
|
|
180
180
|
return (
|
181
181
|
<tr
|
@@ -10,14 +10,9 @@ export const getRowColorClass = (
|
|
10
10
|
): string => {
|
11
11
|
const isExpandable = row.getIsExpanded();
|
12
12
|
const rowHasNoChildren = row.original?.children && !row.original.children.length ? true : false;
|
13
|
+
const rowBackground = isExpandable && ((!inlineRowLoading && row.getCanExpand()) || (inlineRowLoading && rowHasNoChildren));
|
13
14
|
|
14
|
-
|
15
|
-
const shouldShowExpandedBackground = isExpandable && (
|
16
|
-
(!inlineRowLoading && row.getCanExpand()) ||
|
17
|
-
(inlineRowLoading && (rowHasNoChildren || row.getCanExpand()))
|
18
|
-
);
|
19
|
-
|
20
|
-
return row.getIsSelected() ? "bg-row-selection" : shouldShowExpandedBackground ? "bg-silver" : "bg-white";
|
15
|
+
return row.getIsSelected() ? "bg-row-selection" : rowBackground ? "bg-silver" : "bg-white";
|
21
16
|
}
|
22
17
|
|
23
18
|
/**
|
@@ -249,10 +249,8 @@
|
|
249
249
|
}
|
250
250
|
|
251
251
|
.pb_advanced_table_body {
|
252
|
-
|
253
|
-
|
254
|
-
border-right: 1px solid $border_light !important;
|
255
|
-
}
|
252
|
+
.last-cell {
|
253
|
+
border-right: 1px solid $border_light !important;
|
256
254
|
}
|
257
255
|
tr td:first-child {
|
258
256
|
padding-left: 8px !important;
|
@@ -703,14 +701,6 @@
|
|
703
701
|
}
|
704
702
|
}
|
705
703
|
}
|
706
|
-
|
707
|
-
.pb_advanced_table_header {
|
708
|
-
> tr {
|
709
|
-
.last-header-cell:last-of-type {
|
710
|
-
border-right-width: 0 !important;
|
711
|
-
}
|
712
|
-
}
|
713
|
-
}
|
714
704
|
}
|
715
705
|
}
|
716
706
|
|
@@ -985,14 +975,14 @@
|
|
985
975
|
// Firefox-specific fix for last-header-cell and last-cell vertical borders
|
986
976
|
@-moz-document url-prefix() {
|
987
977
|
.pb_advanced_table_header {
|
988
|
-
.last-header-cell
|
978
|
+
.last-header-cell {
|
989
979
|
border-right: none !important;
|
990
980
|
box-shadow: 1px 0 0 0 $border_light !important;
|
991
981
|
}
|
992
982
|
}
|
993
983
|
|
994
984
|
.pb_advanced_table_body {
|
995
|
-
.last-cell
|
985
|
+
.last-cell {
|
996
986
|
border-right: none !important;
|
997
987
|
box-shadow: 1px 0 0 0 $border_light !important;
|
998
988
|
}
|
@@ -1001,14 +991,14 @@
|
|
1001
991
|
// Dark mode Firefox fixes
|
1002
992
|
&.dark {
|
1003
993
|
.pb_advanced_table_header {
|
1004
|
-
.last-header-cell
|
994
|
+
.last-header-cell {
|
1005
995
|
border-right: none !important;
|
1006
996
|
box-shadow: 1px 0 0 0 $border_dark !important;
|
1007
997
|
}
|
1008
998
|
}
|
1009
999
|
|
1010
1000
|
.pb_advanced_table_body {
|
1011
|
-
.last-cell
|
1001
|
+
.last-cell {
|
1012
1002
|
border-right: none !important;
|
1013
1003
|
box-shadow: 1px 0 0 0 $border_dark !important;
|
1014
1004
|
}
|
@@ -1021,62 +1011,18 @@
|
|
1021
1011
|
.pb-advanced-table-popover-option:hover {
|
1022
1012
|
background-color: $bg_light;
|
1023
1013
|
}
|
1024
|
-
|
1025
1014
|
// Removes borders when Wrapped inside the Card Kit
|
1026
|
-
.pb_card_kit > .pb_advanced_table
|
1027
|
-
|
1028
|
-
|
1029
|
-
|
1030
|
-
box-shadow: none !important; // prevents double up of borders on Firefox when in Card Kit
|
1015
|
+
.pb_card_kit > .pb_advanced_table .pb_advanced_table_body .last-cell,
|
1016
|
+
.pb_card_kit > .pb_advanced_table .pb_advanced_table_header .last-header-cell,
|
1017
|
+
.pb_card_kit > .pb_advanced_table .pb_advanced_table_body tr td:last-child,
|
1018
|
+
.pb_card_kit > .pb_advanced_table .pb_advanced_table_header tr th:last-child {
|
1031
1019
|
border-right: none !important;
|
1032
|
-
}
|
1033
|
-
|
1034
|
-
// Without vertical border, remove all last-cell borders
|
1035
|
-
// Specifically for header to prevent thicker borders in firefox.
|
1036
|
-
.pb_table:not(.vertical-border) {
|
1037
|
-
.pb_advanced_table_header .last-header-cell {
|
1038
|
-
box-shadow: none !important;
|
1039
|
-
}
|
1040
|
-
}
|
1041
|
-
// Firefox fix
|
1042
|
-
@-moz-document url-prefix() {
|
1043
|
-
.pb_advanced_table_header {
|
1044
|
-
.last-header-cell {
|
1045
|
-
box-shadow: 1px 0 0 0 $border_light !important;
|
1046
|
-
}
|
1047
|
-
}
|
1048
|
-
}
|
1049
|
-
|
1050
|
-
// For tables WITH vertical borders, only remove border from actual last column
|
1051
|
-
.pb_table.vertical-border {
|
1052
|
-
.pb_advanced_table_body .last-cell:not(:last-child),
|
1053
|
-
.pb_advanced_table_header .last-header-cell:not(:last-child) {
|
1054
|
-
box-shadow: none !important;
|
1055
|
-
border-right: 1px solid $border_light !important;
|
1056
|
-
}
|
1057
|
-
|
1058
|
-
// Dark mode
|
1059
|
-
&.dark {
|
1060
|
-
.pb_advanced_table_body .last-cell:not(:last-child),
|
1061
|
-
.pb_advanced_table_header .last-header-cell:not(:last-child) {
|
1062
|
-
border-right: 1px solid $border_dark !important;
|
1063
|
-
}
|
1064
|
-
}
|
1065
|
-
}
|
1066
|
-
|
1067
|
-
// Support column group border colors
|
1068
|
-
&.pb_advanced_table[class*="column-group-border-"] {
|
1069
|
-
.pb_advanced_table_body .last-cell:not(:last-child),
|
1070
|
-
.pb_advanced_table_header .last-header-cell:not(:last-child) {
|
1071
|
-
border-right: 1px solid var(--column-border-color) !important;
|
1072
|
-
}
|
1073
|
-
}
|
1074
1020
|
}
|
1075
1021
|
|
1076
|
-
//
|
1077
|
-
.pb_card_kit > .pb_advanced_table tr:last-child,
|
1022
|
+
// Removes borders when Wrapped inside the Card Kit
|
1023
|
+
.pb_card_kit > .pb_advanced_table tr:last-child,
|
1078
1024
|
.pb_card_kit > .pb_advanced_table .last-row-cell {
|
1079
1025
|
td {
|
1080
|
-
border-bottom: none !important;
|
1026
|
+
border-bottom: none !important;
|
1081
1027
|
}
|
1082
1028
|
}
|
@@ -39,7 +39,5 @@
|
|
39
39
|
],
|
40
40
|
},
|
41
41
|
] %>
|
42
|
-
|
43
|
-
<%= pb_rails("
|
44
|
-
<%= pb_rails("advanced_table", props: { id: "table_multi_headers_vertical_borders", table_data: @table_data, column_definitions: column_definitions, table_props: { container: false, vertical_border: true } }) %>
|
45
|
-
<% end %>
|
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
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
import React from "react"
|
2
|
-
import Card from "../../pb_card/_card"
|
3
2
|
import AdvancedTable from '../../pb_advanced_table/_advanced_table'
|
4
3
|
import MOCK_DATA from "./advanced_table_mock_data.json"
|
5
4
|
|
@@ -45,21 +44,19 @@ const AdvancedTableColumnHeadersVerticalBorder = (props) => {
|
|
45
44
|
],
|
46
45
|
},
|
47
46
|
];
|
48
|
-
|
47
|
+
|
49
48
|
const tableProps = {
|
50
|
-
|
49
|
+
verticalBorder: true
|
51
50
|
}
|
52
|
-
|
51
|
+
|
53
52
|
return (
|
54
53
|
<>
|
55
|
-
<
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
/>
|
62
|
-
</Card>
|
54
|
+
<AdvancedTable
|
55
|
+
columnDefinitions={columnDefinitions}
|
56
|
+
tableData={MOCK_DATA}
|
57
|
+
tableProps={tableProps}
|
58
|
+
{...props}
|
59
|
+
/>
|
63
60
|
</>
|
64
61
|
)
|
65
62
|
}
|
@@ -4,6 +4,7 @@ examples:
|
|
4
4
|
- bar_graph_default: Default
|
5
5
|
- bar_graph_legend: Legend
|
6
6
|
- bar_graph_legend_position: Legend Position
|
7
|
+
- bar_graph_legend_non_clickable: Legend Non Clickable
|
7
8
|
- bar_graph_height: Height
|
8
9
|
- bar_graph_spline: Spline
|
9
10
|
- bar_graph_colors: Color Overrides
|
@@ -20,7 +20,7 @@
|
|
20
20
|
// Dark mode
|
21
21
|
.pb_card_kit.dark {
|
22
22
|
@include pb_card_dark;
|
23
|
-
|
23
|
+
|
24
24
|
&.pb_card_kit_selected {
|
25
25
|
@include pb_card_selected_dark;
|
26
26
|
}
|
@@ -33,8 +33,7 @@
|
|
33
33
|
|
34
34
|
// Highlight styles
|
35
35
|
.pb_card_kit_highlight_top,
|
36
|
-
.pb_card_kit_highlight_side
|
37
|
-
.pb_card_kit_highlight_right_side {
|
36
|
+
.pb_card_kit_highlight_side {
|
38
37
|
overflow: hidden;
|
39
38
|
}
|
40
39
|
|
@@ -53,20 +52,13 @@
|
|
53
52
|
}
|
54
53
|
}
|
55
54
|
|
56
|
-
// Highlight side variants
|
55
|
+
// Highlight side variants
|
57
56
|
@each $color_name, $color_value in $pb_card_highlight_colors {
|
58
57
|
.pb_card_kit_highlight_side.pb_card_kit_highlight_#{$color_name}::before {
|
59
58
|
@include pb_card_highlight($pb_card_highlight_size, 100%, $color_value);
|
60
59
|
}
|
61
60
|
}
|
62
61
|
|
63
|
-
// Highlight side right variants
|
64
|
-
@each $color_name, $color_value in $pb_card_highlight_colors {
|
65
|
-
.pb_card_kit_highlight_right_side.pb_card_kit_highlight_#{$color_name}::before {
|
66
|
-
@include pb_card_right_highlight($pb_card_highlight_size, 100%, $color_value);
|
67
|
-
}
|
68
|
-
}
|
69
|
-
|
70
62
|
// Card Header
|
71
63
|
.pb_card_header_kit {
|
72
64
|
flex-grow: 0;
|
@@ -76,7 +68,7 @@
|
|
76
68
|
padding: $space_sm;
|
77
69
|
border: 0;
|
78
70
|
border-radius: $pb_card_header_border_radius $pb_card_header_border_radius 0px 0px;
|
79
|
-
|
71
|
+
|
80
72
|
// Inherit border radius from parent card
|
81
73
|
.pb_card_kit_border_radius_xs & {
|
82
74
|
border-radius: $border_radius_xs $border_radius_xs 0px 0px;
|
@@ -26,7 +26,7 @@ type CardPropTypes = {
|
|
26
26
|
dragHandle?: boolean,
|
27
27
|
htmlOptions?: {[key: string]: string | number | boolean | (() => void)},
|
28
28
|
highlight?: {
|
29
|
-
position?: "side" | "
|
29
|
+
position?: "side" | "top",
|
30
30
|
color?: string,
|
31
31
|
},
|
32
32
|
id?: string,
|
@@ -56,7 +56,7 @@ const Header = (props: CardHeaderProps) => {
|
|
56
56
|
const { children, className, headerColor = 'category_1', headerColorStriped = false } = props
|
57
57
|
const headerColorCSS = `pb_card_header_kit_${headerColor}`
|
58
58
|
const headerStripedCSS = headerColorStriped ? `pb_card_header_kit_${headerColor}_striped` : ''
|
59
|
-
|
59
|
+
|
60
60
|
const headerCSS = classnames(
|
61
61
|
'pb_card_header_kit',
|
62
62
|
headerColorCSS,
|
@@ -108,7 +108,7 @@ const Card = (props: CardPropTypes): React.ReactElement => {
|
|
108
108
|
const borderRadiusCSS = borderRadius !== 'md' ? `pb_card_kit_border_radius_${borderRadius}` : ''
|
109
109
|
const highlightPositionCSS = highlight.position ? `pb_card_kit_highlight_${highlight.position}` : ''
|
110
110
|
const highlightColorCSS = highlight.color ? `pb_card_kit_highlight_${highlight.color}` : ''
|
111
|
-
|
111
|
+
|
112
112
|
const cardCss = classnames(
|
113
113
|
'pb_card_kit', // Base class
|
114
114
|
selectedCSS,
|
@@ -87,16 +87,6 @@ $pb_card_header_colors: map-merge(map-merge(map-merge($product_colors, $addition
|
|
87
87
|
background: $background;
|
88
88
|
}
|
89
89
|
|
90
|
-
@mixin pb_card_right_highlight($width, $height, $background){
|
91
|
-
content: "";
|
92
|
-
position: absolute;
|
93
|
-
top: 0;
|
94
|
-
right: 0;
|
95
|
-
width: $width;
|
96
|
-
height: $height;
|
97
|
-
background: $background;
|
98
|
-
}
|
99
|
-
|
100
90
|
@mixin pb_card_header_color($header_color) {
|
101
91
|
background: $header_color;
|
102
92
|
}
|
@@ -4,9 +4,6 @@
|
|
4
4
|
<%= pb_rails("card", props: {highlight: {position: "top", color:"warning"}, margin_bottom: "sm"}) do %>
|
5
5
|
Top Position & Warning Color
|
6
6
|
<% end %>
|
7
|
-
<%= pb_rails("card", props: {highlight: {position: "right_side", color:"product_5_highlight"}, margin_bottom: "sm"}) do %>
|
8
|
-
Right Side Position & Product 5 Highlight Color
|
9
|
-
<% end %>
|
10
7
|
<%= pb_rails("card", props: {highlight: {position: "side", color:"category_2"}, margin_bottom: "sm"}) do %>
|
11
8
|
Side Position & Category 2 Color
|
12
9
|
<% end %>
|
@@ -21,14 +21,6 @@ const CardHighlight = (props) => {
|
|
21
21
|
{'Top Position & Warning Color'}
|
22
22
|
</Card>
|
23
23
|
|
24
|
-
<Card
|
25
|
-
{...props}
|
26
|
-
highlight={{ position: 'right_side', color: 'product_5_highlight' }}
|
27
|
-
marginBottom="sm"
|
28
|
-
>
|
29
|
-
{'Right Side Position & Product 5 Highlight Color'}
|
30
|
-
</Card>
|
31
|
-
|
32
24
|
<Card
|
33
25
|
{...props}
|
34
26
|
highlight={{ position: 'side', color: 'category_2' }}
|
@@ -65,7 +65,6 @@ const CircleIconButton = (props: CircleIconButtonProps): React.ReactElement => {
|
|
65
65
|
id={id}
|
66
66
|
>
|
67
67
|
<Button
|
68
|
-
aria={aria}
|
69
68
|
dark={dark}
|
70
69
|
disabled={disabled}
|
71
70
|
htmlType={type}
|
@@ -79,7 +78,6 @@ const CircleIconButton = (props: CircleIconButtonProps): React.ReactElement => {
|
|
79
78
|
>
|
80
79
|
<Icon
|
81
80
|
fixedWidth
|
82
|
-
htmlOptions={{'aria-hidden': true}}
|
83
81
|
icon={icon}
|
84
82
|
/>
|
85
83
|
</Button>
|
@@ -17,7 +17,6 @@ const contactTypeMap: { [key: string]: string } = {
|
|
17
17
|
'work': 'phone-office',
|
18
18
|
'work-cell': 'phone-laptop',
|
19
19
|
'wrong-phone': 'phone-slash',
|
20
|
-
'international': 'globe',
|
21
20
|
}
|
22
21
|
|
23
22
|
const envelopeIcon = getAllIcons()["envelope"].icon as unknown as { [key: string]: SVGElement }
|
@@ -25,10 +24,6 @@ const envelopeIcon = getAllIcons()["envelope"].icon as unknown as { [key: string
|
|
25
24
|
const formatContact = (contactString: string, contactType: string) => {
|
26
25
|
if (contactType === 'email') return contactString
|
27
26
|
|
28
|
-
// International phone numbers are unformatted
|
29
|
-
if (contactType === 'international') return contactString
|
30
|
-
|
31
|
-
// Format US numbers
|
32
27
|
const cleaned = contactString.replace(/\D/g, '')
|
33
28
|
const phoneNumber = cleaned.match(/^(1|)?(\d{3})(\d{3})(\d{4})$/)
|
34
29
|
|
@@ -29,8 +29,6 @@ module Playbook
|
|
29
29
|
"phone-slash"
|
30
30
|
when "extension"
|
31
31
|
"phone-plus"
|
32
|
-
when "international"
|
33
|
-
"globe"
|
34
32
|
else # "unknown" || "other"
|
35
33
|
"phone"
|
36
34
|
end
|
@@ -41,8 +39,6 @@ module Playbook
|
|
41
39
|
contact_value
|
42
40
|
elsif contact_type == "extension" && contact_value.match(/^\d{4}$/)
|
43
41
|
contact_value
|
44
|
-
elsif contact_type == "international"
|
45
|
-
contact_value
|
46
42
|
else
|
47
43
|
number_to_phone(formatted_value, area_code: true)
|
48
44
|
end
|
@@ -66,12 +66,6 @@ test('returns correct icon', () => {
|
|
66
66
|
contactValue="1234"
|
67
67
|
data={{ testid: 'test-extension' }}
|
68
68
|
/>
|
69
|
-
<Contact
|
70
|
-
contactDetail="International"
|
71
|
-
contactType="international"
|
72
|
-
contactValue="+44 20 7946 0958"
|
73
|
-
data={{ testid: 'test-international' }}
|
74
|
-
/>
|
75
69
|
<Contact
|
76
70
|
contactDetail=""
|
77
71
|
contactType=""
|
@@ -89,11 +83,10 @@ test('returns correct icon', () => {
|
|
89
83
|
expect(screen.getByTestId('test-wrong-phone').querySelector('.pb_custom_icon')).toBeInTheDocument()
|
90
84
|
expect(screen.getByTestId('test-wrong-type').querySelector('.pb_custom_icon')).toBeInTheDocument()
|
91
85
|
expect(screen.getByTestId('test-extension').querySelector('.pb_custom_icon')).toBeInTheDocument()
|
92
|
-
expect(screen.getByTestId('test-international').querySelector('.pb_custom_icon')).toBeInTheDocument()
|
93
86
|
expect(screen.getByTestId('test-empty').querySelector('.pb_custom_icon')).toBeInTheDocument()
|
94
87
|
})
|
95
88
|
|
96
|
-
test("not compliant values return null in
|
89
|
+
test("not compliant values return null in phone related contact types", () => {
|
97
90
|
const notCompliantValues = [
|
98
91
|
"349-185-998223",
|
99
92
|
"349-1858",
|
@@ -136,16 +129,3 @@ test("not compliant values return null in US phone related contact types", () =>
|
|
136
129
|
)
|
137
130
|
})
|
138
131
|
})
|
139
|
-
|
140
|
-
test('international contact type preserves original format', () => {
|
141
|
-
render(
|
142
|
-
<Contact
|
143
|
-
contactType="international"
|
144
|
-
contactValue="+44 20 7946 0958"
|
145
|
-
data={{ testid: 'test-international-format' }}
|
146
|
-
/>
|
147
|
-
)
|
148
|
-
|
149
|
-
const kit = screen.getByTestId('test-international-format')
|
150
|
-
expect(kit).toHaveTextContent('+44 20 7946 0958')
|
151
|
-
})
|
@@ -13,7 +13,7 @@
|
|
13
13
|
}) %>
|
14
14
|
|
15
15
|
<%= pb_rails("contact", props: {
|
16
|
-
contact_type: "
|
16
|
+
contact_type: "wrong number",
|
17
17
|
contact_value: "3245627482",
|
18
18
|
}) %>
|
19
19
|
|
@@ -21,18 +21,3 @@
|
|
21
21
|
contact_type: "work-cell",
|
22
22
|
contact_value: "349-185-9988",
|
23
23
|
}) %>
|
24
|
-
|
25
|
-
<%= pb_rails("contact", props: {
|
26
|
-
contact_type: "wrong-phone",
|
27
|
-
contact_value: "2124396666",
|
28
|
-
}) %>
|
29
|
-
|
30
|
-
<%= pb_rails("contact", props: {
|
31
|
-
contact_type: "extension",
|
32
|
-
contact_value: "1233",
|
33
|
-
}) %>
|
34
|
-
|
35
|
-
<%= pb_rails("contact", props: {
|
36
|
-
contact_type: "international",
|
37
|
-
contact_value: "+44 7700 900461",
|
38
|
-
}) %>
|