playbook_ui 14.16.0.pre.alpha.play1958formgrouperrorborder7022 → 14.16.0.pre.alpha.play1959tablekitstripedlogicoverridesbackground6892
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/pb_kits/playbook/pb_advanced_table/Utilities/types.ts +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +0 -70
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +2 -83
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table.test.jsx +2 -15
- data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +1 -2
- data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +1 -2
- data/app/pb_kits/playbook/pb_date_picker/_date_picker.tsx +34 -34
- data/app/pb_kits/playbook/pb_date_picker/date_picker.html.erb +2 -2
- data/app/pb_kits/playbook/pb_date_picker/date_picker_helper.ts +0 -16
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_inline.html.erb +11 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_inline.jsx +7 -0
- data/app/pb_kits/playbook/pb_date_picker/sass_partials/_inline_styles.scss +24 -28
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_autocomplete.jsx +6 -6
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_autocomplete_and_custom_display.jsx +6 -6
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_display.jsx +6 -6
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_display_rails.html.erb +8 -8
- data/app/pb_kits/playbook/pb_filter/Filter/CurrentFilters.tsx +4 -3
- data/app/pb_kits/playbook/pb_filter/Filter/SortMenu.tsx +3 -2
- data/app/pb_kits/playbook/pb_form/pb_form_validation.js +1 -1
- data/app/pb_kits/playbook/pb_form_group/_form_group.scss +0 -22
- data/app/pb_kits/playbook/pb_layout/_layout.scss +0 -58
- data/app/pb_kits/playbook/pb_layout/_layout.tsx +7 -20
- data/app/pb_kits/playbook/pb_layout/docs/example.yml +0 -1
- data/app/pb_kits/playbook/pb_layout/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_layout/layout.test.js +0 -4
- data/app/pb_kits/playbook/pb_lightbox/hooks/useVisibility.js +1 -1
- data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.tsx +1 -2
- data/app/pb_kits/playbook/pb_table/styles/_striped.scss +1 -1
- data/app/pb_kits/playbook/pb_tooltip/floating_ui.js +282 -0
- data/app/pb_kits/playbook/pb_tooltip/index.js +56 -183
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_highlight.jsx +4 -4
- data/app/pb_kits/playbook/pb_typeahead/index.ts +2 -2
- data/app/pb_kits/playbook/utilities/globalProps.ts +1 -1
- data/app/pb_kits/playbook/utilities/object.test.js +1 -149
- data/app/pb_kits/playbook/utilities/object.ts +42 -124
- data/dist/chunks/{_typeahead-Djo6qCne.js → _typeahead-N-EFroAX.js} +3 -3
- data/dist/chunks/_weekday_stacked-Db780bKR.js +45 -0
- data/dist/chunks/lib-Co5y3V4K.js +29 -0
- data/dist/chunks/{pb_form_validation-BvNy9Bd6.js → pb_form_validation-DMajaRt3.js} +1 -1
- data/dist/chunks/vendor.js +1 -1
- data/dist/playbook-doc.js +1 -1
- data/dist/playbook-rails-react-bindings.js +1 -1
- data/dist/playbook-rails.js +1 -1
- data/dist/playbook.css +1 -1
- data/lib/playbook/version.rb +1 -1
- metadata +7 -12
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_fullscreen.jsx +0 -90
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_fullscreen.md +0 -3
- data/app/pb_kits/playbook/pb_layout/docs/_layout_bracket.jsx +0 -190
- data/app/pb_kits/playbook/pb_layout/docs/_layout_bracket.md +0 -5
- data/app/pb_kits/playbook/pb_layout/subcomponents/_game.tsx +0 -90
- data/app/pb_kits/playbook/pb_layout/subcomponents/_round.tsx +0 -57
- data/dist/chunks/_weekday_stacked-BV8x7Ogy.js +0 -45
- data/dist/chunks/lib-BGzBzFZX.js +0 -29
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 587e6ce7fc55be094027d2d2a58d4cf002a8a7c823600bf948296eff7ce928d7
|
4
|
+
data.tar.gz: a53b7609d0f527f00109c9011f9b4c210a48af9597beb28f5e79215631e99353
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 44da80957b1b634e626e5ccc0e04badbd4211d8d0b65f2d867909970895de8334569832c36a0cd0b61d5514b4a6bd0c5c8afbce702c0beae2161ab798ee371a2
|
7
|
+
data.tar.gz: 937164a8cd121323562f3b2f5b6aa4c63ea6a12c8c04eb67a4b2ad606bf6304772f7a84c44381dfcbb0252ab796c30537e84f5e45f263e2a66333ece35f79e14
|
@@ -7,7 +7,6 @@
|
|
7
7
|
@import "./scss_partials/chrome_styles";
|
8
8
|
@import "../tokens/screen_sizes";
|
9
9
|
@import "../tokens/shadows";
|
10
|
-
@import "../tokens/positioning";
|
11
10
|
|
12
11
|
.pb_advanced_table {
|
13
12
|
$border-color: 1px solid $border_light;
|
@@ -230,53 +229,6 @@
|
|
230
229
|
max-height: 1920px;
|
231
230
|
overflow-y: auto;
|
232
231
|
}
|
233
|
-
|
234
|
-
// Fullscreen
|
235
|
-
&.advanced-table-allow-fullscreen {
|
236
|
-
transition: all 0.3s ease;
|
237
|
-
}
|
238
|
-
|
239
|
-
&.advanced-table-fullscreen {
|
240
|
-
background-color: $bg_light;
|
241
|
-
box-sizing: border-box;
|
242
|
-
height: 100vh;
|
243
|
-
left: 0;
|
244
|
-
overflow: auto;
|
245
|
-
position: fixed;
|
246
|
-
top: 0;
|
247
|
-
width: 100%;
|
248
|
-
z-index: $z_10;
|
249
|
-
|
250
|
-
.pb_table {
|
251
|
-
th, td, div, button {
|
252
|
-
font-size: calc(100%);
|
253
|
-
}
|
254
|
-
box-sizing: border-box;
|
255
|
-
margin: $space_lg;
|
256
|
-
max-width: calc(100% - 64px);
|
257
|
-
width: calc(100% - 64px);
|
258
|
-
}
|
259
|
-
|
260
|
-
.pb_table.sticky-header {
|
261
|
-
thead,
|
262
|
-
.pb_advanced_table_header {
|
263
|
-
position: sticky !important;
|
264
|
-
top: 44px !important;
|
265
|
-
z-index: $z_10;
|
266
|
-
}
|
267
|
-
}
|
268
|
-
}
|
269
|
-
|
270
|
-
.advanced-table-fullscreen-header {
|
271
|
-
background-color: $white;
|
272
|
-
height: 44px;
|
273
|
-
padding: 13px 20px;
|
274
|
-
position: sticky;
|
275
|
-
top: 0;
|
276
|
-
width: 100%;
|
277
|
-
z-index: $z_10;
|
278
|
-
}
|
279
|
-
|
280
232
|
// Icons
|
281
233
|
.button-icon {
|
282
234
|
display: flex;
|
@@ -325,16 +277,6 @@
|
|
325
277
|
}
|
326
278
|
}
|
327
279
|
|
328
|
-
.fullscreen-icon {
|
329
|
-
@extend .button-icon;
|
330
|
-
@extend %primary-color-pseudo;
|
331
|
-
padding: 2px 0;
|
332
|
-
|
333
|
-
&:focus-visible {
|
334
|
-
border-radius: $border_rad_lighter;
|
335
|
-
}
|
336
|
-
}
|
337
|
-
|
338
280
|
// Vertical separator
|
339
281
|
.table-header-cells:first-child,
|
340
282
|
.table-header-cells-custom:first-child,
|
@@ -524,18 +466,6 @@
|
|
524
466
|
box-shadow: 1px 0px 0px 0px $border_dark !important;
|
525
467
|
}
|
526
468
|
|
527
|
-
// Fullscreen
|
528
|
-
&.advanced-table-fullscreen {
|
529
|
-
background: $bg_dark;
|
530
|
-
}
|
531
|
-
|
532
|
-
.advanced-table-fullscreen-header {
|
533
|
-
background-color: $bg_dark_card;
|
534
|
-
position: sticky;
|
535
|
-
top: 0;
|
536
|
-
z-index: $z_10;
|
537
|
-
}
|
538
|
-
|
539
469
|
// Dark Mode Responsive Styles
|
540
470
|
@media only screen and (max-width: $screen-xl-min) {
|
541
471
|
&[class*="advanced-table-responsive-scroll"] {
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import React, { useRef, useEffect
|
1
|
+
import React, { useRef, useEffect } from "react";
|
2
2
|
import classnames from "classnames";
|
3
3
|
|
4
4
|
import { GenericObject } from "../types";
|
@@ -19,15 +19,6 @@ import TableActionBar from "./Components/TableActionBar";
|
|
19
19
|
import { useTableState } from "./Hooks/useTableState";
|
20
20
|
import { useTableActions } from "./Hooks/useTableActions";
|
21
21
|
|
22
|
-
import Card from "../pb_card/_card"
|
23
|
-
import Flex from "../pb_flex/_flex"
|
24
|
-
import Icon from "../pb_icon/_icon"
|
25
|
-
|
26
|
-
type FullscreenControls = {
|
27
|
-
toggleFullscreen: () => void;
|
28
|
-
isFullscreen: boolean;
|
29
|
-
};
|
30
|
-
|
31
22
|
type AdvancedTableProps = {
|
32
23
|
aria?: { [key: string]: string }
|
33
24
|
actions?: React.ReactNode[] | React.ReactNode
|
@@ -58,8 +49,6 @@ type AdvancedTableProps = {
|
|
58
49
|
toggleExpansionIcon?: string | string[]
|
59
50
|
onRowSelectionChange?: (arg: RowSelectionState) => void
|
60
51
|
virtualizedRows?: boolean
|
61
|
-
allowFullScreen?: boolean
|
62
|
-
fullScreenControl?: (controls: FullscreenControls) => void
|
63
52
|
} & GlobalProps;
|
64
53
|
|
65
54
|
const AdvancedTable = (props: AdvancedTableProps) => {
|
@@ -93,8 +82,6 @@ const AdvancedTable = (props: AdvancedTableProps) => {
|
|
93
82
|
toggleExpansionIcon = "arrows-from-line",
|
94
83
|
onRowSelectionChange,
|
95
84
|
virtualizedRows = false,
|
96
|
-
allowFullScreen = false,
|
97
|
-
fullScreenControl,
|
98
85
|
} = props;
|
99
86
|
|
100
87
|
// Component refs
|
@@ -159,68 +146,6 @@ const AdvancedTable = (props: AdvancedTableProps) => {
|
|
159
146
|
);
|
160
147
|
}, [fetchMoreOnBottomReached, fetchNextPage, isFetching, totalFetched, fullData.length]);
|
161
148
|
|
162
|
-
// Fullscreen
|
163
|
-
const [isFullscreen, setIsFullscreen] = useState(false)
|
164
|
-
|
165
|
-
const toggleFullscreen = useCallback(() => {
|
166
|
-
setIsFullscreen(prevState => !prevState)
|
167
|
-
}, [])
|
168
|
-
|
169
|
-
useEffect(() => {
|
170
|
-
if (allowFullScreen && fullScreenControl) {
|
171
|
-
fullScreenControl({
|
172
|
-
toggleFullscreen,
|
173
|
-
isFullscreen
|
174
|
-
})
|
175
|
-
}
|
176
|
-
}, [allowFullScreen, fullScreenControl, toggleFullscreen, isFullscreen])
|
177
|
-
|
178
|
-
const renderFullscreenHeader = () => {
|
179
|
-
if (!isFullscreen) return null
|
180
|
-
|
181
|
-
const defaultMinimizeIcon = (
|
182
|
-
<button
|
183
|
-
className="gray-icon fullscreen-icon"
|
184
|
-
onClick={toggleFullscreen}
|
185
|
-
>
|
186
|
-
<Icon
|
187
|
-
cursor="pointer"
|
188
|
-
fixedWidth
|
189
|
-
icon="arrow-down-left-and-arrow-up-right-to-center"
|
190
|
-
{...props}
|
191
|
-
/>
|
192
|
-
</button>
|
193
|
-
)
|
194
|
-
|
195
|
-
return (
|
196
|
-
<Card
|
197
|
-
borderNone
|
198
|
-
borderRadius="none"
|
199
|
-
className="advanced-table-fullscreen-header"
|
200
|
-
{...props}
|
201
|
-
>
|
202
|
-
<Flex justify="end">
|
203
|
-
{defaultMinimizeIcon}
|
204
|
-
</Flex>
|
205
|
-
</Card>
|
206
|
-
)
|
207
|
-
}
|
208
|
-
|
209
|
-
useEffect(() => {
|
210
|
-
if (!allowFullScreen) return
|
211
|
-
|
212
|
-
const handleKeyDown = (event: KeyboardEvent) => {
|
213
|
-
if (event.key === 'Escape' && isFullscreen) {
|
214
|
-
event.preventDefault()
|
215
|
-
toggleFullscreen()
|
216
|
-
}
|
217
|
-
}
|
218
|
-
document.addEventListener('keydown', handleKeyDown)
|
219
|
-
return () => {
|
220
|
-
document.removeEventListener('keydown', handleKeyDown)
|
221
|
-
}
|
222
|
-
}, [allowFullScreen, toggleFullscreen, isFullscreen])
|
223
|
-
|
224
149
|
// Build CSS classes and props
|
225
150
|
const ariaProps = buildAriaProps(aria);
|
226
151
|
const dataProps = buildDataProps(data);
|
@@ -229,10 +154,6 @@ const AdvancedTable = (props: AdvancedTableProps) => {
|
|
229
154
|
buildCss("pb_advanced_table"),
|
230
155
|
`advanced-table-responsive-${responsive}`,
|
231
156
|
maxHeight ? `advanced-table-max-height-${maxHeight}` : '',
|
232
|
-
{
|
233
|
-
'advanced-table-fullscreen': isFullscreen,
|
234
|
-
'advanced-table-allow-fullscreen': allowFullScreen
|
235
|
-
},
|
236
157
|
globalProps(props),
|
237
158
|
className
|
238
159
|
);
|
@@ -273,7 +194,6 @@ const AdvancedTable = (props: AdvancedTableProps) => {
|
|
273
194
|
ref={tableWrapperRef}
|
274
195
|
style={tableWrapperStyle as React.CSSProperties}
|
275
196
|
>
|
276
|
-
{renderFullscreenHeader()}
|
277
197
|
<AdvancedTableProvider
|
278
198
|
columnDefinitions={columnDefinitions}
|
279
199
|
enableToggleExpansion={enableToggleExpansion}
|
@@ -284,7 +204,6 @@ const AdvancedTable = (props: AdvancedTableProps) => {
|
|
284
204
|
hasAnySubRows={hasAnySubRows}
|
285
205
|
inlineRowLoading={inlineRowLoading}
|
286
206
|
isActionBarVisible={isActionBarVisible}
|
287
|
-
isFullscreen={isFullscreen}
|
288
207
|
loading={loading}
|
289
208
|
responsive={responsive}
|
290
209
|
selectableRows={selectableRows}
|
@@ -327,7 +246,7 @@ const AdvancedTable = (props: AdvancedTableProps) => {
|
|
327
246
|
</AdvancedTableProvider>
|
328
247
|
|
329
248
|
</div>
|
330
|
-
|
249
|
+
{/* Bottom Pagination */}
|
331
250
|
{pagination && (
|
332
251
|
<TablePagination
|
333
252
|
onChange={onPageChange}
|
@@ -149,7 +149,7 @@ return (
|
|
149
149
|
data={{testid: testId}}
|
150
150
|
sortControl={sortControl}
|
151
151
|
tableData={MOCK_DATA}
|
152
|
-
|
152
|
+
>
|
153
153
|
<AdvancedTable.Header enableSorting />
|
154
154
|
<AdvancedTable.Body />
|
155
155
|
</AdvancedTable>
|
@@ -498,17 +498,4 @@ test("customRenderer prop functions as expected", () => {
|
|
498
498
|
const kit = screen.getByTestId(testId)
|
499
499
|
const pill = kit.querySelector(".pb_pill_kit_success_lowercase")
|
500
500
|
expect(pill).toBeInTheDocument()
|
501
|
-
})
|
502
|
-
|
503
|
-
test("allowFullScreen prop adds fullscreen class", () => {
|
504
|
-
render(
|
505
|
-
<AdvancedTable
|
506
|
-
allowFullScreen
|
507
|
-
columnDefinitions={columnDefinitions}
|
508
|
-
tableData={MOCK_DATA}
|
509
|
-
/>
|
510
|
-
)
|
511
|
-
|
512
|
-
const tableContainer = screen.getByRole("table").closest("div")
|
513
|
-
expect(tableContainer).toHaveClass("advanced-table-allow-fullscreen")
|
514
|
-
})
|
501
|
+
})
|
@@ -39,5 +39,4 @@ examples:
|
|
39
39
|
- advanced_table_selectable_rows_no_subrows: Selectable Rows (No Subrows)
|
40
40
|
- advanced_table_selectable_rows_actions: Selectable Rows (With Actions)
|
41
41
|
- advanced_table_selectable_rows_header: Selectable Rows (No Actions Bar)
|
42
|
-
- advanced_table_inline_editing: Inline Cell Editing
|
43
|
-
- advanced_table_fullscreen: Fullscreen
|
42
|
+
- advanced_table_inline_editing: Inline Cell Editing
|
@@ -21,5 +21,4 @@ export { default as AdvancedTableSelectableRowsHeader } from './_advanced_table_
|
|
21
21
|
export { default as AdvancedTableSelectableRowsActions } from './_advanced_table_selectable_rows_actions.jsx'
|
22
22
|
export { default as AdvancedTableTablePropsStickyHeader } from './_advanced_table_table_props_sticky_header.jsx'
|
23
23
|
export { default as AdvancedTableColumnHeadersCustomCell } from './_advanced_table_column_headers_custom_cell.jsx'
|
24
|
-
export { default as AdvancedTableInlineEditing } from './_advanced_table_inline_editing.jsx'
|
25
|
-
export { default as AdvancedTableFullscreen } from './_advanced_table_fullscreen.jsx'
|
24
|
+
export { default as AdvancedTableInlineEditing } from './_advanced_table_inline_editing.jsx'
|
@@ -106,41 +106,41 @@ const DatePicker = (props: DatePickerProps): React.ReactElement => {
|
|
106
106
|
const inputAriaProps = buildAriaProps(inputAria)
|
107
107
|
const inputDataProps = buildDataProps(inputData)
|
108
108
|
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
109
|
+
useEffect(() => {
|
110
|
+
datePickerHelper({
|
111
|
+
allowInput,
|
112
|
+
customQuickPickDates,
|
113
|
+
defaultDate,
|
114
|
+
disableDate,
|
115
|
+
disableRange,
|
116
|
+
disableWeekdays,
|
117
|
+
enableTime,
|
118
|
+
format,
|
119
|
+
hideIcon,
|
120
|
+
inLine,
|
121
|
+
maxDate,
|
122
|
+
minDate,
|
123
|
+
mode,
|
124
|
+
onChange,
|
125
|
+
onClose,
|
126
|
+
pickerId,
|
127
|
+
plugins,
|
128
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
129
|
+
// @ts-ignore
|
130
|
+
position,
|
131
|
+
positionElement,
|
132
|
+
selectionType,
|
133
|
+
showTimezone,
|
134
|
+
staticPosition,
|
135
|
+
thisRangesEndToday,
|
136
|
+
yearRange,
|
137
|
+
required: false,
|
138
|
+
}, scrollContainer)
|
139
|
+
}, initializeOnce ? [] : undefined)
|
140
140
|
const filteredProps = {...props}
|
141
141
|
if (filteredProps.marginBottom === undefined) {
|
142
142
|
filteredProps.marginBottom = "sm"
|
143
|
-
}
|
143
|
+
}
|
144
144
|
delete filteredProps?.position
|
145
145
|
|
146
146
|
const classes = classnames(
|
@@ -221,7 +221,7 @@ const DatePicker = (props: DatePickerProps): React.ReactElement => {
|
|
221
221
|
{hideIcon && inLine ?
|
222
222
|
<div>
|
223
223
|
<div
|
224
|
-
className={
|
224
|
+
className={iconWrapperClass()}
|
225
225
|
id={`${pickerId}-icon-plus`}
|
226
226
|
>
|
227
227
|
<Icon
|
@@ -230,7 +230,7 @@ const DatePicker = (props: DatePickerProps): React.ReactElement => {
|
|
230
230
|
/>
|
231
231
|
</div>
|
232
232
|
<div
|
233
|
-
className={
|
233
|
+
className={iconWrapperClass()}
|
234
234
|
id={`${pickerId}-angle-down`}
|
235
235
|
>
|
236
236
|
<Icon
|
@@ -44,7 +44,7 @@
|
|
44
44
|
<% if object.hide_icon && object.inline %>
|
45
45
|
<!-- Plus Icon -->
|
46
46
|
<div
|
47
|
-
class="<%= object.icon_wrapper_class %>
|
47
|
+
class="<%= object.icon_wrapper_class %>"
|
48
48
|
id="<%= object.picker_id %>-icon-plus"
|
49
49
|
>
|
50
50
|
<%= pb_rails("icon", props: {
|
@@ -55,7 +55,7 @@
|
|
55
55
|
|
56
56
|
<!-- Angle Down Icon -->
|
57
57
|
<div
|
58
|
-
class="<%= object.icon_wrapper_class %>
|
58
|
+
class="<%= object.icon_wrapper_class %>"
|
59
59
|
id="<%= object.picker_id %>-angle-down"
|
60
60
|
>
|
61
61
|
<%= pb_rails("icon", props: {
|
@@ -174,21 +174,6 @@ const datePickerHelper = (config: DatePickerConfig, scrollContainer: string | HT
|
|
174
174
|
yearInput.value = fp.currentYear?.toString()
|
175
175
|
}
|
176
176
|
|
177
|
-
const handleDatePickerChange = (fp: Instance, selectedDates: Date[]) => {
|
178
|
-
const inputEl = fp.input
|
179
|
-
|
180
|
-
if (inputEl) {
|
181
|
-
const inlineDatePickerElem = inputEl.closest('.inline-date-picker')
|
182
|
-
if (inlineDatePickerElem) {
|
183
|
-
if (selectedDates && selectedDates.length > 0) {
|
184
|
-
inlineDatePickerElem.classList.add('show-angle-down-icon')
|
185
|
-
} else {
|
186
|
-
inlineDatePickerElem.classList.remove('show-angle-down-icon')
|
187
|
-
}
|
188
|
-
}
|
189
|
-
}
|
190
|
-
}
|
191
|
-
|
192
177
|
// ===========================================================
|
193
178
|
// | Flatpickr initializer w/ config |
|
194
179
|
// ===========================================================
|
@@ -219,7 +204,6 @@ const datePickerHelper = (config: DatePickerConfig, scrollContainer: string | HT
|
|
219
204
|
onClose(selectedDates, dateStr)
|
220
205
|
}],
|
221
206
|
onChange: [(selectedDates, dateStr, fp) => {
|
222
|
-
handleDatePickerChange(fp, selectedDates)
|
223
207
|
yearChangeHook(fp)
|
224
208
|
onChange(dateStr, selectedDates)
|
225
209
|
}],
|
@@ -4,3 +4,14 @@
|
|
4
4
|
inline: true,
|
5
5
|
picker_id: "date-picker-inline"
|
6
6
|
}) %>
|
7
|
+
|
8
|
+
<%= javascript_tag do %>
|
9
|
+
window.addEventListener("DOMContentLoaded", (event) => {
|
10
|
+
const fpInline = document.querySelector("#date-picker-inline")._flatpickr
|
11
|
+
<!-- Display the angle-down icon when a date has been selected -->
|
12
|
+
const showAngleDownHandler = () => {
|
13
|
+
document.querySelector('.inline-date-picker').classList.add('show-angle-down-icon')
|
14
|
+
}
|
15
|
+
fpInline.config.onChange.push(showAngleDownHandler)
|
16
|
+
})
|
17
|
+
<% end %>
|
@@ -3,12 +3,19 @@ import React from 'react'
|
|
3
3
|
import DatePicker from '../_date_picker'
|
4
4
|
|
5
5
|
const DatePickerInline = (props) => {
|
6
|
+
const showAngleDownHandler = (dateSelected) => {
|
7
|
+
if (dateSelected) {
|
8
|
+
document.querySelector('.inline-date-picker').classList.add('show-angle-down-icon')
|
9
|
+
}
|
10
|
+
}
|
11
|
+
|
6
12
|
return (
|
7
13
|
<div>
|
8
14
|
<DatePicker
|
9
15
|
className="inline-date-picker"
|
10
16
|
hideIcon
|
11
17
|
inLine
|
18
|
+
onChange={showAngleDownHandler}
|
12
19
|
pickerId="date-picker-inline"
|
13
20
|
{...props}
|
14
21
|
/>
|
@@ -14,12 +14,12 @@
|
|
14
14
|
opacity: 1;
|
15
15
|
}
|
16
16
|
&:not(:hover) {
|
17
|
-
|
17
|
+
#date-picker-inline-angle-down {
|
18
18
|
svg {
|
19
19
|
display: none;
|
20
20
|
}
|
21
21
|
}
|
22
|
-
|
22
|
+
#date-picker-inline-icon-plus {
|
23
23
|
svg {
|
24
24
|
color: $slate;
|
25
25
|
display: inline-block;
|
@@ -33,12 +33,12 @@
|
|
33
33
|
[class^="pb_text_input_kit"] .text_input_wrapper .flatpickr-wrapper .text_input .placeholder {
|
34
34
|
color: $primary;
|
35
35
|
}
|
36
|
-
|
36
|
+
#date-picker-inline-angle-down {
|
37
37
|
svg {
|
38
38
|
display: none;
|
39
39
|
}
|
40
40
|
}
|
41
|
-
|
41
|
+
#date-picker-inline-icon-plus {
|
42
42
|
svg {
|
43
43
|
display: inline-block;
|
44
44
|
color: $primary;
|
@@ -47,34 +47,32 @@
|
|
47
47
|
}
|
48
48
|
&.show-angle-down-icon {
|
49
49
|
&:not(:hover) {
|
50
|
-
|
50
|
+
#date-picker-inline-angle-down {
|
51
51
|
svg {
|
52
52
|
display: inline-block;
|
53
53
|
color: $text_lt_light;
|
54
54
|
}
|
55
55
|
}
|
56
|
-
|
56
|
+
#date-picker-inline-icon-plus {
|
57
57
|
svg {
|
58
58
|
display: none;
|
59
59
|
}
|
60
60
|
}
|
61
61
|
}
|
62
|
-
|
62
|
+
#date-picker-inline-icon-plus {
|
63
63
|
svg {
|
64
64
|
display: none;
|
65
65
|
}
|
66
66
|
}
|
67
|
-
|
67
|
+
#date-picker-inline-angle-down {
|
68
68
|
svg {
|
69
69
|
display: inline-block;
|
70
70
|
color: $primary;
|
71
71
|
}
|
72
72
|
}
|
73
73
|
}
|
74
|
-
|
75
|
-
|
76
|
-
.text_input.flatpickr-input,
|
77
|
-
.text_input.flatpickr-input .active {
|
74
|
+
#date-picker-inline,
|
75
|
+
#date-picker-inline .active {
|
78
76
|
border: none;
|
79
77
|
padding: 5px 5px 5px 10px;
|
80
78
|
background-color: #FFF;
|
@@ -84,8 +82,8 @@
|
|
84
82
|
box-shadow: none;
|
85
83
|
}
|
86
84
|
}
|
87
|
-
|
88
|
-
|
85
|
+
#date-picker-inline-angle-down,
|
86
|
+
#date-picker-inline-icon-plus {
|
89
87
|
height: 33px;
|
90
88
|
border: none;
|
91
89
|
}
|
@@ -98,12 +96,12 @@
|
|
98
96
|
[class^=pb_date_picker_kit].dark {
|
99
97
|
&.inline-date-picker {
|
100
98
|
&:not(:hover) {
|
101
|
-
|
99
|
+
#date-picker-inline-angle-down {
|
102
100
|
svg {
|
103
101
|
display: none;
|
104
102
|
}
|
105
103
|
}
|
106
|
-
|
104
|
+
#date-picker-inline-icon-plus {
|
107
105
|
svg {
|
108
106
|
display: inline-block;
|
109
107
|
color: $white;
|
@@ -117,12 +115,12 @@
|
|
117
115
|
[class^="pb_text_input_kit"] .text_input_wrapper .flatpickr-wrapper .text_input .placeholder {
|
118
116
|
color: $white;
|
119
117
|
}
|
120
|
-
|
118
|
+
#date-picker-inline-angle-down {
|
121
119
|
svg {
|
122
120
|
display: none;
|
123
121
|
}
|
124
122
|
}
|
125
|
-
|
123
|
+
#date-picker-inline-icon-plus {
|
126
124
|
svg {
|
127
125
|
display: inline-block;
|
128
126
|
color: $white;
|
@@ -131,34 +129,32 @@
|
|
131
129
|
}
|
132
130
|
&.show-angle-down-icon {
|
133
131
|
&:not(:hover) {
|
134
|
-
|
132
|
+
#date-picker-inline-angle-down {
|
135
133
|
svg {
|
136
134
|
display: inline-block;
|
137
135
|
color: $white;
|
138
136
|
}
|
139
137
|
}
|
140
|
-
|
138
|
+
#date-picker-inline-icon-plus {
|
141
139
|
svg {
|
142
140
|
display: none;
|
143
141
|
}
|
144
142
|
}
|
145
143
|
}
|
146
|
-
|
144
|
+
#date-picker-inline-icon-plus {
|
147
145
|
svg {
|
148
146
|
display: none;
|
149
147
|
}
|
150
148
|
}
|
151
|
-
|
149
|
+
#date-picker-inline-angle-down {
|
152
150
|
svg {
|
153
151
|
display: inline-block;
|
154
152
|
color: $white;
|
155
153
|
}
|
156
154
|
}
|
157
155
|
}
|
158
|
-
|
159
|
-
|
160
|
-
.text_input.flatpickr-input,
|
161
|
-
.text_input.flatpickr-input .active {
|
156
|
+
#date-picker-inline,
|
157
|
+
#date-picker-inline .active {
|
162
158
|
background-color: rgba($white,.10);
|
163
159
|
border: none;
|
164
160
|
padding: 5px 5px 5px 10px;
|
@@ -168,8 +164,8 @@
|
|
168
164
|
box-shadow: none;
|
169
165
|
}
|
170
166
|
}
|
171
|
-
|
172
|
-
|
167
|
+
#date-picker-inline-angle-down,
|
168
|
+
#date-picker-inline-icon-plus {
|
173
169
|
height: 33px;
|
174
170
|
border: none;
|
175
171
|
}
|
@@ -12,7 +12,7 @@ const DropdownWithAutocomplete = (props) => {
|
|
12
12
|
label: "Jasper Furniss",
|
13
13
|
value: "Jasper Furniss",
|
14
14
|
territory: "PHL",
|
15
|
-
title: "
|
15
|
+
title: "Senior UX Engineer",
|
16
16
|
id: "jasper-furniss",
|
17
17
|
status: "Offline"
|
18
18
|
},
|
@@ -25,18 +25,18 @@ const DropdownWithAutocomplete = (props) => {
|
|
25
25
|
status: "Away"
|
26
26
|
},
|
27
27
|
{
|
28
|
-
label: "
|
29
|
-
value: "
|
28
|
+
label: "Jason Cypret",
|
29
|
+
value: "Jason Cypret",
|
30
30
|
territory: "PHL",
|
31
|
-
title: "
|
32
|
-
id: "
|
31
|
+
title: "VP of User Experience",
|
32
|
+
id: "jason-cypret",
|
33
33
|
status: "Online"
|
34
34
|
},
|
35
35
|
{
|
36
36
|
label: "Courtney Long",
|
37
37
|
value: "Courtney Long",
|
38
38
|
territory: "PHL",
|
39
|
-
title: "
|
39
|
+
title: "UX Design Mentor",
|
40
40
|
id: "courtney-long",
|
41
41
|
status: "Online"
|
42
42
|
}
|