playbook_ui 7.0.0.pre.alpha12 → 7.0.0.pre.alpha13
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_date_picker/_date_picker.html.erb +14 -19
- data/app/pb_kits/playbook/pb_date_picker/date_picker.rb +1 -0
- data/app/pb_kits/playbook/pb_date_picker/date_picker_helper.js +42 -43
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_input.html.erb +1 -1
- data/app/pb_kits/playbook/pb_date_picker/docs/example.yml +0 -4
- data/app/pb_kits/playbook/pb_date_picker/docs/index.js +0 -2
- data/app/pb_kits/playbook/pb_filter/docs/_filter_default.html.erb +1 -0
- data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +1 -1
- data/app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.html.erb +1 -1
- data/app/pb_kits/playbook/pb_form/docs/_form_simple_form.html.erb +1 -15
- data/app/pb_kits/playbook/pb_form/docs/_form_simple_form_validate.html.erb +1 -1
- data/app/pb_kits/playbook/pb_form/form_builder/date_picker_field.rb +2 -32
- data/lib/playbook/version.rb +1 -1
- metadata +2 -7
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_allow_input.html.erb +0 -4
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_allow_input.jsx +0 -13
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_allow_input.md +0 -1
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_dark.html.erb +0 -4
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_dark.jsx +0 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e329711246ae555c5e6e13504fe7489062e64e67be40c0bbc17c473dbd3e7994
|
4
|
+
data.tar.gz: 67a8d82f86700372bc6cfb19af7f2f592f12278af0d0731388ff29b2d374dab8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7f0826a7a92bcd1f848ab4e7aea2af39d16d3a030ea28e5e5f83bf8133587f811df372587a1e5fa3c35d1cfd4068414641cc944403d59eb857ed2e62b04580a1
|
7
|
+
data.tar.gz: 1ed00c2dff812d1dfbcdc0d4bcf0dba1de40356155632be76255b5fa9ffe985800aa0b62c0a5f6889ef4e2abc4e4fc4c3a31f5c5b347fdc12f46992972ca3958
|
@@ -3,25 +3,20 @@
|
|
3
3
|
class: object.classname + object.error_class,
|
4
4
|
data: object.data,
|
5
5
|
id: object.id) do %>
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
name: object.name,
|
21
|
-
placeholder: object.placeholder,
|
22
|
-
required: object.required,
|
23
|
-
}) %>
|
24
|
-
<% end %>
|
6
|
+
<div class="input_wrapper">
|
7
|
+
<%= pb_rails("text_input", props: {
|
8
|
+
aria: object.input_aria,
|
9
|
+
autocomplete: false,
|
10
|
+
dark: object.dark,
|
11
|
+
data: object.input_data,
|
12
|
+
disabled: object.disable_input,
|
13
|
+
error: object.error,
|
14
|
+
id: object.picker_id,
|
15
|
+
label: object.hide_label ? nil : object.label,
|
16
|
+
name: object.name,
|
17
|
+
placeholder: object.placeholder,
|
18
|
+
required: object.required
|
19
|
+
}) %>
|
25
20
|
<% if !object.hide_icon %>
|
26
21
|
<div
|
27
22
|
class="<%= object.icon_wrapper_class %>"
|
@@ -13,29 +13,14 @@ const datePickerHelper = (config) => {
|
|
13
13
|
mode,
|
14
14
|
onChange = () => {},
|
15
15
|
pickerId,
|
16
|
+
required,
|
16
17
|
yearRange,
|
17
18
|
} = config
|
18
|
-
|
19
19
|
// ===========================================================
|
20
20
|
// | Hook Definitions |
|
21
21
|
// ===========================================================
|
22
22
|
|
23
23
|
const defaultDateGetter = () => {
|
24
|
-
// if (defaultDate !== '') {
|
25
|
-
// if (defaultDate === 'blank') {
|
26
|
-
// return ''
|
27
|
-
// } else {
|
28
|
-
// return defaultDate
|
29
|
-
// }
|
30
|
-
// }
|
31
|
-
// if (mode === 'single' && defaultDate === '') {
|
32
|
-
// return new Date()
|
33
|
-
// } else if (mode === 'range' && defaultDate === '') {
|
34
|
-
// const today = new Date()
|
35
|
-
// const tomorrow = new Date(today)
|
36
|
-
// tomorrow.setDate(tomorrow.getDate() + 1)
|
37
|
-
// return [today, tomorrow]
|
38
|
-
// }
|
39
24
|
if (defaultDate === '') {
|
40
25
|
return null
|
41
26
|
} else {
|
@@ -63,7 +48,6 @@ const datePickerHelper = (config) => {
|
|
63
48
|
parentInput.style.justifyContent = ''
|
64
49
|
}
|
65
50
|
}
|
66
|
-
|
67
51
|
// ===========================================================
|
68
52
|
// | Flatpickr initializer w/ config |
|
69
53
|
// ===========================================================
|
@@ -107,16 +91,13 @@ const datePickerHelper = (config) => {
|
|
107
91
|
}],
|
108
92
|
onChange: [(selectedDates, dateStr) => {
|
109
93
|
onChange(dateStr, selectedDates)
|
110
|
-
},
|
111
|
-
(
|
112
|
-
|
113
|
-
},
|
114
|
-
],
|
115
|
-
onYearChange: [],
|
94
|
+
}],
|
95
|
+
onYearChange: [() => {
|
96
|
+
yearChangeHook()
|
97
|
+
}],
|
116
98
|
prevArrow: '<i class="far fa-angle-left"></i>',
|
117
99
|
static: true,
|
118
100
|
})
|
119
|
-
|
120
101
|
// ===========================================================
|
121
102
|
// Additional JS Functionality |
|
122
103
|
// ===========================================================
|
@@ -146,37 +127,55 @@ const datePickerHelper = (config) => {
|
|
146
127
|
picker.changeYear(Number(e.target.value))
|
147
128
|
})
|
148
129
|
|
130
|
+
// Allow the date picker form resetting
|
131
|
+
if (picker.input.form) {
|
132
|
+
picker.input.form.addEventListener('reset', (e) => {
|
133
|
+
e.preventDefault()
|
134
|
+
if (defaultDate){
|
135
|
+
picker.setDate(defaultDate)
|
136
|
+
yearChangeHook()
|
137
|
+
} else {
|
138
|
+
picker.clear()
|
139
|
+
}
|
140
|
+
|
141
|
+
const fields = e.target.querySelectorAll('select, input, textarea')
|
142
|
+
|
143
|
+
// Prevent year and month dropdowns from being reset
|
144
|
+
fields.forEach((field) => {
|
145
|
+
if (field == picker.monthsDropdownContainer || field == dropdown || field == picker.input){
|
146
|
+
// console.log(field)
|
147
|
+
return
|
148
|
+
} else {
|
149
|
+
field.value = field.defaultValue
|
150
|
+
}
|
151
|
+
})
|
152
|
+
// setTimeout(() => {
|
153
|
+
// dropdown.value = picker.currentYear
|
154
|
+
// picker.monthsDropdownContainer.value = picker.currentMonth
|
155
|
+
// console.log(picker)
|
156
|
+
// }, 10)
|
157
|
+
})
|
158
|
+
}
|
159
|
+
|
149
160
|
// two way binding
|
150
161
|
const yearChangeHook = () => {
|
151
162
|
dropdown.value = picker.currentYear
|
152
163
|
}
|
153
|
-
picker.config.onYearChange.push(yearChangeHook)
|
154
164
|
|
155
165
|
// Adding dropdown icons to year and month selects
|
156
166
|
picker.monthElements[0].insertAdjacentHTML('afterend', '<i class="far fa-angle-down month-dropdown-icon"></i>')
|
157
167
|
dropdown.insertAdjacentHTML('afterend', '<i class="far fa-angle-down year-dropdown-icon" id="test-id"></i>')
|
158
168
|
|
159
|
-
//
|
160
|
-
picker.input.setAttribute('value', picker.input.value)
|
161
|
-
// logic for updating value when typing
|
162
|
-
document.querySelector(`#${pickerId}`).addEventListener('input', (e) => {
|
163
|
-
picker.input.setAttribute('value', e.target.value)
|
164
|
-
const variant = picker.config.mode
|
165
|
-
if (variant === 'single' && e.target.value.split('').length === 10) {
|
166
|
-
picker.setDate(e.target.value)
|
167
|
-
dropdown.value = picker.currentYear
|
168
|
-
} else if (variant === 'range' && e.target.value.split('').length === 24) {
|
169
|
-
picker.setDate(e.target.value)
|
170
|
-
dropdown.value = picker.currentYear
|
171
|
-
}
|
172
|
-
})
|
173
|
-
// Update input value attribute on Change
|
174
|
-
const updateValueOnChange = (pickerValue) => {
|
175
|
-
picker.input.setAttribute('value', pickerValue)
|
176
|
-
}
|
169
|
+
// Remove readonly attribute for validation and or text input
|
177
170
|
if (allowInput){
|
178
171
|
picker.input.removeAttribute('readonly')
|
179
172
|
}
|
173
|
+
if (required){
|
174
|
+
picker.input.removeAttribute('readonly')
|
175
|
+
picker.input.addEventListener('keydown', (e) => e.preventDefault())
|
176
|
+
picker.input.style.caretColor = 'transparent'
|
177
|
+
picker.input.style.cursor = 'pointer'
|
178
|
+
}
|
180
179
|
}
|
181
180
|
|
182
181
|
export default datePickerHelper
|
@@ -12,9 +12,7 @@ examples:
|
|
12
12
|
- date_picker_min_max: Min Max
|
13
13
|
- date_picker_error: Error
|
14
14
|
- date_picker_hooks: Hooks
|
15
|
-
# - date_picker_allow_input: Allow Input
|
16
15
|
- date_picker_year_range: Year Range
|
17
|
-
- date_picker_dark: Dark
|
18
16
|
|
19
17
|
|
20
18
|
react:
|
@@ -30,7 +28,5 @@ examples:
|
|
30
28
|
- date_picker_min_max: Min Max
|
31
29
|
- date_picker_error: Error
|
32
30
|
- date_picker_hooks: Hooks
|
33
|
-
# - date_picker_allow_input: Allow Input
|
34
31
|
- date_picker_year_range: Year Range
|
35
|
-
- date_picker_dark: Dark
|
36
32
|
|
@@ -10,6 +10,4 @@ export { default as DatePickerDisabled } from './_date_picker_disabled.jsx'
|
|
10
10
|
export { default as DatePickerMinMax } from './_date_picker_min_max.jsx'
|
11
11
|
export { default as DatePickerError } from './_date_picker_error.jsx'
|
12
12
|
export { default as DatePickerHooks } from './_date_picker_hooks.jsx'
|
13
|
-
// export { default as DatePickerAllowInput } from './_date_picker_allow_input.jsx'
|
14
13
|
export { default as DatePickerYearRange } from './_date_picker_year_range.jsx'
|
15
|
-
export { default as DatePickerDark } from './_date_picker_dark.jsx'
|
@@ -30,6 +30,7 @@
|
|
30
30
|
<%= pb_rails("form", props: { form_system_options: { scope: :example, method: :get } }) do |form| %>
|
31
31
|
<%= form.text_field :example_text_field, props: { label: true } %>
|
32
32
|
<%= form.collection_select :example_collection_select, example_collection, :value, :name, props: { label: true } %>
|
33
|
+
<%= form.date_picker :test_id, props: { label: true }%>
|
33
34
|
|
34
35
|
<%= form.actions do |action| %>
|
35
36
|
<%= action.submit props: { text: "Apply", data: { disable_with: "<i class='far fa-spinner fa-spin mr-3'></i>Searching...".html_safe },}%>
|
@@ -33,7 +33,7 @@
|
|
33
33
|
name: "checkbox-name",
|
34
34
|
class: "checkbox-class"
|
35
35
|
%>
|
36
|
-
<%= form.date_picker :
|
36
|
+
<%= form.date_picker :example_date_picker_1, props: { default_date: "blank", label: true } %>
|
37
37
|
|
38
38
|
<%= form.actions do |action| %>
|
39
39
|
<%= action.submit %>
|
@@ -28,7 +28,7 @@
|
|
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
30
|
<%= form.check_box :example_checkbox, props: { text: "Example Checkbox", label: true, required: true } %>
|
31
|
-
<%= form.date_picker :
|
31
|
+
<%= form.date_picker :example_date_picker_2, props: { default_date: 'blank', label: true, required: true } %>
|
32
32
|
|
33
33
|
<%= form.actions do |action| %>
|
34
34
|
<%= action.submit %>
|
@@ -15,23 +15,12 @@
|
|
15
15
|
:example_select_field,
|
16
16
|
:example_collection_select_field,
|
17
17
|
:example_checkbox_field,
|
18
|
-
:
|
19
|
-
:example_date_picker_field_1,
|
20
|
-
:example_date_picker_field_3
|
21
|
-
|
22
|
-
# for local testing only
|
23
|
-
# will be removed before merging
|
24
|
-
def initialize
|
25
|
-
# @example_number_field = 123
|
26
|
-
@example_date_picker_field_1 = "10/02/1993"
|
27
|
-
@example_date_picker_field_3 = Date.today.httpdate
|
28
|
-
end
|
18
|
+
:example_date_picker_field_1
|
29
19
|
|
30
20
|
|
31
21
|
def self.model_name
|
32
22
|
ActiveModel::Name.new(self, nil, "ExampleFormModel")
|
33
23
|
end
|
34
|
-
|
35
24
|
end
|
36
25
|
%>
|
37
26
|
|
@@ -52,7 +41,6 @@
|
|
52
41
|
|
53
42
|
|
54
43
|
<%= pb_rails("form", props: { form_system: "simple_form", form_system_options: [example_form_model.new, url: "", method: :get] }) do |form| %>
|
55
|
-
|
56
44
|
<%= form.input :example_text_field, as: :string %>
|
57
45
|
<%= form.input :example_phone_field, as: :tel %>
|
58
46
|
<%= form.input :example_email_field, as: :email %>
|
@@ -64,9 +52,7 @@
|
|
64
52
|
<%= form.select :example_select_field, [["Yes", 1], ["No", 2]], props: { label: true } %>
|
65
53
|
<%= form.collection_select :example_collection_select_field, example_collection, :value, :name, props: { label: true } %>
|
66
54
|
<%= form.check_box :example_checkbox_field, props: { text: "Example Checkbox", label: true } %>
|
67
|
-
<%= form.check_box :example_checkbox_field_2, props: { text: "Example Checkbox", label: true } %>
|
68
55
|
<%= form.date_picker :example_date_picker_field_1, props: { default_date: 'blank', label: true } %>
|
69
|
-
<%= form.date_picker :example_date_picker_field_3, props: { default_date: 'blank', label: true } %>
|
70
56
|
|
71
57
|
<%= form.actions do |action| %>
|
72
58
|
<%= action.submit %>
|
@@ -52,7 +52,7 @@
|
|
52
52
|
<%= form.select :example_select_field, [["Yes", 1], ["No", 2]], props: { required: true, blank_selection: "Select One...", label: true } %>
|
53
53
|
<%= form.collection_select :example_collection_select_field, example_collection, :value, :name, props: { required: true, blank_selection: "Select One...", label: true } %>
|
54
54
|
<%= form.check_box :example_checkbox_field, props: { text: "Example Checkbox", label: true, required: true } %>
|
55
|
-
<%= form.date_picker :example_date_picker_field_2, props: { default_date: 'blank', required: true } %>
|
55
|
+
<%= form.date_picker :example_date_picker_field_2, props: { default_date: 'blank', label: true, required: true } %>
|
56
56
|
|
57
57
|
<%= form.actions do |action| %>
|
58
58
|
<%= action.submit %>
|
@@ -8,44 +8,14 @@ module Playbook
|
|
8
8
|
prefix = @object_name
|
9
9
|
html_attribute_name = "#{prefix}[#{name}]"
|
10
10
|
html_id = "#{prefix}_#{name}"
|
11
|
+
props[:label] = @template.label(@object_name, name) if props[:label] && !props[:label].is_a?(String)
|
11
12
|
|
12
13
|
props[:name] = html_attribute_name
|
13
14
|
props[:picker_id] = html_id
|
14
|
-
props[:label] = @template.label(@object_name, name) if props[:label] == true
|
15
15
|
|
16
|
-
|
17
|
-
|
18
|
-
input = text_field(
|
19
|
-
name,
|
20
|
-
autocomplete: "off",
|
21
|
-
disabled: props[:disable_input],
|
22
|
-
data: props[:input_data],
|
23
|
-
aria: props[:input_aria],
|
24
|
-
props: {
|
25
|
-
error: props[:error],
|
26
|
-
label: props[:label],
|
27
|
-
placeholder: props[:placeholder],
|
28
|
-
required: props[:required],
|
29
|
-
}
|
30
|
-
)
|
31
|
-
puts input
|
32
|
-
|
33
|
-
@template.pb_rails("date_picker", props: props) do
|
34
|
-
input
|
35
|
-
end
|
16
|
+
@template.pb_rails("date_picker", props: props)
|
36
17
|
end
|
37
18
|
end
|
38
19
|
end
|
39
20
|
end
|
40
21
|
end
|
41
|
-
|
42
|
-
# Create text input with rails form helper
|
43
|
-
# pass options to text input
|
44
|
-
|
45
|
-
# add hidden, implicit prop identifying it as form helper
|
46
|
-
# inside dp erb, create conditional if check to leave out text_input kit
|
47
|
-
|
48
|
-
# pass that input as a block to @template.pb_rails("date_picker")
|
49
|
-
# let rails do the magic
|
50
|
-
|
51
|
-
# null value handling
|
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: 7.0.0.pre.
|
4
|
+
version: 7.0.0.pre.alpha13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Power UX
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2020-10-
|
12
|
+
date: 2020-10-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: actionpack
|
@@ -680,11 +680,6 @@ files:
|
|
680
680
|
- app/pb_kits/playbook/pb_date_picker/_date_picker.scss
|
681
681
|
- app/pb_kits/playbook/pb_date_picker/date_picker.rb
|
682
682
|
- app/pb_kits/playbook/pb_date_picker/date_picker_helper.js
|
683
|
-
- app/pb_kits/playbook/pb_date_picker/docs/_date_picker_allow_input.html.erb
|
684
|
-
- app/pb_kits/playbook/pb_date_picker/docs/_date_picker_allow_input.jsx
|
685
|
-
- app/pb_kits/playbook/pb_date_picker/docs/_date_picker_allow_input.md
|
686
|
-
- app/pb_kits/playbook/pb_date_picker/docs/_date_picker_dark.html.erb
|
687
|
-
- app/pb_kits/playbook/pb_date_picker/docs/_date_picker_dark.jsx
|
688
683
|
- app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default.html.erb
|
689
684
|
- app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default.jsx
|
690
685
|
- app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default_date.html.erb
|
@@ -1 +0,0 @@
|
|
1
|
-
By default the date picker input can only be modified by picking a date on the calendar. This prop allows your users to manually type in the date.
|