playbook_ui 13.21.0.pre.alpha.PLAY120322465 → 13.21.0.pre.alpha.pbntr220improveexpansionspeed2415

Sign up to get free protection for your applications and to get access to all the features.
Files changed (178) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_advanced_table/Components/CustomCell.tsx +19 -21
  3. data/app/pb_kits/playbook/pb_advanced_table/Components/SortIconButton.tsx +3 -6
  4. data/app/pb_kits/playbook/pb_advanced_table/Components/SubRowHeaderRow.tsx +8 -12
  5. data/app/pb_kits/playbook/pb_advanced_table/Components/TableHeaderCell.tsx +9 -14
  6. data/app/pb_kits/playbook/pb_advanced_table/Components/ToggleIconButton.tsx +5 -9
  7. data/app/pb_kits/playbook/pb_advanced_table/README.md +2 -2
  8. data/app/pb_kits/playbook/pb_advanced_table/SubKits/TableBody.tsx +11 -15
  9. data/app/pb_kits/playbook/pb_advanced_table/SubKits/TableHeader.tsx +8 -12
  10. data/app/pb_kits/playbook/pb_advanced_table/Utilities/ExpansionControlHelpers.tsx +22 -38
  11. data/app/pb_kits/playbook/pb_advanced_table/Utilities/types.ts +2 -0
  12. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +9 -7
  13. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +81 -86
  14. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.test.jsx +54 -54
  15. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_collapsible_trail.jsx +7 -7
  16. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_default.jsx +7 -7
  17. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_expanded_control.jsx +7 -7
  18. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_inline_row_loading.jsx +7 -7
  19. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_inline_row_loading.md +1 -1
  20. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_loading.jsx +7 -7
  21. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort.jsx +7 -7
  22. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort_control.jsx +7 -7
  23. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_subrow_headers.jsx +7 -7
  24. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_options.jsx +7 -7
  25. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props.jsx +7 -7
  26. data/app/pb_kits/playbook/pb_advanced_table/docs/_mock_data.js +1 -1
  27. data/app/pb_kits/playbook/pb_advanced_table/docs/_mock_data_inline_loading.js +1 -1
  28. data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +0 -2
  29. data/app/pb_kits/playbook/pb_avatar/avatar.html.erb +1 -2
  30. data/app/pb_kits/playbook/pb_avatar_action_button/avatar_action_button.html.erb +1 -2
  31. data/app/pb_kits/playbook/pb_background/background.html.erb +1 -2
  32. data/app/pb_kits/playbook/pb_badge/badge.html.erb +1 -2
  33. data/app/pb_kits/playbook/pb_body/body.html.erb +1 -2
  34. data/app/pb_kits/playbook/pb_bread_crumbs/_bread_crumbs.scss +7 -0
  35. data/app/pb_kits/playbook/pb_bread_crumbs/bread_crumb_item.html.erb +1 -2
  36. data/app/pb_kits/playbook/pb_bread_crumbs/bread_crumbs.html.erb +1 -2
  37. data/app/pb_kits/playbook/pb_button/button.html.erb +1 -2
  38. data/app/pb_kits/playbook/pb_button/button.rb +3 -2
  39. data/app/pb_kits/playbook/pb_button_toolbar/button_toolbar.html.erb +1 -2
  40. data/app/pb_kits/playbook/pb_caption/caption.html.erb +1 -2
  41. data/app/pb_kits/playbook/pb_card/card.html.erb +1 -2
  42. data/app/pb_kits/playbook/pb_card/card_body.html.erb +1 -2
  43. data/app/pb_kits/playbook/pb_card/card_header.html.erb +1 -2
  44. data/app/pb_kits/playbook/pb_checkbox/checkbox.html.erb +1 -3
  45. data/app/pb_kits/playbook/pb_circle_icon_button/circle_icon_button.html.erb +1 -2
  46. data/app/pb_kits/playbook/pb_collapsible/collapsible.html.erb +1 -2
  47. data/app/pb_kits/playbook/pb_collapsible/collapsible_content.html.erb +1 -2
  48. data/app/pb_kits/playbook/pb_collapsible/collapsible_main.html.erb +1 -2
  49. data/app/pb_kits/playbook/pb_contact/contact.html.erb +1 -2
  50. data/app/pb_kits/playbook/pb_currency/currency.html.erb +1 -2
  51. data/app/pb_kits/playbook/pb_dashboard_value/dashboard_value.html.erb +1 -2
  52. data/app/pb_kits/playbook/pb_date/date.html.erb +1 -2
  53. data/app/pb_kits/playbook/pb_date_picker/_date_picker.scss +2 -1
  54. data/app/pb_kits/playbook/pb_date_picker/_date_picker.tsx +0 -3
  55. data/app/pb_kits/playbook/pb_date_picker/date_picker.html.erb +2 -4
  56. data/app/pb_kits/playbook/pb_date_picker/date_picker.rb +1 -2
  57. data/app/pb_kits/playbook/pb_date_picker/date_picker.test.js +1 -1
  58. data/app/pb_kits/playbook/pb_date_picker/date_picker_helper.ts +7 -9
  59. data/app/pb_kits/playbook/pb_date_picker/docs/example.yml +0 -2
  60. data/app/pb_kits/playbook/pb_date_picker/docs/index.js +0 -1
  61. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_input_styles.scss +2 -1
  62. data/app/pb_kits/playbook/pb_date_range_inline/date_range_inline.html.erb +1 -2
  63. data/app/pb_kits/playbook/pb_date_range_stacked/date_range_stacked.html.erb +1 -2
  64. data/app/pb_kits/playbook/pb_date_stacked/date_stacked.html.erb +1 -2
  65. data/app/pb_kits/playbook/pb_date_time/date_time.html.erb +1 -2
  66. data/app/pb_kits/playbook/pb_date_time_stacked/date_time_stacked.html.erb +2 -3
  67. data/app/pb_kits/playbook/pb_date_year_stacked/date_year_stacked.html.erb +1 -2
  68. data/app/pb_kits/playbook/pb_detail/detail.html.erb +1 -2
  69. data/app/pb_kits/playbook/pb_dialog/dialog.html.erb +1 -2
  70. data/app/pb_kits/playbook/pb_dialog/dialog_body.html.erb +2 -3
  71. data/app/pb_kits/playbook/pb_dialog/dialog_footer.html.erb +2 -3
  72. data/app/pb_kits/playbook/pb_dialog/dialog_header.html.erb +4 -5
  73. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_compound_components.html.erb +0 -2
  74. data/app/pb_kits/playbook/pb_file_upload/file_upload.html.erb +1 -2
  75. data/app/pb_kits/playbook/pb_filter/filter.html.erb +1 -2
  76. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.scss +3 -8
  77. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.tsx +0 -1
  78. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_multi_line.html.erb +1 -51
  79. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_multi_line.jsx +11 -62
  80. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_positions.html.erb +2 -7
  81. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.html.erb +3 -4
  82. data/app/pb_kits/playbook/pb_flex/docs/_flex_spacing.html.erb +4 -0
  83. data/app/pb_kits/playbook/pb_flex/flex.html.erb +1 -2
  84. data/app/pb_kits/playbook/pb_flex/flex_item.html.erb +1 -2
  85. data/app/pb_kits/playbook/pb_form_group/form_group.html.erb +1 -2
  86. data/app/pb_kits/playbook/pb_form_pill/form_pill.html.erb +2 -2
  87. data/app/pb_kits/playbook/pb_hashtag/hashtag.html.erb +1 -2
  88. data/app/pb_kits/playbook/pb_highlight/highlight.html.erb +1 -2
  89. data/app/pb_kits/playbook/pb_home_address_street/home_address_street.html.erb +1 -2
  90. data/app/pb_kits/playbook/pb_icon/_icon.tsx +0 -1
  91. data/app/pb_kits/playbook/pb_icon/icon.html.erb +1 -2
  92. data/app/pb_kits/playbook/pb_icon/icon.rb +3 -3
  93. data/app/pb_kits/playbook/pb_icon_circle/icon_circle.html.erb +1 -2
  94. data/app/pb_kits/playbook/pb_icon_stat_value/icon_stat_value.html.erb +1 -2
  95. data/app/pb_kits/playbook/pb_icon_value/icon_value.html.erb +1 -2
  96. data/app/pb_kits/playbook/pb_image/image.html.erb +1 -2
  97. data/app/pb_kits/playbook/pb_label_pill/label_pill.html.erb +1 -2
  98. data/app/pb_kits/playbook/pb_label_value/label_value.html.erb +2 -3
  99. data/app/pb_kits/playbook/pb_layout/body.html.erb +1 -2
  100. data/app/pb_kits/playbook/pb_layout/footer.html.erb +1 -2
  101. data/app/pb_kits/playbook/pb_layout/header.html.erb +1 -2
  102. data/app/pb_kits/playbook/pb_layout/item.html.erb +1 -2
  103. data/app/pb_kits/playbook/pb_layout/layout.html.erb +1 -2
  104. data/app/pb_kits/playbook/pb_layout/sidebar.html.erb +1 -2
  105. data/app/pb_kits/playbook/pb_legend/legend.html.erb +1 -2
  106. data/app/pb_kits/playbook/pb_list/item.html.erb +1 -2
  107. data/app/pb_kits/playbook/pb_list/list.html.erb +1 -2
  108. data/app/pb_kits/playbook/pb_loading_inline/loading_inline.html.erb +1 -2
  109. data/app/pb_kits/playbook/pb_message/message.html.erb +1 -2
  110. data/app/pb_kits/playbook/pb_message/message_mention.html.erb +2 -3
  111. data/app/pb_kits/playbook/pb_multi_level_select/multi_level_select.html.erb +1 -2
  112. data/app/pb_kits/playbook/pb_multiple_users/multiple_users.html.erb +1 -2
  113. data/app/pb_kits/playbook/pb_multiple_users_stacked/multiple_users_stacked.html.erb +1 -2
  114. data/app/pb_kits/playbook/pb_nav/item.html.erb +2 -4
  115. data/app/pb_kits/playbook/pb_nav/nav.html.erb +1 -2
  116. data/app/pb_kits/playbook/pb_online_status/online_status.html.erb +1 -2
  117. data/app/pb_kits/playbook/pb_pagination/pagination.html.erb +1 -2
  118. data/app/pb_kits/playbook/pb_passphrase/passphrase.html.erb +1 -1
  119. data/app/pb_kits/playbook/pb_person/person.html.erb +1 -2
  120. data/app/pb_kits/playbook/pb_person_contact/person_contact.html.erb +1 -2
  121. data/app/pb_kits/playbook/pb_pill/pill.html.erb +1 -2
  122. data/app/pb_kits/playbook/pb_popover/popover.html.erb +1 -2
  123. data/app/pb_kits/playbook/pb_progress_pills/progress_pills.html.erb +1 -2
  124. data/app/pb_kits/playbook/pb_progress_simple/progress_simple.html.erb +1 -2
  125. data/app/pb_kits/playbook/pb_progress_step/progress_step.html.erb +1 -2
  126. data/app/pb_kits/playbook/pb_progress_step/progress_step_item.html.erb +1 -2
  127. data/app/pb_kits/playbook/pb_radio/radio.html.erb +1 -2
  128. data/app/pb_kits/playbook/pb_section_separator/section_separator.html.erb +1 -2
  129. data/app/pb_kits/playbook/pb_select/select.html.erb +1 -2
  130. data/app/pb_kits/playbook/pb_selectable_card/selectable_card.html.erb +1 -2
  131. data/app/pb_kits/playbook/pb_selectable_card_icon/selectable_card_icon.html.erb +1 -2
  132. data/app/pb_kits/playbook/pb_selectable_icon/selectable_icon.html.erb +1 -2
  133. data/app/pb_kits/playbook/pb_selectable_list/selectable_list.html.erb +1 -2
  134. data/app/pb_kits/playbook/pb_selectable_list/selectable_list_item.html.erb +1 -2
  135. data/app/pb_kits/playbook/pb_source/source.html.erb +1 -2
  136. data/app/pb_kits/playbook/pb_star_rating/star_rating.html.erb +1 -2
  137. data/app/pb_kits/playbook/pb_stat_change/stat_change.html.erb +1 -2
  138. data/app/pb_kits/playbook/pb_stat_value/stat_value.html.erb +1 -2
  139. data/app/pb_kits/playbook/pb_table/table.html.erb +2 -4
  140. data/app/pb_kits/playbook/pb_table/table_body.html.erb +3 -5
  141. data/app/pb_kits/playbook/pb_table/table_cell.html.erb +3 -5
  142. data/app/pb_kits/playbook/pb_table/table_head.html.erb +3 -5
  143. data/app/pb_kits/playbook/pb_table/table_header.html.erb +3 -5
  144. data/app/pb_kits/playbook/pb_table/table_row.html.erb +3 -5
  145. data/app/pb_kits/playbook/pb_text_input/_text_input.scss +1 -0
  146. data/app/pb_kits/playbook/pb_text_input/text_input.html.erb +1 -2
  147. data/app/pb_kits/playbook/pb_text_input/text_input.rb +1 -2
  148. data/app/pb_kits/playbook/pb_textarea/textarea.html.erb +1 -2
  149. data/app/pb_kits/playbook/pb_time/time.html.erb +1 -2
  150. data/app/pb_kits/playbook/pb_time_range_inline/time_range_inline.html.erb +2 -3
  151. data/app/pb_kits/playbook/pb_time_stacked/time_stacked.html.erb +1 -2
  152. data/app/pb_kits/playbook/pb_timeline/item.html.erb +1 -2
  153. data/app/pb_kits/playbook/pb_timeline/timeline.html.erb +1 -2
  154. data/app/pb_kits/playbook/pb_timestamp/timestamp.html.erb +1 -2
  155. data/app/pb_kits/playbook/pb_title/title.html.erb +2 -3
  156. data/app/pb_kits/playbook/pb_title_count/title_count.html.erb +1 -2
  157. data/app/pb_kits/playbook/pb_title_detail/title_detail.html.erb +1 -2
  158. data/app/pb_kits/playbook/pb_toggle/toggle.html.erb +1 -2
  159. data/app/pb_kits/playbook/pb_tooltip/tooltip.html.erb +1 -2
  160. data/app/pb_kits/playbook/pb_typeahead/typeahead.html.erb +1 -2
  161. data/app/pb_kits/playbook/pb_user/user.html.erb +1 -2
  162. data/app/pb_kits/playbook/pb_user_badge/user_badge.html.erb +1 -2
  163. data/app/pb_kits/playbook/pb_weekday_stacked/weekday_stacked.html.erb +1 -2
  164. data/dist/playbook-rails.js +4 -4
  165. data/lib/playbook/kit_base.rb +0 -18
  166. data/lib/playbook/version.rb +1 -1
  167. metadata +5 -16
  168. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.html.erb +0 -14
  169. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.rb +0 -19
  170. data/app/pb_kits/playbook/pb_advanced_table/scss_partials/_chrome_styles.scss +0 -13
  171. data/app/pb_kits/playbook/pb_advanced_table/table_body.html.erb +0 -9
  172. data/app/pb_kits/playbook/pb_advanced_table/table_body.rb +0 -30
  173. data/app/pb_kits/playbook/pb_advanced_table/table_header.html.erb +0 -20
  174. data/app/pb_kits/playbook/pb_advanced_table/table_header.rb +0 -21
  175. data/app/pb_kits/playbook/pb_advanced_table/table_row.html.erb +0 -37
  176. data/app/pb_kits/playbook/pb_advanced_table/table_row.rb +0 -32
  177. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_margin_bottom.html.erb +0 -7
  178. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_margin_bottom.jsx +0 -41
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 117440357a4a8da3b129606a534928188bd41545fd804f1afcf2417447d31f5a
4
- data.tar.gz: 004f12658cd004016f41ea6d4a1cc37c2674925a9cb2a499162dfb50318ee8f1
3
+ metadata.gz: 8bf6aed2f38b429e40629692119203c2c23a074cee5fbb73cc148df89b5749ef
4
+ data.tar.gz: 2f02146b9ad987ac9913ec8fd6fb2217bcfb12f9cfbdab6a813c04940baf2ca8
5
5
  SHA512:
