playbook_ui 6.5.1 → 6.5.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5a55e48ca8ae05485ef1443fa53c0ec9aa3e8ec8b0440f5f3a76517836f12b72
4
- data.tar.gz: a37c2427c4d7ba65f8a58d119544030af41d3ab2450dba05a314b9ba906394b7
3
+ metadata.gz: 189a578c049c4d3de980ed42c9f15390a0c2e75eb001a30ef49952c0bdcfb708
4
+ data.tar.gz: 5e13504ed89a6452cf39ce141d2f9a2859b4e3c5a56b545c64e72b10d156f61c
5
5
  SHA512:
6
- metadata.gz: 6ffe757fc8fe8546fdf46e14924c0f73df7a01070933dc715e707d22af58fe158276313af9dd3cd9ef1694faa0f5979cfba0b6c6acae8c50cce61eff66b151ec
7
- data.tar.gz: 404dcd5a6dbd49fc5287bced646df7135c85c1ea56c37253645b6f9998e459e2c690acb0e7c2cc52137dd06e4958271b586c5a9d689dcf29f4232d091ff9536b
6
+ metadata.gz: 9cb88a7b04c68efa695d9794036ce648beebd22802437f6663cbb6e102589000ce24827fde7eb93fc0faa61b9a9c4a93dba77a4fe7c1c8b6d035954d4d11d23f
7
+ data.tar.gz: 1c6118da84bc1ab07fc64c9b19f60370ff59ea45aa636bb46ae02c770d15b519b3c609fa443ec535cef6ac162a90fa9550efeb2482264b5cc0d1f9f53f32778c
@@ -8,6 +8,7 @@ import { Icon, TextInput } from '../'
8
8
  import datePickerHelper from './date_picker_helper.js'
9
9
 
