playbook_ui 6.5.1 → 6.5.2

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 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.