playbook_ui 13.17.0.pre.alpha.nodealphaupgrade2157 → 13.17.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_reset.scss +2 -2
  3. data/app/pb_kits/playbook/pb_advanced_table/Components/TableHeaderCell.tsx +2 -1
  4. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +0 -1
  5. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.test.jsx +3 -292
  6. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_default.md +2 -7
  7. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort.jsx +6 -1
  8. data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +4 -10
  9. data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +0 -7
  10. data/app/pb_kits/playbook/pb_advanced_table/scss_partials/_loading.scss +3 -4
  11. data/app/pb_kits/playbook/pb_collapsible/_collapsible.scss +2 -2
  12. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_flatpickr_styles.scss +1 -1
  13. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_validation.html.erb +7 -5
  14. data/app/pb_kits/playbook/pb_popover/_popover.tsx +14 -12
  15. data/app/pb_kits/playbook/pb_popover/docs/example.yml +1 -2
  16. data/app/pb_kits/playbook/pb_popover/docs/index.js +0 -1
  17. data/app/pb_kits/playbook/pb_popover/popover.test.js +31 -29
  18. data/app/pb_kits/playbook/pb_table/_table.tsx +0 -3
  19. data/app/pb_kits/playbook/pb_table/docs/example.yml +0 -2
  20. data/app/pb_kits/playbook/pb_table/docs/index.js +0 -1
  21. data/app/pb_kits/playbook/pb_table/styles/_all.scss +0 -1
  22. data/app/pb_kits/playbook/pb_table/table.rb +1 -7
  23. data/app/pb_kits/playbook/pb_table/table.test.js +0 -5
  24. data/dist/menu.yml +3 -102
  25. data/dist/playbook-rails.js +7 -7
  26. data/dist/reset.css +2 -1
  27. data/lib/playbook/version.rb +2 -2
  28. metadata +7 -28
  29. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_collapsible_trail.jsx +0 -52
  30. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_collapsible_trail.md +0 -1
  31. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_expanded_control.jsx +0 -59
  32. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_expanded_control.md +0 -18
  33. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_loading.jsx +0 -60
  34. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_loading.md +0 -3
  35. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort.md +0 -5
  36. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort_control.jsx +0 -63
  37. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort_control.md +0 -3
  38. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_subrow_headers.jsx +0 -57
  39. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_subrow_headers.md +0 -3
  40. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_options.jsx +0 -61
  41. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_options.md +0 -3
  42. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props.jsx +0 -55
  43. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props.md +0 -1
  44. data/app/pb_kits/playbook/pb_popover/docs/_popover_actionable_content.html.erb +0 -30
  45. data/app/pb_kits/playbook/pb_popover/docs/_popover_actionable_content.jsx +0 -57
  46. data/app/pb_kits/playbook/pb_table/docs/_table_striped.html.erb +0 -48
  47. data/app/pb_kits/playbook/pb_table/docs/_table_striped.jsx +0 -58
  48. data/app/pb_kits/playbook/pb_table/docs/_table_striped.md +0 -1
  49. data/app/pb_kits/playbook/pb_table/styles/_striped.scss +0 -19
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d229baf16d600479c55f9fc35e8b93b5978cba2506b23e883860ea2094294809
4
- data.tar.gz: 0d23fa917195b34c496c19a7f7f741e4ffce3807706019805469d92ba728c015
3
+ metadata.gz: 8c288d80cbfc92741e976eda7ca6fd7e4ecbf256b5f5ad9e4e8a23f2b4ddb6ae
4
+ data.tar.gz: 675612e33fd9e560aa274763e5de44bfea34fd1af570d03b951a803994fbd4dd
5
5
  SHA512:
6
- metadata.gz: 2d3610e3ec299cc4bc396ebe9d11169d3da50624aec176a2656bb846f426410027213461715d2cfd83f55f8e53b478c4f734e2115fe9265a4203046d6318358d
7
- data.tar.gz: f91b7cfefcb02e1078a1ff1f607bb71b55a10460ec8b9707f0e740783aeb0e36d6c54b84538cfa4857ef8daa044f1045d7d2aded18e2e51877acc2542d1a815c
6
+ metadata.gz: 3d14807433425abbbd0fdf53733c4e2addc7ebb6506d35a89ea7b06f06746c39e815d7e3100a57e54cf4fea14cfb8779693b0140da9d4b4f31eb5867a752b467
7
+ data.tar.gz: 916468edea21563fb47710ec9a691e16a0ba1852fc4b4f97637884d560a5ae0b7b55a6a434bfd73fec6d756e68b5af89a5b4b49f2b97f4f19d3b38fa4463df0e
@@ -1,5 +1,5 @@
1
- @import "tokens/typography";
2
- @import "tokens/colors";
1
+ @import "./tokens/typography";
2
+ @import "./tokens/colors";
3
3
 