6
- metadata.gz: c6075298f25053220515fed141fb0a1f4593fc19222b3a9e2d701d4d59e0d1320f9822749b447289ffd74b1d9fa4ea849f380252497009e959b5308d4bfcc8bc
7
- data.tar.gz: 795e0618d31b6e7675f8948725c29429aadce68bddb25a6970b1d53e3af99245750f31c09c031dcc13ba3a45a5b9ae852a740718cab3dc882a10f3dc70ef6bd3
6
+ metadata.gz: 51b79d9f524bcb4181e3a03a0116598a16942f7f38783f574555c65e38b081919cafcaa55ba0241e6480cd03e0b943a120fd2ee28c51dda958d7ebfa2bf4253a
7
+ data.tar.gz: f9b0e07c9e8b6cde8df519926e0fc86de35a8f2e3b49b1884cb92d675b8a356e36c68abd438bfd91959cfbe853aa7f31603e6c2892775b1a91df668ff436a243
@@ -1,21 +1,19 @@
1
- import React, { useContext } from "react"
2
- import { Getter, Row } from "@tanstack/react-table"
1
+ import React, { useContext } from "react";
3
2
 
4
- import { GenericObject } from "../../types"
3
+ import Flex from "../../pb_flex/_flex";
4
+ import FlexItem from "../../pb_flex/_flex_item";
5
+ import Icon from "../../pb_icon/_icon";
6
+ import { GlobalProps } from "../../utilities/globalProps";
5
7
 