10
10
  type DatePickerProps = {
11
+ allowInput?: Boolean,
11
12
  aria?: object,
12
13
  className?: String,
13
14
  dark?: Boolean,
@@ -29,14 +30,15 @@ type DatePickerProps = {
29
30
  minDate: String,
30
31
  mode?: String,
31
32
  name: String,
33
+ onChange: (String) => void,
32
34
  pickerId?: String,
33
35
  placeholder?: String,
34
- readOnly?: Boolean,
35
36
  type?: String,
36
37
  yearRange?: Array,
37
38
  }
38
39
  const DatePicker = (props: DatePickerProps) => {
39
40
  const {
41
+ allowInput = false,
40
42
  aria = {},
41
43
  className,
42
44
  dark = false,
@@ -58,9 +60,9 @@ const DatePicker = (props: DatePickerProps) => {
58
60
  minDate,
59
61
  mode = 'single',
60
62
  name,
63
+ onChange = () => {},
61
64
  pickerId,
62
65
  placeholder,
63
- readOnly = false,
64
66
  type,
65
67
  yearRange = [ 1900, 2100 ],
66
68
  } = props
@@ -76,6 +78,7 @@ const DatePicker = (props: DatePickerProps) => {
76
78
 
77
79
  useEffect(() => {
78
80
  datePickerHelper({
81
+ allowInput: allowInput,
79
82
  defaultDate: defaultDate,
80
83
  disableDate: disableDate,
81
84
  disableRange: disableRange,
@@ -86,7 +89,6 @@ const DatePicker = (props: DatePickerProps) => {
86
89
  minDate: minDate,
87
90
  mode: mode,
88
91
  pickerId: pickerId,
89
- readOnly: readOnly,
90
92
  yearRange: yearRange,
91
93
  })
92
94
  }, [])
@@ -124,6 +126,7 @@ const DatePicker = (props: DatePickerProps) => {
124
126
  id={pickerId}
125
127
  label={hideLabel ? null : label}
126
128
  name={name}
129
+ onChange={onChange}
127
130
  placeholder={placeholder}
128
131
  type={type}
129
132
  />
@@ -7,6 +7,8 @@ module Playbook
7
7
 
8
8
  partial "pb_date_picker/date_picker"
9
9
 
10
+ prop :allow_input, type: Playbook::Props::Boolean,
11
+ default: false
10
12
  prop :dark, type: Playbook::Props::Boolean,
11
13
  default: false
12
14
  prop :default_date, type: Playbook::Props::String,
@@ -40,8 +42,6 @@ module Playbook
40
42
  prop :picker_id, type: Playbook::Props::String,
41
43
  required: true
42
44
  prop :placeholder, type: Playbook::Props::String
43
- prop :read_only, type: Playbook::Props::Boolean,
44
- default: false
45
45
  prop :required, type: Playbook::Props::Boolean,
46
46
  default: false
47
47
  prop :type, type: Playbook::Props::String
@@ -54,6 +54,7 @@ module Playbook
54
54
 
55
55
  def date_picker_config
56
56
  {
57
+ allowInput: allow_input,
57
58
  defaultDate: default_date,
58
59
  disableDate: disable_date,
59
60
  disableRange: disable_range,
@@ -64,7 +65,6 @@ module Playbook
64
65
  minDate: min_date,
65
66
  mode: mode,
66
67
  pickerId: picker_id,
67
- readOnly: read_only,
68
68
  yearRange: year_range,
69
69
  }.to_json.html_safe
70
70
  end
@@ -2,17 +2,16 @@ import flatpickr from 'flatpickr'
2
2
 
3
3
  const datePickerHelper = (config) => {
4
4
  const {
5
+ allowInput,
5
6
  defaultDate,
6
7
  disableDate,
7
8
  disableRange,
8
9
  disableWeekdays,
9
10
  format,
10
- hideIcon,
11
11
  maxDate,
12
12
  minDate,
13
13
  mode,
14
14
  pickerId,
15
- readOnly,
16
15
  yearRange,
17
16
  } = config
18
17
 
@@ -65,7 +64,6 @@ const datePickerHelper = (config) => {
65
64
 
66
65
  flatpickr(`#${pickerId}`, {
67
66
  disableMobile: true,
68
- allowInput: !readOnly,
69
67
  dateFormat: format,
70
68
  defaultDate: defaultDateGetter(),
71
69
  disable: disableWeekdays && disableWeekdays.length > 0 ? [
@@ -141,13 +139,6 @@ const datePickerHelper = (config) => {
141
139
  }
142
140
  picker.config.onYearChange.push(yearChangeHook)
143
141
 
144
- // click handling for Calendar Icon
145
- if (!hideIcon){
146
- document.querySelector(`#cal-icon-${pickerId}`).addEventListener('click', () => {
147
- picker.toggle()
148
- })
149
- }
150
-
151
142
  // Adding dropdown icons to year and month selects
152
143
  picker.monthElements[0].insertAdjacentHTML('afterend', '<i class="far fa-angle-down month-dropdown-icon"></i>')
153
144
  dropdown.insertAdjacentHTML('afterend', '<i class="far fa-angle-down year-dropdown-icon" id="test-id"></i>')
@@ -166,6 +157,9 @@ const datePickerHelper = (config) => {
166
157
  dropdown.value = picker.currentYear
167
158
  }
168
159
  })
160
+ if (allowInput){
161
+ picker.input.removeAttribute('readonly')
162
+ }
169
163
  }
170
164
 
171
165
  export default datePickerHelper
@@ -1,4 +1,4 @@
1
1
  <%= pb_rails("date_picker", props: {
2
- read_only: true,
2
+ allow_input: true,
3
3
  picker_id: "date-picker-read-only"
4
4
  }) %>
@@ -0,0 +1,13 @@
1
+ import React from 'react'
2
+ import { DatePicker } from '../..'
3
+
4
+ const DatePickerAllowInput = () => (
5
+ <div>
6
+ <DatePicker
7
+ allowInput
8
+ pickerId="date-picker-read-only"
9
+ />
10
+ </div>
11
+ )
12
+
13
+ export default DatePickerAllowInput
@@ -0,0 +1 @@
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.
@@ -12,7 +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_read_only: Read Only
15
+ # - date_picker_allow_input: Allow Input
16
16
  - date_picker_year_range: Year Range
17
17
  - date_picker_dark: Dark
18
18
 
@@ -29,7 +29,7 @@ examples:
29
29
  - date_picker_min_max: Min Max
30
30
  - date_picker_error: Error
31
31
  - date_picker_hooks: Hooks
32
- - date_picker_read_only: Read Only
32
+ # - date_picker_allow_input: Allow Input
33
33
  - date_picker_year_range: Year Range
34
34
  - date_picker_dark: Dark
35
35
 
@@ -9,6 +9,6 @@ export { default as DatePickerDisabled } from './_date_picker_disabled.jsx'
9
9
  export { default as DatePickerMinMax } from './_date_picker_min_max.jsx'
10
10
  export { default as DatePickerError } from './_date_picker_error.jsx'
11
11
  export { default as DatePickerHooks } from './_date_picker_hooks.jsx'
12
- export { default as DatePickerReadOnly } from './_date_picker_read_only.jsx'
12
+ // export { default as DatePickerAllowInput } from './_date_picker_allow_input.jsx'
13
13
  export { default as DatePickerYearRange } from './_date_picker_year_range.jsx'
14
14
  export { default as DatePickerDark } from './_date_picker_dark.jsx'
@@ -1,5 +1,6 @@
1
1
  // Calendar Icon Styles
2
2
  .cal_icon_wrapper {
3
+ pointer-events: none;
3
4
  position: absolute;
4
5
  top: $space_md + 2;
5
6
  right: 0;
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Playbook
4
- VERSION = "6.5.1"
4
+ VERSION = "6.5.2"
5
5
  end
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.5.1
4
+ version: 6.5.2
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-09-09 00:00:00.000000000 Z
12
+ date: 2020-09-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: actionpack
@@ -712,6 +712,9 @@ files:
712
712
  - app/pb_kits/playbook/pb_date_picker/_date_picker.scss
713
713
  - app/pb_kits/playbook/pb_date_picker/date_picker.rb
714
714
  - app/pb_kits/playbook/pb_date_picker/date_picker_helper.js
715
+ - app/pb_kits/playbook/pb_date_picker/docs/_date_picker_allow_input.html.erb
716
+ - app/pb_kits/playbook/pb_date_picker/docs/_date_picker_allow_input.jsx
717
+ - app/pb_kits/playbook/pb_date_picker/docs/_date_picker_allow_input.md
715
718
  - app/pb_kits/playbook/pb_date_picker/docs/_date_picker_dark.html.erb
716
719
  - app/pb_kits/playbook/pb_date_picker/docs/_date_picker_dark.jsx
717
720
  - app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default.html.erb
@@ -740,9 +743,6 @@ files:
740
743
  - app/pb_kits/playbook/pb_date_picker/docs/_date_picker_min_max.jsx
741
744
  - app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range.html.erb
742
745
  - app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range.jsx
743
- - app/pb_kits/playbook/pb_date_picker/docs/_date_picker_read_only.html.erb
744
- - app/pb_kits/playbook/pb_date_picker/docs/_date_picker_read_only.jsx
745
- - app/pb_kits/playbook/pb_date_picker/docs/_date_picker_read_only.md
746
746
  - app/pb_kits/playbook/pb_date_picker/docs/_date_picker_year_range.html.erb
747
747
  - app/pb_kits/playbook/pb_date_picker/docs/_date_picker_year_range.jsx
748
748
  - app/pb_kits/playbook/pb_date_picker/docs/_date_picker_year_range.md
@@ -1,13 +0,0 @@
1
- import React from 'react'
2
- import { DatePicker } from '../../'
3
-
4
- const DatePickerReadOnly = () => (
5
- <div>
6
- <DatePicker
7
- pickerId="date-picker-read-only"
8
- readOnly
9
- />
10
- </div>
11
- )
12
-
13
- export default DatePickerReadOnly
@@ -1 +0,0 @@
1
- Read only inputs do not accept keyboard input. The only way to change the date value is by picking a date on the calendar. Especially useful on mobile as it prevents the keyboard from popping up and obscuring the date picker.