playbook_ui 6.1.0.pre.alpha3 → 6.1.0.pre.alpha4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/pb_kits/playbook/_playbook.scss +1 -0
- data/app/pb_kits/playbook/data/menu.yml +1 -0
- data/app/pb_kits/playbook/index.js +2 -0
- data/app/pb_kits/playbook/packs/examples.js +2 -0
- data/app/pb_kits/playbook/pb_checkbox/_checkbox.html.erb +1 -1
- data/app/pb_kits/playbook/pb_checkbox/checkbox.rb +0 -5
- data/app/pb_kits/playbook/pb_date_picker/_date_picker.html.erb +40 -0
- data/app/pb_kits/playbook/pb_date_picker/_date_picker.jsx +105 -0
- data/app/pb_kits/playbook/pb_date_picker/_date_picker.scss +59 -0
- data/app/pb_kits/playbook/pb_date_picker/date_picker.rb +43 -0
- data/app/pb_kits/playbook/pb_date_picker/date_picker_helper.js +91 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default.html.erb +1 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default.jsx +12 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default_date.html.erb +24 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default_date.jsx +30 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_disabled.html.erb +43 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_disabled.jsx +48 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_error.html.erb +4 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_error.jsx +13 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_format.html.erb +19 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_format.jsx +25 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_label.html.erb +9 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_label.jsx +17 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_min_max.html.erb +14 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_min_max.jsx +22 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range.html.erb +4 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range.jsx +13 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/example.yml +23 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/index.js +8 -0
- data/app/pb_kits/playbook/pb_filter/docs/_filter_default.html.erb +4 -7
- data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +2 -2
- data/app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.html.erb +2 -2
- data/app/pb_kits/playbook/pb_form/docs/_form_simple_form.html.erb +2 -2
- data/app/pb_kits/playbook/pb_form/docs/_form_simple_form_validate.html.erb +2 -2
- data/app/pb_kits/playbook/pb_form/form_builder.rb +1 -2
- data/app/pb_kits/playbook/pb_form/form_builder/date_picker_field.rb +41 -0
- data/app/pb_kits/playbook/pb_form/form_builder/form_field_builder.rb +0 -1
- data/app/pb_kits/playbook/vendor.js +6 -0
- data/lib/playbook/version.rb +1 -1
- metadata +25 -2
- data/app/pb_kits/playbook/pb_form/form_builder/checkbox_field.rb +0 -30
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 935fd3d3a764d02be6807cbc6f3271f6771865a0d1c4e33bfc4dd078e3dc93af
|
|
4
|
+
data.tar.gz: 6cb1089a51ef34a15ea142fb23b8e9c705c647a811bb1f945acfbc47e139228a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 721dab5867c8db09f78c40ea8b7bc3ed070437e9a3241299b9a1a46195a443546eb4526a12807a290b67df2e19bf703dd2b617f11b5be5796ad452f929bc09e6
|
|
7
|
+
data.tar.gz: 27d738f1736e7f516cb7a4f23d95189d6448628c68cee6ba29f230b656b7058ded78f603fd7d64ee4563bd733163e4165e4197206d72c7b85c4485e4de77e57d
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
@import 'pb_currency/currency';
|
|
16
16
|
@import 'pb_dashboard_value/dashboard_value';
|
|
17
17
|
@import 'pb_date/date';
|
|
18
|
+
@import 'pb_date_picker/date_picker';
|
|
18
19
|
@import 'pb_date_range_inline/date_range_inline';
|
|
19
20
|
@import 'pb_date_range_stacked/date_range_stacked';
|
|
20
21
|
@import 'pb_date_stacked/date_stacked';
|
|
@@ -14,6 +14,7 @@ export Contact from './pb_contact/_contact.jsx'
|
|
|
14
14
|
export Currency from './pb_currency/_currency.jsx'
|
|
15
15
|
export DashboardValue from './pb_dashboard_value/_dashboard_value.jsx'
|
|
16
16
|
export Date from './pb_date/_date.jsx'
|
|
17
|
+
export DatePicker from './pb_date_picker/_date_picker.jsx'
|
|
17
18
|
export DateRangeInline from './pb_date_range_inline/_date_range_inline.jsx'
|
|
18
19
|
export DateRangeStacked from './pb_date_range_stacked/_date_range_stacked.jsx'
|
|
19
20
|
export DateStacked from './pb_date_stacked/_date_stacked.jsx'
|
|
@@ -91,6 +92,7 @@ export dashboardValueSettings from './pb_dashboard_value/dashboardValueSettings'
|
|
|
91
92
|
|
|
92
93
|
// Other JS/Plugins
|
|
93
94
|
export pbChart from './plugins/pb_chart.js'
|
|
95
|
+
export datePickerHelper from './pb_date_picker/date_picker_helper.js'
|
|
94
96
|
export PbTypeahead from './pb_typeahead'
|
|
95
97
|
export PbPopover from './pb_popover'
|
|
96
98
|
export PbTable from './pb_table'
|
|
@@ -28,6 +28,7 @@ import * as Contact from 'pb_contact/docs'
|
|
|
28
28
|
import * as Currency from 'pb_currency/docs'
|
|
29
29
|
import * as DashboardValue from 'pb_dashboard_value/docs'
|
|
30
30
|
import * as Date from 'pb_date/docs'
|
|
31
|
+
import * as DatePicker from 'pb_date_picker/docs'
|
|
31
32
|
import * as DateRangeInline from 'pb_date_range_inline/docs'
|
|
32
33
|
import * as DateRangeStacked from 'pb_date_range_stacked/docs'
|
|
33
34
|
import * as DateStacked from 'pb_date_stacked/docs'
|
|
@@ -108,6 +109,7 @@ WebpackerReact.setup({
|
|
|
108
109
|
...Currency,
|
|
109
110
|
...DashboardValue,
|
|
110
111
|
...Date,
|
|
112
|
+
...DatePicker,
|
|
111
113
|
...DateRangeInline,
|
|
112
114
|
...DateRangeStacked,
|
|
113
115
|
...DateStacked,
|
|
@@ -11,6 +11,6 @@
|
|
|
11
11
|
<%= pb_rails("icon", props: { icon: "check", id: "check_icon", classname: "check_icon", fixed_width: true}) %>
|
|
12
12
|
</span>
|
|
13
13
|
<span class="pb_checkbox_label">
|
|
14
|
-
<%= pb_rails("body", props: { status: object.checkbox_label_status, text: object.text, dark: object.dark
|
|
14
|
+
<%= pb_rails("body", props: { status: object.checkbox_label_status, text: object.text, dark: object.dark }) %>
|
|
15
15
|
</span>
|
|
16
16
|
<% end %>
|
|
@@ -15,11 +15,6 @@ module Playbook
|
|
|
15
15
|
prop :value
|
|
16
16
|
prop :name
|
|
17
17
|
|
|
18
|
-
prop :required, type: Playbook::Props::Boolean,
|
|
19
|
-
default: false
|
|
20
|
-
prop :form_spacing, type: Playbook::Props::Boolean,
|
|
21
|
-
default: false
|
|
22
|
-
|
|
23
18
|
def checked_html
|
|
24
19
|
checked ? "checked='true'" : nil
|
|
25
20
|
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<%= content_tag(:div,
|
|
2
|
+
aria: object.aria,
|
|
3
|
+
class: object.classname + " " + object.error_class,
|
|
4
|
+
data: object.data,
|
|
5
|
+
id: object.id) do %>
|
|
6
|
+
<% if !object.hide_label %>
|
|
7
|
+
<%= pb_rails("caption", props: { text: object.label }) %>
|
|
8
|
+
<% end %>
|
|
9
|
+
<div class="input_wrapper">
|
|
10
|
+
<input
|
|
11
|
+
autocomplete="off"
|
|
12
|
+
id="<%= object.picker_id %>"
|
|
13
|
+
name="<%= object.name %>"
|
|
14
|
+
<%= object.required ? required="required" : ''%>
|
|
15
|
+
/>
|
|
16
|
+
<% if object.error %>
|
|
17
|
+
<%= pb_rails("body", props: {
|
|
18
|
+
status: "negative",
|
|
19
|
+
text: object.error
|
|
20
|
+
}) %>
|
|
21
|
+
<% end %>
|
|
22
|
+
</div>
|
|
23
|
+
|
|
24
|
+
<%= javascript_tag do %>
|
|
25
|
+
document.addEventListener("DOMContentLoaded", () => {
|
|
26
|
+
datePickerHelper({
|
|
27
|
+
defaultDate: "<%= object.default_date %>",
|
|
28
|
+
disableDate: <%=raw object.disable_date %>,
|
|
29
|
+
disableRange: <%=raw object.disable_range.to_json %>,
|
|
30
|
+
disableWeekdays: <%=raw object.disable_weekdays %>,
|
|
31
|
+
format: "<%= object.format %>",
|
|
32
|
+
maxDate: "<%= object.max_date %>",
|
|
33
|
+
minDate: "<%= object.min_date %>",
|
|
34
|
+
mode: "<%= object.mode %>",
|
|
35
|
+
pickerId: "<%= object.picker_id %>",
|
|
36
|
+
propModel: "rails"
|
|
37
|
+
})
|
|
38
|
+
})
|
|
39
|
+
<% end %>
|
|
40
|
+
<% end %>
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/* @flow */
|
|
2
|
+
|
|
3
|
+
import React, { useEffect } from 'react'
|
|
4
|
+
import classnames from 'classnames'
|
|
5
|
+
import { buildAriaProps, buildCss, buildDataProps } from '../utilities/props'
|
|
6
|
+
import { globalProps } from '../utilities/globalProps.js'
|
|
7
|
+
// import flatpickr from 'flatpickr'
|
|
8
|
+
import { Body, Caption } from '../'
|
|
9
|
+
import datePickerHelper from './date_picker_helper.js'
|
|
10
|
+
|
|
11
|
+
type DatePickerProps = {
|
|
12
|
+
aria?: object,
|
|
13
|
+
className?: String,
|
|
14
|
+
data?: object,
|
|
15
|
+
defaultDate?: String,
|
|
16
|
+
disableDate?: Array,
|
|
17
|
+
disableRange?: Array,
|
|
18
|
+
disableWeekdays?: Array,
|
|
19
|
+
error?: String,
|
|
20
|
+
format?: String,
|
|
21
|
+
hideLabel?: Boolean,
|
|
22
|
+
id?: String,
|
|
23
|
+
label?: String,
|
|
24
|
+
maxDate: String,
|
|
25
|
+
minDate: String,
|
|
26
|
+
mode?: String,
|
|
27
|
+
name: String,
|
|
28
|
+
pickerId?: String,
|
|
29
|
+
}
|
|
30
|
+
const DatePicker = (props: DatePickerProps) => {
|
|
31
|
+
const {
|
|
32
|
+
aria = {},
|
|
33
|
+
className,
|
|
34
|
+
data = {},
|
|
35
|
+
defaultDate = '',
|
|
36
|
+
disableDate = null,
|
|
37
|
+
disableRange = null,
|
|
38
|
+
disableWeekdays = null,
|
|
39
|
+
error,
|
|
40
|
+
format = 'm/d/Y',
|
|
41
|
+
hideLabel = false,
|
|
42
|
+
id,
|
|
43
|
+
label = 'Date Picker',
|
|
44
|
+
maxDate,
|
|
45
|
+
minDate,
|
|
46
|
+
mode = 'single',
|
|
47
|
+
name,
|
|
48
|
+
pickerId,
|
|
49
|
+
} = props
|
|
50
|
+
|
|
51
|
+
const ariaProps = buildAriaProps(aria)
|
|
52
|
+
const dataProps = buildDataProps(data)
|
|
53
|
+
const classes = classnames(
|
|
54
|
+
buildCss('pb_date_picker_kit'),
|
|
55
|
+
className,
|
|
56
|
+
globalProps(props),
|
|
57
|
+
error ? 'error' : null,
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
useEffect(() => {
|
|
61
|
+
datePickerHelper({
|
|
62
|
+
defaultDate: defaultDate,
|
|
63
|
+
disableDate: disableDate,
|
|
64
|
+
disableRange: disableRange,
|
|
65
|
+
disableWeekdays: disableWeekdays,
|
|
66
|
+
format: format,
|
|
67
|
+
maxDate: maxDate,
|
|
68
|
+
minDate: minDate,
|
|
69
|
+
mode: mode,
|
|
70
|
+
pickerId: pickerId,
|
|
71
|
+
propModel: 'React',
|
|
72
|
+
})
|
|
73
|
+
}, [])
|
|
74
|
+
|
|
75
|
+
return (
|
|
76
|
+
<div
|
|
77
|
+
{...ariaProps}
|
|
78
|
+
{...dataProps}
|
|
79
|
+
className={classes}
|
|
80
|
+
id={id}
|
|
81
|
+
>
|
|
82
|
+
{className}
|
|
83
|
+
<If condition={!hideLabel}>
|
|
84
|
+
<Caption
|
|
85
|
+
text={label}
|
|
86
|
+
/>
|
|
87
|
+
</If>
|
|
88
|
+
<div className="input_wrapper">
|
|
89
|
+
<input
|
|
90
|
+
autoComplete="off"
|
|
91
|
+
id={pickerId}
|
|
92
|
+
name={name}
|
|
93
|
+
/>
|
|
94
|
+
<If condition={error}>
|
|
95
|
+
<Body
|
|
96
|
+
status="negative"
|
|
97
|
+
text={error}
|
|
98
|
+
/>
|
|
99
|
+
</If>
|
|
100
|
+
</div>
|
|
101
|
+
</div>
|
|
102
|
+
)
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export default DatePicker
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
@import "~flatpickr/dist/flatpickr.css";
|
|
2
|
+
@import "../pb_textarea/textarea_mixin";
|
|
3
|
+
@import "../pb_title/title_mixin";
|
|
4
|
+
@import "../tokens/colors";
|
|
5
|
+
@import "../pb_caption/caption_mixin";
|
|
6
|
+
|
|
7
|
+
[class^=pb_date_picker_kit] {
|
|
8
|
+
// input styles
|
|
9
|
+
[class^=pb_caption_kit] {
|
|
10
|
+
margin-bottom: $space_xs;
|
|
11
|
+
display: block;
|
|
12
|
+
}
|
|
13
|
+
.input_wrapper {
|
|
14
|
+
margin-bottom: $space_sm;
|
|
15
|
+
|
|
16
|
+
.flatpickr-wrapper {
|
|
17
|
+
display: block;
|
|
18
|
+
input::placeholder {
|
|
19
|
+
@include pb_body_light;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
> input:first-child {
|
|
23
|
+
@include pb_textarea_light;
|
|
24
|
+
@include pb_title_4;
|
|
25
|
+
overflow: hidden;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
input:focus, input:-webkit-autofill:focus {
|
|
29
|
+
@include pb_textarea_focus;
|
|
30
|
+
-webkit-box-shadow: 0 0 0px 1000px $focus_input_light inset;
|
|
31
|
+
transition: background-color 5000s ease-in-out 0s;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
&.error {
|
|
37
|
+
[class^=pb_body_kit] {
|
|
38
|
+
margin-top: $space_xs / 2;
|
|
39
|
+
}
|
|
40
|
+
.flatpickr-wrapper {
|
|
41
|
+
> input:first-child {
|
|
42
|
+
border-color: $error;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// date-picker styles
|
|
49
|
+
|
|
50
|
+
div.flatpickr-weekdays {
|
|
51
|
+
margin-top: 5px;
|
|
52
|
+
}
|
|
53
|
+
span.flatpickr-weekday {
|
|
54
|
+
@include caption;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.pb_popover_body {
|
|
58
|
+
overflow: visible !important;
|
|
59
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Playbook
|
|
4
|
+
module PbDatePicker
|
|
5
|
+
class DatePicker
|
|
6
|
+
include Playbook::Props
|
|
7
|
+
|
|
8
|
+
partial "pb_date_picker/date_picker"
|
|
9
|
+
|
|
10
|
+
prop :default_date, type: Playbook::Props::String,
|
|
11
|
+
default: ""
|
|
12
|
+
prop :disable_date, type: Playbook::Props::Array,
|
|
13
|
+
default: []
|
|
14
|
+
prop :disable_range, type: Playbook::Props::Array,
|
|
15
|
+
default: []
|
|
16
|
+
prop :disable_weekdays, type: Playbook::Props::Array,
|
|
17
|
+
default: []
|
|
18
|
+
prop :error, type: Playbook::Props::String
|
|
19
|
+
prop :format, type: Playbook::Props::String,
|
|
20
|
+
default: "m/d/Y"
|
|
21
|
+
prop :hide_label, type: Playbook::Props::Boolean,
|
|
22
|
+
default: false
|
|
23
|
+
prop :label, type: Playbook::Props::String,
|
|
24
|
+
default: "Date Picker"
|
|
25
|
+
prop :max_date, type: Playbook::Props::String
|
|
26
|
+
prop :min_date, type: Playbook::Props::String
|
|
27
|
+
prop :name, type: Playbook::Props::String
|
|
28
|
+
prop :mode, type: Playbook::Props::String,
|
|
29
|
+
default: "single"
|
|
30
|
+
prop :picker_id, type: Playbook::Props::String
|
|
31
|
+
prop :required, type: Playbook::Props::Boolean,
|
|
32
|
+
default: false
|
|
33
|
+
|
|
34
|
+
def classname
|
|
35
|
+
generate_classname("pb_date_picker_kit")
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def error_class
|
|
39
|
+
error ? "error" : ""
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import flatpickr from 'flatpickr'
|
|
2
|
+
|
|
3
|
+
const datePickerHelper = (config) => {
|
|
4
|
+
const {
|
|
5
|
+
defaultDate,
|
|
6
|
+
disableDate,
|
|
7
|
+
disableRange,
|
|
8
|
+
disableWeekdays,
|
|
9
|
+
format,
|
|
10
|
+
maxDate,
|
|
11
|
+
minDate,
|
|
12
|
+
mode,
|
|
13
|
+
pickerId,
|
|
14
|
+
propModel,
|
|
15
|
+
} = config
|
|
16
|
+
|
|
17
|
+
const defaultDateGetter = () => {
|
|
18
|
+
if (defaultDate !== '') {
|
|
19
|
+
if (propModel === 'rails' && defaultDate.includes('[') == true) {
|
|
20
|
+
return JSON.parse(defaultDate.replace(/"/g, '"'))
|
|
21
|
+
} else if (defaultDate === 'blank') {
|
|
22
|
+
return ''
|
|
23
|
+
} else {
|
|
24
|
+
return defaultDate
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
if (mode === 'single' && defaultDate === '') {
|
|
28
|
+
return new Date()
|
|
29
|
+
} else if (mode === 'range' && defaultDate === '') {
|
|
30
|
+
const today = new Date()
|
|
31
|
+
const tomorrow = new Date(today)
|
|
32
|
+
tomorrow.setDate(tomorrow.getDate() + 1)
|
|
33
|
+
return [today, tomorrow]
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
const disabledParser = () => {
|
|
37
|
+
if (disableDate && disableDate.length > 0) {
|
|
38
|
+
return disableDate
|
|
39
|
+
} else if (disableRange && disableRange.length > 0) {
|
|
40
|
+
return disableRange
|
|
41
|
+
} else {
|
|
42
|
+
return []
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
flatpickr(`#${pickerId}`, {
|
|
47
|
+
allowInput: true,
|
|
48
|
+
dateFormat: format,
|
|
49
|
+
defaultDate: defaultDateGetter(),
|
|
50
|
+
disable: disableWeekdays && disableWeekdays.length > 0 ? [
|
|
51
|
+
(date) => {
|
|
52
|
+
const weekdayObj = {
|
|
53
|
+
Sunday: 0,
|
|
54
|
+
Monday: 1,
|
|
55
|
+
Tuesday: 2,
|
|
56
|
+
Wednesday: 3,
|
|
57
|
+
Thursday: 4,
|
|
58
|
+
Friday: 5,
|
|
59
|
+
Saturday: 6,
|
|
60
|
+
}
|
|
61
|
+
return (
|
|
62
|
+
// try to refactor with for loop
|
|
63
|
+
date.getDay() === weekdayObj[disableWeekdays[0]] ||
|
|
64
|
+
date.getDay() === weekdayObj[disableWeekdays[1]] ||
|
|
65
|
+
date.getDay() === weekdayObj[disableWeekdays[2]] ||
|
|
66
|
+
date.getDay() === weekdayObj[disableWeekdays[3]] ||
|
|
67
|
+
date.getDay() === weekdayObj[disableWeekdays[4]] ||
|
|
68
|
+
date.getDay() === weekdayObj[disableWeekdays[5]] ||
|
|
69
|
+
date.getDay() === weekdayObj[disableWeekdays[6]]
|
|
70
|
+
)
|
|
71
|
+
},
|
|
72
|
+
] : disabledParser(),
|
|
73
|
+
maxDate: maxDate,
|
|
74
|
+
minDate: minDate,
|
|
75
|
+
mode: mode,
|
|
76
|
+
static: true,
|
|
77
|
+
})
|
|
78
|
+
|
|
79
|
+
document.querySelector(`#${pickerId}`).addEventListener('input', (e) => {
|
|
80
|
+
const picker = document.querySelector(`#${pickerId}`)._flatpickr
|
|
81
|
+
picker.input.setAttribute('value', e.target.value)
|
|
82
|
+
const variant = picker.config.mode
|
|
83
|
+
if (variant === 'single' && e.target.value.split('').length === 10) {
|
|
84
|
+
picker.setDate(e.target.value)
|
|
85
|
+
} else if (variant === 'range' && e.target.value.split('').length === 24) {
|
|
86
|
+
picker.setDate(e.target.value)
|
|
87
|
+
}
|
|
88
|
+
})
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export default datePickerHelper
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<%= pb_rails("date_picker", props: { picker_id: "date-picker-default" }) %>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
<%= pb_rails("date_picker", props: {
|
|
2
|
+
default_date: "07/31/2020",
|
|
3
|
+
label: "Default Date String",
|
|
4
|
+
picker_id: "date-picker-default-date1"
|
|
5
|
+
}) %>
|
|
6
|
+
|
|
7
|
+
<%= pb_rails("date_picker", props: {
|
|
8
|
+
default_date: (Date.today + 2).httpdate,
|
|
9
|
+
label: "Default Date Dynamic",
|
|
10
|
+
picker_id: "date-picker-default-date2"
|
|
11
|
+
}) %>
|
|
12
|
+
|
|
13
|
+
<%= pb_rails("date_picker", props: {
|
|
14
|
+
default_date: [(Date.today).httpdate, (Date.today + 7).httpdate],
|
|
15
|
+
label: "Default Date Range",
|
|
16
|
+
mode: "range",
|
|
17
|
+
picker_id: "date-picker-default-date3"
|
|
18
|
+
}) %>
|
|
19
|
+
|
|
20
|
+
<%= pb_rails("date_picker", props: {
|
|
21
|
+
default_date: "blank",
|
|
22
|
+
label: "Blank",
|
|
23
|
+
picker_id: "date-picker-default-date4"
|
|
24
|
+
}) %>
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { DatePicker } from '../../'
|
|
3
|
+
|
|
4
|
+
const DatePickerDefaultDate = () => (
|
|
5
|
+
<div>
|
|
6
|
+
<DatePicker
|
|
7
|
+
defaultDate="07/31/2020"
|
|
8
|
+
label="Default Date String"
|
|
9
|
+
pickerId="date-picker-default-date1"
|
|
10
|
+
/>
|
|
11
|
+
<DatePicker
|
|
12
|
+
defaultDate={new Date().fp_incr(1)}
|
|
13
|
+
label="Default Date Dynamic"
|
|
14
|
+
pickerId="date-picker-default-date2"
|
|
15
|
+
/>
|
|
16
|
+
<DatePicker
|
|
17
|
+
defaultDate={[new Date().fp_incr(1), new Date().fp_incr(3)]}
|
|
18
|
+
label="Default Date Range"
|
|
19
|
+
mode="range"
|
|
20
|
+
pickerId="date-picker-default-date3"
|
|
21
|
+
/>
|
|
22
|
+
<DatePicker
|
|
23
|
+
defaultDate="blank"
|
|
24
|
+
label="Blank"
|
|
25
|
+
pickerId="date-picker-default-date4"
|
|
26
|
+
/>
|
|
27
|
+
</div>
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
export default DatePickerDefaultDate
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
<%= pb_rails("date_picker", props: {
|
|
2
|
+
disable_date: [(Date.today + 1).httpdate],
|
|
3
|
+
label: "Disable Single Date",
|
|
4
|
+
picker_id: "single-disabled-date"
|
|
5
|
+
}) %>
|
|
6
|
+
|
|
7
|
+
<%= pb_rails("date_picker", props: {
|
|
8
|
+
disable_date: [(Date.today + 1).httpdate, (Date.today + 3).httpdate],
|
|
9
|
+
label: "Disable Multiple Dates",
|
|
10
|
+
picker_id: "multiple-disabled-dates"
|
|
11
|
+
}) %>
|
|
12
|
+
|
|
13
|
+
<%= pb_rails("date_picker", props: {
|
|
14
|
+
disable_range: [
|
|
15
|
+
{
|
|
16
|
+
from: (Date.today + 1).httpdate,
|
|
17
|
+
to: (Date.today + 7).httpdate,
|
|
18
|
+
},
|
|
19
|
+
],
|
|
20
|
+
label: "Disable Single Range",
|
|
21
|
+
picker_id: "single-date-range"
|
|
22
|
+
}) %>
|
|
23
|
+
|
|
24
|
+
<%= pb_rails("date_picker", props: {
|
|
25
|
+
disable_range: [
|
|
26
|
+
{
|
|
27
|
+
from: (Date.today + 1).httpdate,
|
|
28
|
+
to: (Date.today + 3).httpdate,
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
from: (Date.today + 7).httpdate,
|
|
32
|
+
to: (Date.today + 14).httpdate,
|
|
33
|
+
},
|
|
34
|
+
],
|
|
35
|
+
label: "Disable Multiple Ranges",
|
|
36
|
+
picker_id: "multiple-date-ranges"
|
|
37
|
+
}) %>
|
|
38
|
+
|
|
39
|
+
<%= pb_rails("date_picker", props: {
|
|
40
|
+
disable_weekdays: ['Sunday', 'Saturday'],
|
|
41
|
+
label: "Disable Weekdays",
|
|
42
|
+
picker_id: "disabled-weekdays"
|
|
43
|
+
}) %>
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { DatePicker } from '../../'
|
|
3
|
+
|
|
4
|
+
const DatePickerDisabled = () => (
|
|
5
|
+
<div>
|
|
6
|
+
<DatePicker
|
|
7
|
+
disableDate={[new Date().fp_incr(1)]}
|
|
8
|
+
label="Disable Single Date"
|
|
9
|
+
pickerId="single-disabled-date"
|
|
10
|
+
/>
|
|
11
|
+
<DatePicker
|
|
12
|
+
disableDate={[new Date().fp_incr(1), new Date().fp_incr(3)]}
|
|
13
|
+
label="Disable Multiple Dates"
|
|
14
|
+
pickerId="multiple-disabled-dates"
|
|
15
|
+
/>
|
|
16
|
+
<DatePicker
|
|
17
|
+
disableRange={[
|
|
18
|
+
{
|
|
19
|
+
from: new Date().fp_incr(1),
|
|
20
|
+
to: new Date().fp_incr(7),
|
|
21
|
+
},
|
|
22
|
+
]}
|
|
23
|
+
label="Disable Single Range"
|
|
24
|
+
pickerId="single-date-range"
|
|
25
|
+
/>
|
|
26
|
+
<DatePicker
|
|
27
|
+
disableRange={[
|
|
28
|
+
{
|
|
29
|
+
from: new Date().fp_incr(1),
|
|
30
|
+
to: new Date().fp_incr(3),
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
from: new Date().fp_incr(7),
|
|
34
|
+
to: new Date().fp_incr(14),
|
|
35
|
+
},
|
|
36
|
+
]}
|
|
37
|
+
label="Disable Multiple Ranges"
|
|
38
|
+
pickerId="multiple-date-ranges"
|
|
39
|
+
/>
|
|
40
|
+
<DatePicker
|
|
41
|
+
disableWeekdays={['Sunday', 'Saturday']}
|
|
42
|
+
label="Disable Weekdays"
|
|
43
|
+
pickerId="disabled-weekdays"
|
|
44
|
+
/>
|
|
45
|
+
</div>
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
export default DatePickerDisabled
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { DatePicker } from '../../'
|
|
3
|
+
|
|
4
|
+
const DatePickerError = () => (
|
|
5
|
+
<div>
|
|
6
|
+
<DatePicker
|
|
7
|
+
error="Invalid date. Please pick a valid date."
|
|
8
|
+
pickerId="date-picker-error"
|
|
9
|
+
/>
|
|
10
|
+
</div>
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
export default DatePickerError
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<%= pb_rails("date_picker", props: {
|
|
2
|
+
format: "m-d-Y",
|
|
3
|
+
picker_id: "date-picker-format1"
|
|
4
|
+
}) %>
|
|
5
|
+
|
|
6
|
+
<%= pb_rails("date_picker", props: {
|
|
7
|
+
format: "m/d/y",
|
|
8
|
+
picker_id: "date-picker-format2"
|
|
9
|
+
}) %>
|
|
10
|
+
|
|
11
|
+
<%= pb_rails("date_picker", props: {
|
|
12
|
+
format: "n-j-y",
|
|
13
|
+
picker_id: "date-picker-format3"
|
|
14
|
+
}) %>
|
|
15
|
+
|
|
16
|
+
<%= pb_rails("date_picker", props: {
|
|
17
|
+
format: "Y-d-m",
|
|
18
|
+
picker_id: "date-picker-format4"
|
|
19
|
+
}) %>
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { DatePicker } from '../../'
|
|
3
|
+
|
|
4
|
+
const DatePickerFormat = () => (
|
|
5
|
+
<div>
|
|
6
|
+
<DatePicker
|
|
7
|
+
format="m-d-Y"
|
|
8
|
+
pickerId="date-picker-format1"
|
|
9
|
+
/>
|
|
10
|
+
<DatePicker
|
|
11
|
+
format="m/d/y"
|
|
12
|
+
pickerId="date-picker-format2"
|
|
13
|
+
/>
|
|
14
|
+
<DatePicker
|
|
15
|
+
format="n-j-y"
|
|
16
|
+
pickerId="date-picker-format3"
|
|
17
|
+
/>
|
|
18
|
+
<DatePicker
|
|
19
|
+
format="Y-d-m"
|
|
20
|
+
pickerId="date-picker-format4"
|
|
21
|
+
/>
|
|
22
|
+
</div>
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
export default DatePickerFormat
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { DatePicker } from '../../'
|
|
3
|
+
|
|
4
|
+
const DatePickerLabel = () => (
|
|
5
|
+
<div>
|
|
6
|
+
<DatePicker
|
|
7
|
+
label="Your Label Here"
|
|
8
|
+
pickerId="date-picker-label"
|
|
9
|
+
/>
|
|
10
|
+
<DatePicker
|
|
11
|
+
hideLabel
|
|
12
|
+
pickerId="date-picker-hide-label"
|
|
13
|
+
/>
|
|
14
|
+
</div>
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
export default DatePickerLabel
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<%= pb_rails("date_picker", props: {
|
|
2
|
+
label: "Dynamic dates.",
|
|
3
|
+
max_date: (Date.today + 3).httpdate,
|
|
4
|
+
min_date: (Date.today - 3).httpdate,
|
|
5
|
+
picker_id: "date-picker-min-max1"
|
|
6
|
+
}) %>
|
|
7
|
+
|
|
8
|
+
<%= pb_rails("date_picker", props: {
|
|
9
|
+
format: "m/d/Y",
|
|
10
|
+
label: "Absolute formatted dates.",
|
|
11
|
+
max_date: "10/20/2020",
|
|
12
|
+
min_date: "10/10/2020",
|
|
13
|
+
picker_id: "date-picker-min-max2"
|
|
14
|
+
}) %>
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { DatePicker } from '../../'
|
|
3
|
+
|
|
4
|
+
const DatePickerMinMax = () => (
|
|
5
|
+
<div>
|
|
6
|
+
<DatePicker
|
|
7
|
+
label="Dynamic dates using flatpickr increment function."
|
|
8
|
+
maxDate={new Date().fp_incr(3)}
|
|
9
|
+
minDate={new Date().fp_incr(-3)}
|
|
10
|
+
pickerId="date-picker-min-max1"
|
|
11
|
+
/>
|
|
12
|
+
<DatePicker
|
|
13
|
+
format="m/d/Y"
|
|
14
|
+
label="Absolute formatted dates."
|
|
15
|
+
maxDate="10/20/2020"
|
|
16
|
+
minDate="10/10/2020"
|
|
17
|
+
pickerId="date-picker-min-max2"
|
|
18
|
+
/>
|
|
19
|
+
</div>
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
export default DatePickerMinMax
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
examples:
|
|
2
|
+
|
|
3
|
+
rails:
|
|
4
|
+
- date_picker_default: Default
|
|
5
|
+
- date_picker_default_date: Default Date
|
|
6
|
+
- date_picker_label: Label
|
|
7
|
+
- date_picker_range: Range
|
|
8
|
+
- date_picker_format: Format
|
|
9
|
+
- date_picker_disabled: Disabled Dates
|
|
10
|
+
- date_picker_min_max: Min Max
|
|
11
|
+
- date_picker_error: Error
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
react:
|
|
15
|
+
- date_picker_default: Default
|
|
16
|
+
- date_picker_default_date: Default Date
|
|
17
|
+
- date_picker_label: Label
|
|
18
|
+
- date_picker_range: Range
|
|
19
|
+
- date_picker_format: Format
|
|
20
|
+
- date_picker_disabled: Disabled Dates
|
|
21
|
+
- date_picker_min_max: Min Max
|
|
22
|
+
- date_picker_error: Error
|
|
23
|
+
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { default as DatePickerDefault } from './_date_picker_default.jsx'
|
|
2
|
+
export { default as DatePickerDefaultDate } from './_date_picker_default_date.jsx'
|
|
3
|
+
export { default as DatePickerLabel } from './_date_picker_label.jsx'
|
|
4
|
+
export { default as DatePickerRange } from './_date_picker_range.jsx'
|
|
5
|
+
export { default as DatePickerFormat } from './_date_picker_format.jsx'
|
|
6
|
+
export { default as DatePickerDisabled } from './_date_picker_disabled.jsx'
|
|
7
|
+
export { default as DatePickerMinMax } from './_date_picker_min_max.jsx'
|
|
8
|
+
export { default as DatePickerError } from './_date_picker_error.jsx'
|
|
@@ -27,13 +27,10 @@
|
|
|
27
27
|
OpenStruct.new(name: "Georgia", value: 10),
|
|
28
28
|
]
|
|
29
29
|
%>
|
|
30
|
-
<%= pb_rails("form", props: { form_system_options: { scope: :
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
<%=
|
|
34
|
-
<%= form.check_box :example_checkbox, props: { text: "Delivered", margin_right: "md" } %>
|
|
35
|
-
<%= form.check_box :example_checkbox, props: { text: "Unsubscribed", margin_right: "md" } %>
|
|
36
|
-
<%= form.check_box :example_checkbox, props: { text: "Failed", margin_right: "md" } %>
|
|
30
|
+
<%= pb_rails("form", props: { form_system_options: { scope: :blahblah, method: :get } }) do |form| %>
|
|
31
|
+
<%= form.text_field :example_text_field, props: { label: true } %>
|
|
32
|
+
<%= form.collection_select :example_collection_select, example_collection, :value, :name, props: { label: true } %>
|
|
33
|
+
<%= form.date_picker :example_date_picker %>
|
|
37
34
|
|
|
38
35
|
<%= form.actions do |action| %>
|
|
39
36
|
<%= action.submit props: { text: "Apply", data: { disable_with: "<i class='far fa-spinner fa-spin mr-3'></i>Searching...".html_safe },}%>
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
]
|
|
14
14
|
%>
|
|
15
15
|
|
|
16
|
-
<%= pb_rails("form", props: { form_system_options: { scope: :
|
|
16
|
+
<%= pb_rails("form", props: { form_system_options: { scope: :scope, method: :get } }) do |form| %>
|
|
17
17
|
<%= form.text_field :example_text_field, props: { label: true } %>
|
|
18
18
|
<%= form.telephone_field :example_phone_field, props: { label: true } %>
|
|
19
19
|
<%= form.email_field :example_email_field, props: { label: true } %>
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
<%= form.text_area :example_text_area, props: { label: true } %>
|
|
25
25
|
<%= form.select :example_select, [ ["Yes", 1], ["No", 2] ], props: { label: true } %>
|
|
26
26
|
<%= form.collection_select :example_collection_select, example_collection, :value, :name, props: { label: true } %>
|
|
27
|
-
<%= form.
|
|
27
|
+
<%= form.date_picker :example_date_picker1, props: { default_date: 'blank' } %>
|
|
28
28
|
|
|
29
29
|
<%= form.actions do |action| %>
|
|
30
30
|
<%= action.submit %>
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
%>
|
|
15
15
|
|
|
16
16
|
<%= pb_rails("form", props: {
|
|
17
|
-
form_system_options: { scope: :
|
|
17
|
+
form_system_options: { scope: :scope, method: :get },
|
|
18
18
|
validate: true
|
|
19
19
|
}) do |form| %>
|
|
20
20
|
<%= form.text_field :example_text_field, props: { label: true, required: true } %>
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
<%= form.text_area :example_text_area, props: { label: true, required: true } %>
|
|
28
28
|
<%= form.select :example_select, [ ["Yes", 1], ["No", 2] ], props: { label: true, blank_selection: "Select One...", required: true } %>
|
|
29
29
|
<%= form.collection_select :example_collection_select, example_collection, :value, :name, props: { label: true, blank_selection: "Select One...", required: true } %>
|
|
30
|
-
<%= form.
|
|
30
|
+
<%= form.date_picker :example_date_picker2, props: { default_date: 'blank' } %>
|
|
31
31
|
|
|
32
32
|
<%= form.actions do |action| %>
|
|
33
33
|
<%= action.submit %>
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
:example_text_area,
|
|
15
15
|
:example_select_field,
|
|
16
16
|
:example_collection_select_field,
|
|
17
|
-
:
|
|
17
|
+
:example_date_picker_field
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
def self.model_name
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
<%= form.input :example_text_area, as: :text %>
|
|
51
51
|
<%= form.select :example_select_field, [["Yes", 1], ["No", 2]], props: { label: true } %>
|
|
52
52
|
<%= form.collection_select :example_collection_select_field, example_collection, :value, :name, props: { label: true } %>
|
|
53
|
-
<%= form.
|
|
53
|
+
<%= form.date_picker :example_date_picker_field, props: { default_date: 'blank', } %>
|
|
54
54
|
|
|
55
55
|
<%= form.actions do |action| %>
|
|
56
56
|
<%= action.submit %>
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
:example_text_area,
|
|
15
15
|
:example_select_field,
|
|
16
16
|
:example_collection_select_field,
|
|
17
|
-
:
|
|
17
|
+
:example_date_picker_field
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
def self.model_name
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
<%= form.input :example_text_area, {as: :text, input_html: {props: {required: true}}} %>
|
|
51
51
|
<%= form.select :example_select_field, [["Yes", 1], ["No", 2]], props: { required: true, blank_selection: "Select One...", label: true } %>
|
|
52
52
|
<%= form.collection_select :example_collection_select_field, example_collection, :value, :name, props: { required: true, blank_selection: "Select One...", label: true } %>
|
|
53
|
-
<%= form.
|
|
53
|
+
<%= form.date_picker :example_date_picker_field, props: { default_date: 'blank', required: true } %>
|
|
54
54
|
|
|
55
55
|
<%= form.actions do |action| %>
|
|
56
56
|
<%= action.submit %>
|
|
@@ -14,11 +14,10 @@ module Playbook
|
|
|
14
14
|
prepend(FormFieldBuilder.new(:password_field, kit_name: "text_input"))
|
|
15
15
|
prepend(FormFieldBuilder.new(:url_field, kit_name: "text_input"))
|
|
16
16
|
prepend(FormFieldBuilder.new(:text_area, kit_name: "textarea"))
|
|
17
|
-
# prepend(FormFieldBuilder.new(:check_box, kit_name: "checkbox"))
|
|
18
17
|
prepend(TypeaheadField)
|
|
19
18
|
prepend(SelectField)
|
|
20
19
|
prepend(CollectionSelectField)
|
|
21
|
-
prepend(
|
|
20
|
+
prepend(DatePickerField)
|
|
22
21
|
|
|
23
22
|
def actions(&block)
|
|
24
23
|
ActionArea.new(self).wrapper(&block)
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Playbook
|
|
4
|
+
module PbForm
|
|
5
|
+
module FormBuilder
|
|
6
|
+
module DatePickerField
|
|
7
|
+
# def date_field(name, props: {})
|
|
8
|
+
# # props[:name] = name
|
|
9
|
+
|
|
10
|
+
# input = super(name)
|
|
11
|
+
# puts name
|
|
12
|
+
# puts input
|
|
13
|
+
|
|
14
|
+
# @template.pb_rails("date_picker", props: props) do
|
|
15
|
+
# input
|
|
16
|
+
# end
|
|
17
|
+
# end
|
|
18
|
+
# def date_picker(name, props: {})
|
|
19
|
+
# predicate = name.to_s.split("_")[0]
|
|
20
|
+
# html_name = "#{predicate}[#{name}]"
|
|
21
|
+
# id = predicate + "_" + name.to_s
|
|
22
|
+
|
|
23
|
+
# props[:name] = html_name
|
|
24
|
+
# props[:picker_id] = id
|
|
25
|
+
|
|
26
|
+
# @template.pb_rails("date_picker", props: props)
|
|
27
|
+
# end
|
|
28
|
+
def date_picker(name, props: {})
|
|
29
|
+
prefix = @object_name
|
|
30
|
+
html_attribute_name = "#{prefix}[#{name}]"
|
|
31
|
+
html_id = "#{prefix}_#{name}"
|
|
32
|
+
|
|
33
|
+
props[:name] = html_attribute_name
|
|
34
|
+
props[:picker_id] = html_id
|
|
35
|
+
|
|
36
|
+
@template.pb_rails("date_picker", props: props)
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
@@ -12,7 +12,6 @@ module Playbook
|
|
|
12
12
|
options[:skip_default_ids] = false unless options.key?(:skip_default_ids)
|
|
13
13
|
options[:required] = true if props[:required]
|
|
14
14
|
options[:placeholder] = props[:placeholder] || ""
|
|
15
|
-
options[:value] = props[:value]
|
|
16
15
|
|
|
17
16
|
if props.key?(:validation)
|
|
18
17
|
validation = props[:validation]
|
|
@@ -5,6 +5,10 @@ window.pbChart = pbChart
|
|
|
5
5
|
// Forms
|
|
6
6
|
import './pb_form/pb_form_validation'
|
|
7
7
|
|
|
8
|
+
// Date Picker
|
|
9
|
+
import datePickerHelper from './pb_date_picker/date_picker_helper.js'
|
|
10
|
+
window.datePickerHelper = datePickerHelper
|
|
11
|
+
|
|
8
12
|
// Lazy image loading
|
|
9
13
|
import 'lazysizes'
|
|
10
14
|
|
|
@@ -19,3 +23,5 @@ PbTypeahead.start()
|
|
|
19
23
|
|
|
20
24
|
import PbTable from './pb_table'
|
|
21
25
|
PbTable.start()
|
|
26
|
+
|
|
27
|
+
import 'flatpickr'
|
data/lib/playbook/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: playbook_ui
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 6.1.0.pre.
|
|
4
|
+
version: 6.1.0.pre.alpha4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Power UX
|
|
@@ -680,6 +680,29 @@ files:
|
|
|
680
680
|
- app/pb_kits/playbook/pb_date/docs/_description.md
|
|
681
681
|
- app/pb_kits/playbook/pb_date/docs/example.yml
|
|
682
682
|
- app/pb_kits/playbook/pb_date/docs/index.js
|
|
683
|
+
- app/pb_kits/playbook/pb_date_picker/_date_picker.html.erb
|
|
684
|
+
- app/pb_kits/playbook/pb_date_picker/_date_picker.jsx
|
|
685
|
+
- app/pb_kits/playbook/pb_date_picker/_date_picker.scss
|
|
686
|
+
- app/pb_kits/playbook/pb_date_picker/date_picker.rb
|
|
687
|
+
- app/pb_kits/playbook/pb_date_picker/date_picker_helper.js
|
|
688
|
+
- app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default.html.erb
|
|
689
|
+
- app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default.jsx
|
|
690
|
+
- app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default_date.html.erb
|
|
691
|
+
- app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default_date.jsx
|
|
692
|
+
- app/pb_kits/playbook/pb_date_picker/docs/_date_picker_disabled.html.erb
|
|
693
|
+
- app/pb_kits/playbook/pb_date_picker/docs/_date_picker_disabled.jsx
|
|
694
|
+
- app/pb_kits/playbook/pb_date_picker/docs/_date_picker_error.html.erb
|
|
695
|
+
- app/pb_kits/playbook/pb_date_picker/docs/_date_picker_error.jsx
|
|
696
|
+
- app/pb_kits/playbook/pb_date_picker/docs/_date_picker_format.html.erb
|
|
697
|
+
- app/pb_kits/playbook/pb_date_picker/docs/_date_picker_format.jsx
|
|
698
|
+
- app/pb_kits/playbook/pb_date_picker/docs/_date_picker_label.html.erb
|
|
699
|
+
- app/pb_kits/playbook/pb_date_picker/docs/_date_picker_label.jsx
|
|
700
|
+
- app/pb_kits/playbook/pb_date_picker/docs/_date_picker_min_max.html.erb
|
|
701
|
+
- app/pb_kits/playbook/pb_date_picker/docs/_date_picker_min_max.jsx
|
|
702
|
+
- app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range.html.erb
|
|
703
|
+
- app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range.jsx
|
|
704
|
+
- app/pb_kits/playbook/pb_date_picker/docs/example.yml
|
|
705
|
+
- app/pb_kits/playbook/pb_date_picker/docs/index.js
|
|
683
706
|
- app/pb_kits/playbook/pb_date_range_inline/_date_range_inline.html.erb
|
|
684
707
|
- app/pb_kits/playbook/pb_date_range_inline/_date_range_inline.jsx
|
|
685
708
|
- app/pb_kits/playbook/pb_date_range_inline/_date_range_inline.scss
|
|
@@ -844,8 +867,8 @@ files:
|
|
|
844
867
|
- app/pb_kits/playbook/pb_form/form/simple_form_form.rb
|
|
845
868
|
- app/pb_kits/playbook/pb_form/form_builder.rb
|
|
846
869
|
- app/pb_kits/playbook/pb_form/form_builder/action_area.rb
|
|
847
|
-
- app/pb_kits/playbook/pb_form/form_builder/checkbox_field.rb
|
|
848
870
|
- app/pb_kits/playbook/pb_form/form_builder/collection_select_field.rb
|
|
871
|
+
- app/pb_kits/playbook/pb_form/form_builder/date_picker_field.rb
|
|
849
872
|
- app/pb_kits/playbook/pb_form/form_builder/form_field_builder.rb
|
|
850
873
|
- app/pb_kits/playbook/pb_form/form_builder/form_with_form_builder.rb
|
|
851
874
|
- app/pb_kits/playbook/pb_form/form_builder/select_field.rb
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Playbook
|
|
4
|
-
module PbForm
|
|
5
|
-
module FormBuilder
|
|
6
|
-
module CheckboxField
|
|
7
|
-
def check_box(name, data: {}, props: {})
|
|
8
|
-
value = props[:value] ||= 1
|
|
9
|
-
input = super(name, { required: props[:required], data: data }, value)
|
|
10
|
-
label_text = name.to_s.gsub("_", " ")
|
|
11
|
-
|
|
12
|
-
props[:margin_bottom] = "sm"
|
|
13
|
-
props[:form_spacing] = true
|
|
14
|
-
|
|
15
|
-
# Refactor and dry up, solve adding nil error
|
|
16
|
-
if props[:label]
|
|
17
|
-
@template.pb_rails("caption", props: { text: label_text, margin_bottom: "xs" }) +
|
|
18
|
-
@template.pb_rails("checkbox", props: props) do
|
|
19
|
-
input
|
|
20
|
-
end
|
|
21
|
-
else
|
|
22
|
-
@template.pb_rails("checkbox", props: props) do
|
|
23
|
-
input
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|