6
- import { GlobalProps } from "../../utilities/globalProps"
7
-
8
- import Flex from "../../pb_flex/_flex"
9
- import FlexItem from "../../pb_flex/_flex_item"
10
- import Icon from "../../pb_icon/_icon"
11
-
12
- import AdvancedTableContext from "../Context/AdvancedTableContext"
8
+ import { Getter, Row } from "@tanstack/react-table";
9
+ import { DataType } from "../Utilities/types";
10
+ import AdvancedTableContext from "../Context/AdvancedTableContext";
13
11
 
14
12
  interface CustomCellProps {
15
- getValue?: Getter<string>
16
- onRowToggleClick?: (arg: Row<GenericObject>) => void
17
- row: Row<GenericObject>
18
- value?: string
13
+ getValue?: Getter<string>;
14
+ onRowToggleClick?: (arg: Row<DataType>) => void;
15
+ row: Row<DataType>;
16
+ value?: string;
19
17
  }
20
18
 
21
19
  export const CustomCell = ({
@@ -24,12 +22,12 @@ export const CustomCell = ({
24
22
  row,
25
23
  value,
26
24
  }: CustomCellProps & GlobalProps) => {
27
- const { setExpanded, expanded, inlineRowLoading } = useContext(AdvancedTableContext)
25
+ const { setExpanded, expanded, inlineRowLoading } = useContext(AdvancedTableContext);
28
26
 
29
- const handleOnExpand = (row: Row<GenericObject>) => {
30
- onRowToggleClick && onRowToggleClick(row)
31
- setExpanded({ ...expanded, [row.id]: !row.getIsExpanded() })
32
- }
27
+ const handleOnExpand = (row: Row<DataType>) => {
28
+ onRowToggleClick && onRowToggleClick(row);
29
+ setExpanded({ ...expanded, [row.id]: !row.getIsExpanded() });
30
+ };
33
31
  const RowHasChildren = row.original.children ? true : false
34
32
  const renderButton = inlineRowLoading ? RowHasChildren : row.getCanExpand()
35
33
 
@@ -61,5 +59,5 @@ export const CustomCell = ({
61
59
  </FlexItem>
62
60
  </Flex>
63
61
  </div>
64
- )
65
- }
62
+ );
63
+ };
@@ -1,14 +1,11 @@
1
1
  import React from "react"
2
- import { Header } from "@tanstack/react-table"
3
-
4
- import { GenericObject } from "../../types"
5
-
6
2
  import Icon from "../../pb_icon/_icon"
7
-
3
+ import { Header } from "@tanstack/react-table"
4
+ import { DataType } from "../Utilities/types"
8
5
  import { displayIcon } from "../Utilities/IconHelpers"
9
6
 
10
7
  type SortIconButtonProps = {
11
- header: Header<GenericObject, unknown>
8
+ header: Header<DataType, unknown>
12
9
  sortIcon?: string | string[]
13
10
  }
14
11
  export const SortIconButton = ({ header, sortIcon }: SortIconButtonProps) => {
@@ -1,27 +1,23 @@
1
1
  import React, { useContext } from "react"
2
- import { Row, Table } from "@tanstack/react-table"
3
-
4
- import { GenericObject } from "../../types"
5
-
6
- import { GlobalProps } from "../../utilities/globalProps"
7
-
8
2
  import Flex from "../../pb_flex/_flex"
9
3
  import Caption from "../../pb_caption/_caption"
4
+ import { Row, Table } from "@tanstack/react-table"
10
5
 
6
+ import AdvancedTableContext from "../Context/AdvancedTableContext";
11
7
  import { ToggleIconButton } from "./ToggleIconButton"
12
8
  import { renderCollapsibleTrail } from "./CollapsibleTrail"
13
9
 
14
10
  import { isChrome } from "../Utilities/BrowserCheck"
15
-
16
- import AdvancedTableContext from "../Context/AdvancedTableContext"
11
+ import { DataType } from "../Utilities/types"
12
+ import { GlobalProps } from "../../utilities/globalProps"
17
13
 
18
14
  interface SubRowHeaderRowProps {
19
15
  collapsibleTrail?: boolean
20
16
  enableToggleExpansion?: "all" | "header" | "none"
21
- onClick: (row: Row<GenericObject>) => void
22
- row: Row<GenericObject>
17
+ onClick: (row: Row<DataType>) => void
18
+ row: Row<DataType>
23
19
  subRowHeaders?: string[]
24
- table: Table<GenericObject>
20
+ table: Table<DataType>
25
21
  }
26
22
 
27
23
  export const SubRowHeaderRow = ({
@@ -32,7 +28,7 @@ export const SubRowHeaderRow = ({
32
28
  subRowHeaders,
33
29
  table,
34
30
  }: SubRowHeaderRowProps & GlobalProps) => {
35
- const { inlineRowLoading } = useContext(AdvancedTableContext)
31
+ const { inlineRowLoading } = useContext(AdvancedTableContext);
36
32
 
37
33
  const numberOfColumns = table.getAllFlatColumns().length
38
34
  const rowHasChildren = row.original.children ? true : false
@@ -1,25 +1,20 @@
1
1
  import React, { useContext } from "react"
2
- import classnames from "classnames"
3
- import { flexRender, Header } from "@tanstack/react-table"
4
-
5
- import { GenericObject } from "../../types"
6
-
7
- import { GlobalProps } from "../../utilities/globalProps"
8
-
2
+ import classnames from "classnames";
9
3
  import Flex from "../../pb_flex/_flex"
4
+ import { flexRender, Header } from "@tanstack/react-table"
10
5
 
11
6
  import { SortIconButton } from "./SortIconButton"
12
7
  import { ToggleIconButton } from "./ToggleIconButton"
13
-
14
8
  import { isChrome } from "../Utilities/BrowserCheck"
15
-
9
+ import { DataType } from "../Utilities/types"
16
10
  import AdvancedTableContext from "../Context/AdvancedTableContext"
11
+ import { GlobalProps } from "../../utilities/globalProps"
17
12
 
18
13
  type TableHeaderCellProps = {
19
14
  enableSorting?: boolean
20
15
  enableToggleExpansion?: "all" | "header" | "none"
21
16
  handleExpandOrCollapse?: () => void
22
- header?: Header<GenericObject, unknown>
17
+ header?: Header<DataType, unknown>
23
18
  headerChildren?: React.ReactNode | React.ReactNode[]
24
19
  loading?: boolean
25
20
  sortIcon?: string | string[]
@@ -50,24 +45,24 @@ export const TableHeaderCell = ({
50
45
  const cellClassName = classnames("table-header-cells",
51
46
  `${isChrome() ? "chrome-styles" : ""}`,
52
47
  `${enableSorting ? "table-header-cells-active" : ""}`
53
- )
48
+ );
54
49
 
55
50
  const cellId = `${loading ?
56
51
  `loading-${header.id}`
57
52
  : `${header.id}`
58
- }`
53
+ }`;
59
54
 
60
55
  const isToggleExpansionEnabledLoading =
61
56
  header.index === 0 &&
62
57
  loading &&
63
58
  (enableToggleExpansion === "all" || "header") &&
64
- enableToggleExpansion !== "none"
59
+ enableToggleExpansion !== "none";
65
60
 
66
61
  const isToggleExpansionEnabled =
67
62
  header.index === 0 &&
68
63
  !loading &&
69
64
  (enableToggleExpansion === "all" || "header") &&
70
- enableToggleExpansion !== "none"
65
+ enableToggleExpansion !== "none";
71
66
 
72
67
  return (
73
68
  <th
@@ -1,17 +1,13 @@
1
1
  import React, { useContext } from "react"
2
- import { Row } from "@tanstack/react-table"
3
-
4
- import { GenericObject } from "../../types"
5
-
6
2
  import Icon from "../../pb_icon/_icon"
7
-
8
- import { displayIcon } from "../Utilities/IconHelpers"
9
-
3
+ import { Row } from "@tanstack/react-table"
10
4
  import AdvancedTableContext from "../Context/AdvancedTableContext"
5
+ import { DataType } from "../Utilities/types"
6
+ import { displayIcon } from "../Utilities/IconHelpers"
11
7
 
12
8
  interface ToggleIconButtonProps {
13
- onClick: (row: Row<GenericObject>) => void
14
- row?: Row<GenericObject>
9
+ onClick: (row: Row<DataType>) => void
10
+ row?: Row<DataType>
15
11
  }
16
12
 
17
13
  export const ToggleIconButton = ({ row, onClick }: ToggleIconButtonProps) => {
@@ -81,7 +81,7 @@ const MOCK_DATA = [
81
81
  graduatedStudents: "43",
82
82
  children: [
83
83
  {
84
- year: "2021",
84
+ year: "2011",
85
85
  quarter: "Q1",
86
86
  month: "February",
87
87
  day: "15",
@@ -173,7 +173,7 @@ const MOCK_DATA = [
173
173
  graduatedStudents: "43",
174
174
  children: [
175
175
  {
176
- year: "2022",
176
+ year: "2011",
177
177
  quarter: "Q1",
178
178
  month: "May",
179
179
  day: "2",
@@ -1,26 +1,22 @@
1
1
  import React, { useContext } from "react"
2
- import classnames from "classnames"
3
- import { flexRender, Row } from "@tanstack/react-table"
4
-
5
- import { GenericObject } from "../../types"
6
-
7
- import { buildCss } from "../../utilities/props"
8
- import { globalProps } from "../../utilities/globalProps"
9
- import { isChrome } from "../Utilities/BrowserCheck"
10
-
2
+ import classnames from "classnames";
3
+ import { buildCss } from "../../utilities/props";
4
+ import { globalProps } from "../../utilities/globalProps";
11
5
  import LoadingInline from "../../pb_loading_inline/_loading_inline"
6
+ import { flexRender, Row } from "@tanstack/react-table"
12
7
 
13
8
  import { SubRowHeaderRow } from "../Components/SubRowHeaderRow"
14
9
  import { LoadingCell } from "../Components/LoadingCell"
15
10
  import { renderCollapsibleTrail } from "../Components/CollapsibleTrail"
16
-
17
11
  import AdvancedTableContext from "../Context/AdvancedTableContext"
12
+ import { isChrome } from "../Utilities/BrowserCheck"
13
+ import { DataType } from "../Utilities/types"
18
14
 
19
15
  type TableBodyProps = {
20
- className?: string
16
+ className?: string;
21
17
  collapsibleTrail?: boolean
22
- dark?: boolean
23
- id?: string
18
+ dark?: boolean,
19
+ id?: string;
24
20
  subRowHeaders?: string[]
25
21
  }
26
22
 
@@ -46,14 +42,14 @@ export const TableBody = ({
46
42
  buildCss("pb_advanced_table_body"),
47
43
  globalProps(props),
48
44
  className
49
- )
45
+ );
50
46
 
51
47
  return (
52
48
  <>
53
49
  <tbody className={classes}
54
50
  id={id}
55
51
  >
56
- {table.getRowModel().rows.map((row: Row<GenericObject>) => {
52
+ {table.getRowModel().rows.map((row: Row<DataType>) => {
57
53
  const isExpandable = row.getIsExpanded()
58
54
  const isFirstChildofSubrow = row.depth > 0 && row.index === 0
59
55
  const rowHasNoChildren = row.original.children && !row.original.children.length ? true : false
@@ -1,22 +1,18 @@
1
1
  import React, { useContext } from "react"
2
- import classnames from "classnames"
2
+ import classnames from "classnames";
3
+ import { buildCss } from "../../utilities/props";
4
+ import { globalProps } from "../../utilities/globalProps";
3
5
  import { HeaderGroup } from "@tanstack/react-table"
4
-
5
- import { GenericObject } from "../../types"
6
-
7
- import { buildCss } from "../../utilities/props"
8
- import { globalProps } from "../../utilities/globalProps"
9
-
10
- import { TableHeaderCell } from "../Components/TableHeaderCell"
11
-
12
6
  import AdvancedTableContext from "../Context/AdvancedTableContext"
7
+ import { TableHeaderCell } from "../Components/TableHeaderCell"
8
+ import { DataType } from "../Utilities/types"
13
9
 
14
10
  type TableHeaderProps = {
15
11
  children?: React.ReactNode | React.ReactNode[]
16
12
  className?: string
17
13
  dark?: boolean,
18
14
  enableSorting?: boolean
19
- id?: string
15
+ id?: string;
20
16
  sortIcon?: string | string[]
21
17
  }
22
18
 
@@ -40,7 +36,7 @@ export const TableHeader = ({
40
36
  buildCss("pb_advanced_table_header"),
41
37
  globalProps(props),
42
38
  className
43
- )
39
+ );
44
40
 
45
41
 
46
42
  return (
@@ -49,7 +45,7 @@ export const TableHeader = ({
49
45
  id={id}
50
46
  >
51
47
  {/* Get the header groups (only one in this example) */}
52
- {table.getHeaderGroups().map((headerGroup: HeaderGroup<GenericObject>) => (
48
+ {table.getHeaderGroups().map((headerGroup: HeaderGroup<DataType>) => (
53
49
  <tr key={`${headerGroup.id}-headerGroup`}>
54
50
  {headerGroup.headers.map(header => (
55
51
  <TableHeaderCell
@@ -1,6 +1,5 @@
1
1
  import { RowModel } from "@tanstack/react-table"
2
- import { ExpandedStateObject } from "./types"
3
- import { GenericObject } from "../../types"
2
+ import { DataType, ExpandedStateObject } from "./types"
4
3
 
5
4
  const filterExpandableRows = (expandedState: Record<string, boolean>) => {
6
5
  for (const expandedRow in expandedState) {
@@ -12,46 +11,31 @@ const filterExpandableRows = (expandedState: Record<string, boolean>) => {
12
11
  }
13
12
 
14
13
  export const updateExpandAndCollapseState = (
15
- tableRows: RowModel<GenericObject>,
14
+ tableRows: RowModel<DataType>,
16
15
  expanded: Record<string, boolean>,
17
16
  targetParent: string
18
17
  ) => {
19
- const updateExpandedRows: Record<string, boolean> = {}
20
- const rows = tableRows.flatRows
21
- // Variable checks if all rows in a section have same expansion state or not
22
- let isExpansionConsistent = true
23
- const areRowsExpanded = new Set<boolean>()
18
+ const updateExpandedRows: Record<string, boolean> = {};
19
+ const rows = tableRows.rows;
20
+
21
+ let isExpansionConsistent = true;
22
+ const areRowsExpanded = new Set<boolean>();
24
23
 
25
- // Update isExpansionConsistent variable
26
24
  for (const row of rows) {
27
- if (
28
- targetParent === undefined
29
- ? row.depth === 0
30
- : targetParent === row.parentId
31
- ) {
32
- areRowsExpanded.add(row.getIsExpanded())
33
- if (areRowsExpanded.size > 1) {
34
- isExpansionConsistent = false
35
- break
36
- }
37
- }
38
- }
25
+ const shouldBeUpdated = targetParent === undefined ? row.depth === 0 : targetParent === row.parentId;
26
+
27
+ if (shouldBeUpdated) {
28
+ const isExpanded = row.getIsExpanded();
29
+ areRowsExpanded.add(isExpanded);
39
30
 
40
- // The if statement runs only for row depth 0, the else statement for the rest
41
- if (targetParent === undefined) {
42
- rows.forEach(row => {
43
- if (row.depth === 0) {
44
- updateExpandedRows[row.id] = !isExpansionConsistent
45
- ? true
46
- : !row.getIsExpanded()
47
- }
48
- })
49
- } else {
50
- for (const row of rows) {
51
- if (targetParent === row.parentId) {
52
- updateExpandedRows[row.id] = !isExpansionConsistent
53
- ? true
54
- : !row.getIsExpanded()
31
+ updateExpandedRows[row.id] = !isExpansionConsistent ? true : !isExpanded;
32
+
33
+ if (areRowsExpanded.size > 1) {
34
+ isExpansionConsistent = false;
35
+ // If expansion inconsistent, ensure all target rows are set to expand
36
+ for (const key in updateExpandedRows) {
37
+ updateExpandedRows[key] = true;
38
+ }
55
39
  }
56
40
  }
57
41
  }
@@ -59,5 +43,5 @@ export const updateExpandAndCollapseState = (
59
43
  return filterExpandableRows({
60
44
  ...(expanded as ExpandedStateObject),
61
45
  ...updateExpandedRows,
62
- })
63
- }
46
+ });
47
+ };
@@ -4,3 +4,5 @@ export type ExpandedStateObject = Extract<
4
4
  ExpandedState,
5
5
  Record<string, boolean>
6
6
  >
7
+
8
+ export type DataType = { [key: string]: any }
@@ -4,7 +4,6 @@
4
4
  @import "../tokens/spacing";
5
5
  @import "./scss_partials/loading";
6
6
  @import "./scss_partials/pseudo_states";
7
- @import "./scss_partials/chrome_styles";
8
7
 
9
8
  .pb_advanced_table {
10
9
  $border-color: 1px solid $border_light !important;
@@ -83,15 +82,18 @@
83
82
 
84
83
  // Vertical separator
85
84
  .table-header-cells:first-child,
86
- td:first-child,
87
- .pb_table_td:first-child {
88
- box-shadow: 1px 0px 0px 0px $border_light !important;
85
+ td:first-child {
86
+ box-shadow: 1px 0px 0px 0px #e4e8f0 !important;
89
87
  }
90
88
 
91
- @include chrome_styles($border-color);
89
+ .chrome-styles:first-child {
90
+ border-right: $border-color;
91
+ }
92
92
 
93
- tr:hover {
94
- position: relative;
93
+ .table-card {
94
+ .chrome-styles:first-child {
95
+ border-right: $transparent !important;
96
+ }
95
97
  }
96
98
 
97
99
  &.dark {