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.
- checksums.yaml +4 -4
- data/app/pb_kits/playbook/_reset.scss +2 -2
- data/app/pb_kits/playbook/pb_advanced_table/Components/TableHeaderCell.tsx +2 -1
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +0 -1
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table.test.jsx +3 -292
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_default.md +2 -7
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort.jsx +6 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +4 -10
- data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +0 -7
- data/app/pb_kits/playbook/pb_advanced_table/scss_partials/_loading.scss +3 -4
- data/app/pb_kits/playbook/pb_collapsible/_collapsible.scss +2 -2
- data/app/pb_kits/playbook/pb_date_picker/sass_partials/_flatpickr_styles.scss +1 -1
- data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_validation.html.erb +7 -5
- data/app/pb_kits/playbook/pb_popover/_popover.tsx +14 -12
- data/app/pb_kits/playbook/pb_popover/docs/example.yml +1 -2
- data/app/pb_kits/playbook/pb_popover/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_popover/popover.test.js +31 -29
- data/app/pb_kits/playbook/pb_table/_table.tsx +0 -3
- data/app/pb_kits/playbook/pb_table/docs/example.yml +0 -2
- data/app/pb_kits/playbook/pb_table/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_table/styles/_all.scss +0 -1
- data/app/pb_kits/playbook/pb_table/table.rb +1 -7
- data/app/pb_kits/playbook/pb_table/table.test.js +0 -5
- data/dist/menu.yml +3 -102
- data/dist/playbook-rails.js +7 -7
- data/dist/reset.css +2 -1
- data/lib/playbook/version.rb +2 -2
- metadata +7 -28
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_collapsible_trail.jsx +0 -52
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_collapsible_trail.md +0 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_expanded_control.jsx +0 -59
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_expanded_control.md +0 -18
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_loading.jsx +0 -60
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_loading.md +0 -3
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort.md +0 -5
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort_control.jsx +0 -63
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort_control.md +0 -3
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_subrow_headers.jsx +0 -57
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_subrow_headers.md +0 -3
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_options.jsx +0 -61
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_options.md +0 -3
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props.jsx +0 -55
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props.md +0 -1
- data/app/pb_kits/playbook/pb_popover/docs/_popover_actionable_content.html.erb +0 -30
- data/app/pb_kits/playbook/pb_popover/docs/_popover_actionable_content.jsx +0 -57
- data/app/pb_kits/playbook/pb_table/docs/_table_striped.html.erb +0 -48
- data/app/pb_kits/playbook/pb_table/docs/_table_striped.jsx +0 -58
- data/app/pb_kits/playbook/pb_table/docs/_table_striped.md +0 -1
- 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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8c288d80cbfc92741e976eda7ca6fd7e4ecbf256b5f5ad9e4e8a23f2b4ddb6ae
|
4
|
+
data.tar.gz: 675612e33fd9e560aa274763e5de44bfea34fd1af570d03b951a803994fbd4dd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3d14807433425abbbd0fdf53733c4e2addc7ebb6506d35a89ea7b06f06746c39e815d7e3100a57e54cf4fea14cfb8779693b0140da9d4b4f31eb5867a752b467
|
7
|
+
data.tar.gz: 916468edea21563fb47710ec9a691e16a0ba1852fc4b4f97637884d560a5ae0b7b55a6a434bfd73fec6d756e68b5af89a5b4b49f2b97f4f19d3b38fa4463df0e
|
@@ -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
|
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: "
|
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
|
-
|
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
|
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
|
-
|
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
|
4
|
-
-
|
5
|
-
|
6
|
-
|
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 -
|
59
|
-
height: $space_sm -
|
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 -
|
62
|
+
height: $space_sm - 1;
|
64
63
|
border-radius: $border_radius_rounded;
|
65
64
|
}
|
66
65
|
}
|
data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_validation.html.erb
CHANGED
@@ -3,10 +3,12 @@
|
|
3
3
|
<%= pb_rails("button", props: {html_type: "submit", text: "Save Phone Number"}) %>
|
4
4
|
</form>
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
document.
|
9
|
-
|
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
|
-
(
|
175
|
-
const target = e.target as HTMLElement
|
176
|
-
|
174
|
+
({ target }) => {
|
177
175
|
const targetIsPopover =
|
178
|
-
target.closest("#" + targetId) !==
|
176
|
+
(target as HTMLElement).closest("#" + targetId) !==
|
177
|
+
null;
|
179
178
|
const targetIsReference =
|
180
|
-
target.closest("#reference-" + targetId) !==
|
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)
|
184
|
+
if (!targetIsPopover && !targetIsReference) {
|
185
|
+
shouldClosePopover(true);
|
186
|
+
}
|
189
187
|
break;
|
190
188
|
case "inside":
|
191
|
-
if (targetIsPopover)
|
189
|
+
if (targetIsPopover) {
|
190
|
+
shouldClosePopover(true);
|
191
|
+
}
|
192
192
|
break;
|
193
193
|
case "any":
|
194
|
-
if (targetIsPopover || !targetIsPopover && !targetIsReference)
|
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
|
-
|
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'
|