4
4
  * {
5
5
  box-sizing: border-box;
@@ -72,6 +72,7 @@ const cellId = `${loading ?
72
72
  <Flex
73
73
  alignItems="center"
74
74
  justify={header.index === 0 && enableSorting ? "between" : header.index === 0 && !enableSorting ? "start" : "end"}
75
+ paddingLeft={loading ? "sm" : "none"}
75
76
  >
76
77
  {header.index === 0 &&
77
78
  !loading &&
@@ -113,7 +114,7 @@ const cellId = `${loading ?
113
114
  header.column.getCanSort() &&
114
115
  enableSorting &&
115
116
  (loading ? (
116
- <div className="loading-toggle-icon" />
117
+ <div className="loading-toggle-icon header-sort-icon" />
117
118
  ) : (
118
119
  <SortIconButton header={header}
119
120
  sortIcon={sortIcon}
@@ -162,7 +162,6 @@ const AdvancedTable = (props: AdvancedTableProps) => {
162
162
  getExpandedRowModel: getExpandedRowModel(),
163
163
  getSortedRowModel: getSortedRowModel(),
164
164
  enableSortingRemoval: false,
165
- sortDescFirst: true,
166
165
  ...expandAndSortState(),
167
166
  ...tableOptions,
168
167
  });
@@ -1,4 +1,4 @@
1
- import React, {useState} from "react";
1
+ import React from "react";
2
2
  import { render, screen } from "../utilities/test-utils";
3
3
 
4
4
  import { AdvancedTable } from "../";
@@ -13,25 +13,7 @@ const MOCK_DATA = [
13
13
  scheduledMeetings: "10",
14
14
  children: [
15
15
  {
16
- year: "2021",
17
- quarter: "Q1",
18
- month: null,
19
- day: null,
20
- newEnrollments: "2",
21
- scheduledMeetings: "35",
22
- },
23
- ],
24
- },
25
- {
26
- year: "2022",
27
- quarter: null,
28
- month: null,
29
- day: null,
30
- newEnrollments: "20",
31
- scheduledMeetings: "10",
32
- children: [
33
- {
34
- year: "2022",
16
+ year: "2011",
35
17
  quarter: "Q1",
36
18
  month: null,
37
19
  day: null,
@@ -58,70 +40,9 @@ const columnDefinitions = [
58
40
  },
59
41
  ];
60
42
 
61
- const subRowHeaders = ["Quarter"]
62
-
63
43
  const testId = "advanced_table";
64
44
 
65
- const AdvancedTableExpandControl = () => {
66
- const [expanded, setExpanded] = useState({'0': true})
67
-
68
- const expandedControl = {
69
- value: expanded,
70
- onChange: setExpanded,
71
- }
72
-
73
- return (
74
- <div>
75
- <AdvancedTable
76
- columnDefinitions={columnDefinitions}
77
- data={{ testid: testId }}
78
- expandedControl={expandedControl}
79
- tableData={MOCK_DATA}
80
- />
81
- </div>
82
- );
83
- }
84
-
85
- const AdvancedTableSortControl = () => {
86
- const [isSortDesc, setIsSortDesc] = useState({desc: false})
87
-
88
- const sortControl = {
89
- value: isSortDesc,
90
- onChange: setIsSortDesc,
91
- }
92
-
93
- return (
94
- <div>
95
- <AdvancedTable
96
- columnDefinitions={columnDefinitions}
97
- data={{testid: testId}}
98
- sortControl={sortControl}
99
- tableData={MOCK_DATA}
100
- >
101
- <AdvancedTable.Header enableSorting />
102
- <AdvancedTable.Body />
103
- </AdvancedTable>
104
- </div>
105
- );
106
- }
107
-
108
- const tableOptions = {
109
- initialState: {
110
- sorting: [
111
- {
112
- id: "year",
113
- desc: true,
114
- },
115
- ],
116
- },
117
- }
118
-
119
- const tableProps = {
120
- container: false,
121
- sticky: true
122
- }
123
-
124
- test("Generates default kit and classname", () => {
45
+ test("generated scaffold test", () => {
125
46
  render(
126
47
  <AdvancedTable
127
48
  columnDefinitions={columnDefinitions}
@@ -132,214 +53,4 @@ test("Generates default kit and classname", () => {
132
53
 
133
54
  const kit = screen.getByTestId(testId);
134
55
  expect(kit).toBeInTheDocument();
135
- expect(kit).toHaveClass('pb_advanced_table')
136
- });
137
-
138
- test("Generates aria label", () => {
139
- render(
140
- <AdvancedTable
141
- aria={{label:testId}}
142
- columnDefinitions={columnDefinitions}
143
- data={{ testid: testId }}
144
- tableData={MOCK_DATA}
145
- />
146
- );
147
-
148
- const kit = screen.getByTestId(testId);
149
- expect(kit).toHaveAttribute('aria-label', testId)
150
- });
151
-
152
- test("Row toggle button exists and toggles subrows open and closed", () => {
153
- render(
154
- <AdvancedTable
155
- columnDefinitions={columnDefinitions}
156
- data={{ testid: testId }}
157
- tableData={MOCK_DATA}
158
- />
159
- );
160
-
161
- const kit = screen.getByTestId(testId);
162
- const rowButton = kit.querySelector(".gray-icon.expand-toggle-icon")
163
- expect(rowButton).toBeInTheDocument()
164
- const subRow1 = kit.querySelector(".bg-white.depth-sub-row-1")
165
- expect(subRow1).not.toBeInTheDocument()
166
- rowButton.click()
167
- const subRow = kit.querySelector(".bg-white.depth-sub-row-1")
168
- expect(subRow).toBeInTheDocument()
169
- });
170
-
171
- test("toggleExpansionAll button exists and toggles subrows open and closed", () => {
172
- render(
173
- <AdvancedTable
174
- columnDefinitions={columnDefinitions}
175
- data={{ testid: testId }}
176
- tableData={MOCK_DATA}
177
- />
178
- );
179
-
180
- const kit = screen.getByTestId(testId);
181
- const toggleButton = kit.querySelector(".gray-icon.toggle-all-icon")
182
- expect(toggleButton).toBeInTheDocument()
183
- const subRow1 = kit.querySelector(".bg-white.depth-sub-row-1")
184
- expect(subRow1).not.toBeInTheDocument()
185
- toggleButton.click()
186
- const subRow = kit.querySelector(".bg-white.depth-sub-row-1")
187
- expect(subRow).toBeInTheDocument()
188
- });
189
-
190
- test("loading state + initialLoadingRowCount prop", () => {
191
- render(
192
- <AdvancedTable
193
- columnDefinitions={columnDefinitions}
194
- data={{ testid: testId }}
195
- initialLoadingRowsCount={13}
196
- loading
197
- tableData={MOCK_DATA}
198
- />
199
- );
200
-
201
- const kit = screen.getByTestId(testId);
202
- const table = kit.querySelector('table')
203
- expect(table).toHaveClass('pb_table table-sm table-responsive-none table-card data_table ns_tabular content-loading')
204
-
205
- const tableBody = kit.querySelector('tbody')
206
- const tableRows = tableBody.getElementsByTagName('tr')
207
- expect(tableRows).toHaveLength(13)
208
- });
209
-
210
- test("subRowHeaders are rendered", () => {
211
- render(
212
- <AdvancedTable
213
- columnDefinitions={columnDefinitions}
214
- data={{ testid: testId }}
215
- tableData={MOCK_DATA}
216
- >
217
- <AdvancedTable.Header />
218
- <AdvancedTable.Body subRowHeaders={subRowHeaders}/>
219
- </AdvancedTable>
220
- );
221
-
222
- const kit = screen.getByTestId(testId);
223
-
224
- const rowButton = kit.querySelector(".gray-icon.expand-toggle-icon")
225
- rowButton.click()
226
-
227
- const subRowHeader = kit.querySelector(".custom-row.bg-silver")
228
- expect(subRowHeader).toBeInTheDocument()
229
- });
230
-
231
- test("expandControl prop works as expected", () => {
232
- render (<AdvancedTableExpandControl/>)
233
-
234
- const kit = screen.getByTestId(testId);
235
- const subRow = kit.querySelector(".bg-white.depth-sub-row-1")
236
- expect(subRow).toBeInTheDocument()
237
- })
238
-
239
- test("tableOptions prop functions as expected", () => {
240
- render(
241
- <AdvancedTable
242
- columnDefinitions={columnDefinitions}
243
- data={{ testid: testId }}
244
- tableData={MOCK_DATA}
245
- tableOptions={tableOptions}
246
- />
247
- );
248
-
249
- const kit = screen.getByTestId(testId);
250
- const row1 = kit.getElementsByTagName('tr')[1]
251
-
252
- expect(row1.id).toBe("1-1-0-row")
253
- });
254
-
255
- test("tableProps prop functions as expected", () => {
256
- render(
257
- <AdvancedTable
258
- columnDefinitions={columnDefinitions}
259
- data={{ testid: testId }}
260
- tableData={MOCK_DATA}
261
- tableProps={tableProps}
262
- />
263
- );
264
-
265
- const kit = screen.getByTestId(testId);
266
- const table = kit.querySelector('table')
267
- expect(table).toHaveClass("pb_table table-sm table-responsive-none data_table sticky-header ns_tabular")
268
56
  });
269
-
270
- test("enableExpansionIcon changes icon", () => {
271
- render(
272
- <AdvancedTable
273
- columnDefinitions={columnDefinitions}
274
- data={{ testid: testId }}
275
- tableData={MOCK_DATA}
276
- tableProps={tableProps}
277
- toggleExpansionIcon= "chevron-up"
278
- />
279
- );
280
-
281
- const kit = screen.getByTestId(testId);
282
- const tableHead = kit.querySelector('table')
283
- const toggleIcon= tableHead.querySelector(".pb_icon_kit")
284
- expect(toggleIcon).toHaveClass("fa-chevron-up")
285
- });
286
-
287
- test("sortIcon changes icon", () => {
288
- render(
289
- <AdvancedTable
290
- columnDefinitions={columnDefinitions}
291
- data={{ testid: testId }}
292
- tableData={MOCK_DATA}
293
- tableProps={tableProps}
294
- >
295
- <AdvancedTable.Header
296
- enableSorting
297
- sortIcon= {["chevron-up","chevron-down"]}
298
- />
299
- <AdvancedTable.Body />
300
- </AdvancedTable>
301
- );
302
-
303
- const kit = screen.getByTestId(testId);
304
- const sortIcon = kit.querySelector('.sort-button-icon')
305
- const icon= sortIcon.querySelector(".pb_icon_kit")
306
- expect(icon).toHaveClass("fa-chevron-down")
307
- });
308
-
309
- test("Sort icon renders with enableSorting + sortControl works as expected", () => {
310
- render (<AdvancedTableSortControl/>)
311
-
312
- const kit = screen.getByTestId(testId);
313
- const sortIcon = kit.querySelector(".sort-button-icon")
314
- expect(sortIcon).toBeInTheDocument()
315
-
316
- const row1 = kit.getElementsByTagName('tr')[1]
317
-
318
- expect(row1.id).toBe("1-1-0-row")
319
- })
320
-
321
- test("sort button exists and sorts column data", () => {
322
- render(
323
- <AdvancedTable
324
- columnDefinitions={columnDefinitions}
325
- data={{ testid: testId }}
326
- tableData={MOCK_DATA}
327
- >
328
- <AdvancedTable.Header enableSorting />
329
- <AdvancedTable.Body />
330
- </AdvancedTable>
331
- );
332
-
333
- const kit = screen.getByTestId(testId);
334
-
335
- const sortButton= kit.querySelector(".pb_flex_kit_orientation_row_justify_content_between_align_items_top_spacing_none.pl_xxs.cursor_pointer.header-sort-button.pb_th_link")
336
- expect(sortButton).toBeInTheDocument()
337
-
338
- const row1 = kit.getElementsByTagName('tr')[1]
339
-
340
- expect(row1.id).toBe("0-0-0-row")
341
- sortButton.click()
342
-
343
- const row2 = kit.getElementsByTagName('tr')[2]
344
- expect(row2.id).toBe("0-0-0-row")
345
- });
@@ -1,12 +1,7 @@
1
- The AdvancedTable kit accepts tree data and automatically renders expansion controls for nested subrows, to any depth, based on the data it is given. In it's simplest form, __the kit has two required props__:
1
+ The AdvancedTable kit takes the table data and automatically renders expandable subrows for nested items to any depth needed. In it's simplest form, the kit has two required props:
2
2
 
3
- ### tableData
3
+ `tableData` is the data that the kit needs to consume to render the table. This data will take the structure of an array of objects where each object will be rendered as a row with the key/value pairs being the column values. If an object within that data has children, the kit will automatically create subRows with icon buttons on the parent rows to toggle the subRows open or closed. The toggleExpansionAll button in the first column header can also be used to toggle expansion for the top level parent rows. For a visual of the data structure needed for `tableData`, see [here](https://github.com/powerhome/playbook/blob/PBNTR-177-New-Advanced-Table-Kit/playbook/app/pb_kits/playbook/pb_advanced_table/README.md).
4
4
 
5
- `tableData` accepts an array of objects as the table data. Each object is a table row, and each key:value pair within an object is a column value within that row. Nested children within a data object are automatically rendered as subrows under their parent row. Each parent row is prepended with expansion controls for toggling its nested child rows. The `toggleExpansionAll` button in the first column header can also be used to toggle expansion of all parent rows within the table.
6
-
7
- For a visual of the data structure needed for `tableData`, see [here](https://github.com/powerhome/playbook/tree/master/playbook/app/pb_kits/playbook/pb_advanced_table#readme).
8
-
9
- ### columnDefinitions
10
5
 
11
6
  `columnDefinitions` maps to the columns prop on the Tanstack table. Column definitions are the single most important part of building a table as they are responsible for building the underlying data model that is used for all sorting, expansion, etc. `ColumnDefinitions` in the AdvancedTable kit is a array of objects as seen in the code snippet below. Each object within the array has two REQUIRED items:
12
7
 
@@ -35,15 +35,20 @@ const AdvancedTableSort = (props) => {
35
35
  },
36
36
  ];
37
37
 
38
+ //Render the subRow header rows
39
+ const subRowHeaders = ["Quarter", "Month", "Day"]
40
+
41
+
38
42
  return (
39
43
  <div>
40
44
  <AdvancedTable
41
45
  columnDefinitions={columnDefinitions}
46
+ enableToggleExpansion="all"
42
47
  tableData={MOCK_DATA}
43
48
  {...props}
44
49
  >
45
50
  <AdvancedTable.Header enableSorting />
46
- <AdvancedTable.Body />
51
+ <AdvancedTable.Body subRowHeaders={subRowHeaders} />
47
52
  </AdvancedTable>
48
53
  </div>
49
54
  );
@@ -1,12 +1,6 @@
1
1
  examples:
2
2
  react:
3
- - advanced_table_default: Default (Required Props)
4
- - advanced_table_loading: Loading State
5
- - advanced_table_sort: enable Sorting
6
- - advanced_table_sort_control: Sort Control
7
- - advanced_table_expanded_control: Expanded Control
8
- - advanced_table_subrow_headers: SubRow Headers
9
- - advanced_table_collapsible_trail: Collapsible Trail
10
- - advanced_table_table_options: Table Options
11
- - advanced_table_table_props: Table Props
12
-
3
+ - advanced_table_default: Default
4
+ # - advanced_table_sort: enableSorting
5
+
6
+
@@ -1,9 +1,2 @@
1
1
  export { default as AdvancedTableDefault } from './_advanced_table_default.jsx'
2
2
  export { default as AdvancedTableSort } from './_advanced_table_sort.jsx'
3
- export { default as AdvancedTableSortControl } from './_advanced_table_sort_control.jsx'
4
- export { default as AdvancedTableLoading } from './_advanced_table_loading.jsx'
5
- export { default as AdvancedTableExpandedControl } from './_advanced_table_expanded_control.jsx'
6
- export { default as AdvancedTableSubrowHeaders } from './_advanced_table_subrow_headers.jsx'
7
- export { default as AdvancedTableCollapsibleTrail } from './_advanced_table_collapsible_trail.jsx'
8
- export { default as AdvancedTableTableOptions } from './_advanced_table_table_options.jsx'
9
- export { default as AdvancedTableTableProps } from './_advanced_table_table_props.jsx'
@@ -55,12 +55,11 @@
55
55
  }
56
56
 
57
57
  .loading-toggle-icon {
58
- width: $space_sm - 3;
59
- height: $space_sm - 4;
60
- margin-right: $space_xxs;
58
+ width: $space_sm - 1;
59
+ height: $space_sm - 1;
61
60
  margin-bottom: $space_xxs + 2;
62
61
  &::after {
63
- height: $space_sm - 4;
62
+ height: $space_sm - 1;
64
63
  border-radius: $border_radius_rounded;
65
64
  }
66
65
  }
@@ -1,5 +1,5 @@
1
- @import "tokens/colors";
2
- @import "tokens/spacing";
1
+ @import "./tokens/colors";
2
+ @import "./tokens/spacing";
3
3
 
4
4
  [class^=pb_collapsible_kit] {
5
5
  padding: $space_md;
@@ -1,5 +1,5 @@
1
1
  // Manual Import -- Flatpickr Styles
2
- @import "tokens/typography";
2
+ @import "./tokens/typography";
3
3
 
4
4
  .flatpickr-calendar {
5
5
  background: transparent;
@@ -3,10 +3,12 @@
3
3
  <%= pb_rails("button", props: {html_type: "submit", text: "Save Phone Number"}) %>
4
4
  </form>
5
5
 
6
- <%= javascript_tag do %>
7
- document.addEventListener('DOMContentLoaded', function () {
8
- document.querySelector('#example-form-validation').addEventListener('submit', function (e) {
9
- if (e.target.querySelectorAll('[error]:not([error=""])').length > 0) e.preventDefault();
6
+ <% content_for(:pb_js) do %>
7
+ <%= javascript_tag do %>
8
+ document.addEventListener('DOMContentLoaded', function () {
9
+ document.querySelector('#example-form-validation').addEventListener('submit', function (e) {
10
+ if (e.target.querySelectorAll('[error]:not([error=""])').length > 0) e.preventDefault();
11
+ })
10
12
  })
11
- })
13
+ <% end %>
12
14
  <% end %>
@@ -171,27 +171,29 @@ const PbReactPopover = (props: PbPopoverProps): React.ReactElement => {
171
171
 
172
172
  document.body.addEventListener(
173
173
  "click",
174
- (e: MouseEvent) => {
175
- const target = e.target as HTMLElement
176
-
174
+ ({ target }) => {
177
175
  const targetIsPopover =
178
- target.closest("#" + targetId) !== null;
176
+ (target as HTMLElement).closest("#" + targetId) !==
177
+ null;
179
178
  const targetIsReference =
180
- target.closest("#reference-" + targetId) !== null;
181
-
182
- const shouldClose = () => {
183
- setTimeout(() => shouldClosePopover(true), 0);
184
- }
179
+ (target as HTMLElement).closest("#reference-" + targetId) !==
180
+ null;
185
181
 
186
182
  switch (closeOnClick) {
187
183
  case "outside":
188
- if (!targetIsPopover && !targetIsReference) shouldClose();
184
+ if (!targetIsPopover && !targetIsReference) {
185
+ shouldClosePopover(true);
186
+ }
189
187
  break;
190
188
  case "inside":
191
- if (targetIsPopover) shouldClose();
189
+ if (targetIsPopover) {
190
+ shouldClosePopover(true);
191
+ }
192
192
  break;
193
193
  case "any":
194
- if (targetIsPopover || !targetIsPopover && !targetIsReference) shouldClose();
194
+ if (targetIsPopover || !targetIsPopover && !targetIsReference) {
195
+ shouldClosePopover(true);
196
+ }
195
197
  break;
196
198
  }
197
199
  },
@@ -5,7 +5,6 @@ examples:
5
5
  - popover_close: Close Options
6
6
  - popover_z_index: Set Z-Index
7
7
  - popover_scroll_height: Scroll and Height Settings
8
- - popover_actionable_content: With Actionable Content
9
8
 
10
9
  react:
11
10
  - popover_default: Default
@@ -13,4 +12,4 @@ examples:
13
12
  - popover_close: Close Options
14
13
  - popover_z_index: Set Z-Index
15
14
  - popover_scroll_height: Scroll and Height Settings
16
- - popover_actionable_content: With Actionable Content
15
+
@@ -3,4 +3,3 @@ export { default as PopoverList } from './_popover_list.jsx'
3
3
  export { default as PopoverClose } from './_popover_close.jsx'
4
4
  export { default as PopoverZIndex } from './_popover_z_index.jsx'
5
5
  export { default as PopoverScrollHeight } from './_popover_scroll_height.jsx'
6
- export { default as PopoverActionableContent } from './_popover_actionable_content.jsx'